From 4499e7d68a527d52161be374164ede3d28eef3d6 Mon Sep 17 00:00:00 2001
From: arichorn <78001398+arichorn@users.noreply.github.com>
Date: Wed, 5 Jul 2023 21:02:35 -0500
Subject: [PATCH 1/4] Fixed Buttons (README.md)
---
README.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/README.md b/README.md
index 2ced3ef..3717998 100644
--- a/README.md
+++ b/README.md
@@ -10,14 +10,14 @@
-
-
-
+
+
+
-
-
+
+
From c8f31837f412b81334cf6700459478a7690cf961 Mon Sep 17 00:00:00 2001
From: arichorn <78001398+arichorn@users.noreply.github.com>
Date: Wed, 5 Jul 2023 21:33:54 -0500
Subject: [PATCH 2/4] Added Version Spoofer (Lite Version)
a lighter version of the Version Spoofer Tweak for YTLitePlus.
---
Source/VersionSpooferLite.xm | 125 +++++++++++++++++++++++++++++++++++
1 file changed, 125 insertions(+)
create mode 100644 Source/VersionSpooferLite.xm
diff --git a/Source/VersionSpooferLite.xm b/Source/VersionSpooferLite.xm
new file mode 100644
index 0000000..00faddf
--- /dev/null
+++ b/Source/VersionSpooferLite.xm
@@ -0,0 +1,125 @@
+#import "../Header.h"
+
+//
+static BOOL IsEnabled(NSString *key) {
+ return [[NSUserDefaults standardUserDefaults] boolForKey:key];
+}
+static int appVersionSpoofer() {
+ return [[NSUserDefaults standardUserDefaults] integerForKey:@"versionSpoofer"];
+}
+static BOOL version0() {
+ return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 0;
+}
+static BOOL version1() {
+ return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 1;
+}
+static BOOL version2() {
+ return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 2;
+}
+static BOOL version3() {
+ return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 3;
+}
+static BOOL version4() {
+ return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 4;
+}
+static BOOL version5() {
+ return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 5;
+}
+static BOOL version6() {
+ return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 6;
+}
+static BOOL version7() {
+ return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 7;
+}
+static BOOL version8() {
+ return IsEnabled(@"enableVersionSpoofer_enabled") && appVersionSpoofer() == 8;
+}
+
+%group gDefault
+%hook YTVersionUtils // Default
++ (NSString *)appVersion {
+ NSString *originalVersion = %orig;
+ return originalVersion;
+}
+%end
+%end
+
+%group gVersion1
+%hook YTVersionUtils // Fix YTClassicVideoQuality & YTSpeed
++ (NSString *)appVersion { return @"18.18.2"; }
+%end
+%end
+
+%group gVersion2
+%hook YTVersionUtils // Last v17 App Version
++ (NSString *)appVersion { return @"17.49.6"; }
+%end
+%end
+
+%group gVersion3
+%hook YTVersionUtils // Updated Interface - Breaks LowContrastMode
++ (NSString *)appVersion { return @"17.39.4"; }
+%end
+%end
+
+%group gVersion4
+%hook YTVersionUtils // LowContrastMode Patch
++ (NSString *)appVersion { return @"17.38.10"; }
+%end
+%end
+
+%group gVersion5
+%hook YTVersionUtils // Old Video Player Buttons
++ (NSString *)appVersion { return @"17.11.2"; }
+%end
+%end
+
+%group gVersion6
+%hook YTVersionUtils // Last v16 App Version
++ (NSString *)appVersion { return @"16.46.5"; }
+%end
+%end
+
+%group gVersion7
+%hook YTVersionUtils // Old Video Player Layout
++ (NSString *)appVersion { return @"16.42.3"; }
+%end
+%end
+
+%group gVersion8
+%hook YTVersionUtils // Old Comment Section & Description Layout
++ (NSString *)appVersion { return @"16.05.7"; }
+%end
+%end
+
+# pragma mark - ctor
+%ctor {
+ %init;
+ if (version0()) { // 0
+ %init(gDefault);
+ }
+ if (version1()) { // 1
+ %init(gVersion1);
+ }
+ if (version2()) { // 2
+ %init(gVersion2);
+ }
+ if (version3()) { // 3
+ %init(gVersion3);
+ }
+ if (version4()) { // 4
+ %init(gVersion4);
+ }
+ if (version5()) { // 5
+ %init(gVersion5);
+ }
+ if (version6()) { // 6
+ %init(gVersion6);
+ }
+ if (version7()) { // 7
+ %init(gVersion7);
+ }
+ if (version8()) { // 8
+ %init(gVersion8);
+ }
+}
From d0ca7b4761a04ec507acc4c25b54a1dbea421307 Mon Sep 17 00:00:00 2001
From: arichorn <78001398+arichorn@users.noreply.github.com>
Date: Wed, 5 Jul 2023 21:45:33 -0500
Subject: [PATCH 3/4] Update Settings.xm
---
Source/Settings.xm | 92 +++++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 90 insertions(+), 2 deletions(-)
diff --git a/Source/Settings.xm b/Source/Settings.xm
index 08863e1..3d86fb6 100644
--- a/Source/Settings.xm
+++ b/Source/Settings.xm
@@ -477,6 +477,85 @@ extern NSBundle *YTLitePlusBundle();
return YES;
}];
+# pragma mark - VersionSpoofer
+ YTSettingsSectionItem *versionSpooferSection = [YTSettingsSectionItemClass itemWithTitle:@"Version Spoofer Picker"
+ accessibilityIdentifier:nil
+ detailTextBlock:^NSString *() {
+ switch (appVersionSpoofer()) {
+ case 1:
+ return @"v18.22.9";
+ case 2:
+ return @"v18.21.3";
+ case 3:
+ return @"v18.20.3";
+ case 4:
+ return @"v18.19.1";
+ case 5:
+ return @"v18.18.2";
+ case 6:
+ return @"v18.17.2";
+ case 7:
+ return @"v18.16.2";
+ case 8:
+ return @"v18.15.1";
+ case 0:
+ default:
+ return @"v18.23.3";
+ }
+ }
+ selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
+ NSArray *rows = @[
+ [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.23.3" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
+ [[NSUserDefaults standardUserDefaults] setInteger:0 forKey:@"versionSpoofer"];
+ [settingsViewController reloadData];
+ return YES;
+ }],
+ [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.22.9" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
+ [[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"versionSpoofer"];
+ [settingsViewController reloadData];
+ return YES;
+ }],
+ [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.21.1" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
+ [[NSUserDefaults standardUserDefaults] setInteger:2 forKey:@"versionSpoofer"];
+ [settingsViewController reloadData];
+ return YES;
+ }],
+ [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.20.3" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
+ [[NSUserDefaults standardUserDefaults] setInteger:3 forKey:@"versionSpoofer"];
+ [settingsViewController reloadData];
+ return YES;
+ }],
+ [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.19.1" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
+ [[NSUserDefaults standardUserDefaults] setInteger:4 forKey:@"versionSpoofer"];
+ [settingsViewController reloadData];
+ return YES;
+ }],
+ [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.18.2" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
+ [[NSUserDefaults standardUserDefaults] setInteger:5 forKey:@"versionSpoofer"];
+ [settingsViewController reloadData];
+ return YES;
+ }],
+ [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.17.2" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
+ [[NSUserDefaults standardUserDefaults] setInteger:6 forKey:@"versionSpoofer"];
+ [settingsViewController reloadData];
+ return YES;
+ }],
+ [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.16.2" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
+ [[NSUserDefaults standardUserDefaults] setInteger:7 forKey:@"versionSpoofer"];
+ [settingsViewController reloadData];
+ return YES;
+ }],
+ [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.15.1" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
+ [[NSUserDefaults standardUserDefaults] setInteger:8 forKey:@"versionSpoofer"];
+ [settingsViewController reloadData];
+ return YES;
+ }]
+ ];
+ YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:@"Version Spoofer Picker" pickerSectionTitle:nil rows:rows selectedItemIndex:appVersionSpoofer() parentResponder:[self parentResponder]];
+ [settingsViewController pushViewController:picker];
+ return YES;
+ }];
+
# pragma mark - Theme
YTSettingsSectionItem *themeGroup = [YTSettingsSectionItemClass itemWithTitle:LOC(@"THEME_OPTIONS")
accessibilityIdentifier:nil
@@ -695,8 +774,17 @@ extern NSBundle *YTLitePlusBundle();
[[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"flex_enabled"];
return YES;
}
- settingItemId:0]
- ];
+ settingItemId:0],
+
+ [YTSettingsSectionItemClass switchItemWithTitle:@"Enable App Version Spoofer (Lite)"
+ titleDescription:LOC(@"Enable this to use the Version Spoofer and select your perferred version below. App restart is required.")
+ accessibilityIdentifier:nil
+ switchOn:IsEnabled(@"enableVersionSpoofer_enabled")
+ switchBlock:^BOOL (YTSettingsCell *cell, BOOL enabled) {
+ [[NSUserDefaults standardUserDefaults] setBool:enabled forKey:@"enableVersionSpoofer_enabled"];
+ return YES;
+ }
+ settingItemId:0], versionSpooferSection];
YTSettingsPickerViewController *picker = [[%c(YTSettingsPickerViewController) alloc] initWithNavTitle:LOC(@"MISCELLANEOUS") pickerSectionTitle:nil rows:rows selectedItemIndex:NSNotFound parentResponder:[self parentResponder]];
[settingsViewController pushViewController:picker];
return YES;
From 1c308ab2ab70c73412a2c63926b43a12fd30ab23 Mon Sep 17 00:00:00 2001
From: arichorn <78001398+arichorn@users.noreply.github.com>
Date: Wed, 5 Jul 2023 22:10:05 -0500
Subject: [PATCH 4/4] Update Settings.xm
---
Source/Settings.xm | 36 ++++++++++++++++++------------------
1 file changed, 18 insertions(+), 18 deletions(-)
diff --git a/Source/Settings.xm b/Source/Settings.xm
index 3d86fb6..16fa53c 100644
--- a/Source/Settings.xm
+++ b/Source/Settings.xm
@@ -483,69 +483,69 @@ extern NSBundle *YTLitePlusBundle();
detailTextBlock:^NSString *() {
switch (appVersionSpoofer()) {
case 1:
- return @"v18.22.9";
+ return @"v18.18.2 (Fixes YTClassicVideoQuality and YTSpeed)";
case 2:
- return @"v18.21.3";
+ return @"v17.49.6 (Removes Rounded Miniplayer)";
case 3:
- return @"v18.20.3";
+ return @"v17.39.4 (Adds Rounded Thumbnails)";
case 4:
- return @"v18.19.1";
+ return @"v17.38.10 (Fixes LowContrastMode)";
case 5:
- return @"v18.18.2";
+ return @"v17.11.2 (Removes Chip Video Player Buttons)";
case 6:
- return @"v18.17.2";
+ return @"v16.46.5 (Removes New Overflow Video Player Menu)";
case 7:
- return @"v18.16.2";
+ return @"v16.42.3";
case 8:
- return @"v18.15.1";
+ return @"v16.05.7 (Old Comment+Description Section)";
case 0:
default:
- return @"v18.23.3";
+ return @"Default Version";
}
}
selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
NSArray *rows = @[
- [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.23.3" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
+ [YTSettingsSectionItemClass checkmarkItemWithTitle:@"Default Version" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:0 forKey:@"versionSpoofer"];
[settingsViewController reloadData];
return YES;
}],
- [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.22.9" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
+ [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.18.2 (Fixes YTClassicVideoQuality and YTSpeed)" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"versionSpoofer"];
[settingsViewController reloadData];
return YES;
}],
- [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.21.1" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
+ [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v17.49.6 (Removes Rounded Miniplayer)" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:2 forKey:@"versionSpoofer"];
[settingsViewController reloadData];
return YES;
}],
- [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.20.3" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
+ [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v17.39.4 (Adds Rounded Thumbnails)" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:3 forKey:@"versionSpoofer"];
[settingsViewController reloadData];
return YES;
}],
- [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.19.1" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
+ [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v17.38.10 (Fixes LowContrastMode)" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:4 forKey:@"versionSpoofer"];
[settingsViewController reloadData];
return YES;
}],
- [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.18.2" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
+ [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v17.11.2 (Removes Chip Video Player Buttons)" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:5 forKey:@"versionSpoofer"];
[settingsViewController reloadData];
return YES;
}],
- [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.17.2" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
+ [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v16.46.5 (Removes New Overflow Video Player Menu)" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:6 forKey:@"versionSpoofer"];
[settingsViewController reloadData];
return YES;
}],
- [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.16.2" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
+ [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v16.42.3" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:7 forKey:@"versionSpoofer"];
[settingsViewController reloadData];
return YES;
}],
- [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v18.15.1" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
+ [YTSettingsSectionItemClass checkmarkItemWithTitle:@"v16.05.7 (Old Comment+Description Section)" titleDescription:nil selectBlock:^BOOL (YTSettingsCell *cell, NSUInteger arg1) {
[[NSUserDefaults standardUserDefaults] setInteger:8 forKey:@"versionSpoofer"];
[settingsViewController reloadData];
return YES;