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 @@

- Badge - Badge - Badge + Badge + Badge + Badge

- Badge - Badge + Badge + Badge Badge

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;