uYouEnhanced/Sources/uYouPlusVersionSpoofer.xm
aricloverGitHub (INACTIVE) f8964c9f9b
Updated Version Spoofer Mapping (uYouPlusVersionSpoofer.xm)
Updated to support latest version of YouTube. YouTube Versions v18.xx.x are deprecated in the version spoofer now.
2025-03-13 15:49:06 -05:00

173 lines
3.9 KiB
Text

#import "uYouPlus.h"
typedef struct {
int version;
NSString *appVersion;
} VersionMapping;
static VersionMapping versionMappings[] = {
{0, @"20.10.3"},
{1, @"20.09.3"},
{2, @"20.08.3"},
{3, @"20.07.6"},
{4, @"20.06.03"},
{5, @"20.05.4"},
{6, @"20.03.1"},
{7, @"20.03.02"},
{8, @"20.02.3"},
{9, @"19.49.7"},
{10, @"19.49.5"},
{11, @"19.49.3"},
{12, @"19.47.7"},
{13, @"19.46.3"},
{14, @"19.45.4"},
{15, @"19.44.4"},
{16, @"19.43.2"},
{17, @"19.42.1"},
{18, @"19.41.3"},
{19, @"19.40.4"},
{20, @"19.39.1"},
{21, @"19.38.2"},
{22, @"19.37.2"},
{23, @"19.36.1"},
{24, @"19.35.3"},
{25, @"19.34.2"},
{26, @"19.33.2"},
{27, @"19.32.8"},
{28, @"19.32.6"},
{29, @"19.31.4"},
{30, @"19.30.2"},
{31, @"19.29.1"},
{32, @"19.28.1"},
{33, @"19.26.5"},
{34, @"19.25.4"},
{35, @"19.25.3"},
{36, @"19.24.3"},
{37, @"19.24.2"},
{38, @"19.23.3"},
{39, @"19.22.6"},
{40, @"19.22.3"},
{41, @"19.21.3"},
{42, @"19.21.2"},
{43, @"19.20.2"},
{44, @"19.19.7"},
{45, @"19.19.5"},
{46, @"19.18.2"},
{47, @"19.17.2"},
{48, @"19.16.3"},
{49, @"19.15.1"},
{50, @"19.14.3"},
{51, @"19.14.2"},
{52, @"19.13.1"},
{53, @"19.12.3"},
{54, @"19.10.7"},
{55, @"19.10.6"},
{56, @"19.10.5"},
{57, @"19.09.4"},
{58, @"19.09.3"},
{59, @"19.08.2"},
{60, @"19.07.5"},
{61, @"19.07.4"},
{62, @"19.06.2"},
{63, @"19.05.5"},
{64, @"19.05.3"},
{65, @"19.04.3"},
{66, @"19.03.2"},
{67, @"19.02.1"},
{68, @"19.01.1"},
{69, @"18.49.3"},
{70, @"18.48.3"},
{71, @"18.46.3"},
{72, @"18.45.2"},
{73, @"18.44.3"},
{74, @"18.43.4"},
{75, @"18.41.5"},
{76, @"18.41.3"},
{77, @"18.41.2"},
{78, @"18.40.1"},
{79, @"18.39.1"},
{80, @"18.38.2"},
{81, @"18.35.4"},
{82, @"18.34.5"},
{83, @"18.33.3"},
{84, @"18.33.2"},
{85, @"18.32.2"},
{86, @"18.31.3"},
{87, @"18.30.7"},
{88, @"18.30.6"},
{89, @"18.29.1"},
{90, @"18.28.3"},
{91, @"18.27.3"},
{92, @"18.25.1"},
{93, @"18.23.3"},
{94, @"18.22.9"},
{95, @"18.21.3"},
{96, @"18.20.3"},
{97, @"18.19.1"},
{98, @"18.18.2"},
{99, @"18.17.2"},
{100, @"18.16.2"},
{101, @"18.15.1"},
{102, @"18.14.1"},
{103, @"18.13.4"},
{104, @"18.12.2"},
{105, @"18.11.2"},
{106, @"18.10.1"},
{107, @"18.09.4"},
{108, @"18.08.1"},
{109, @"18.07.5"},
{110, @"18.05.2"},
{111, @"18.04.3"},
{112, @"18.03.3"},
{113, @"18.02.03"},
{114, @"18.01.6"},
{115, @"18.01.4"},
{116, @"18.01.2"},
{117, @"17.49.6"},
{118, @"17.49.4"},
{119, @"17.46.4"},
{120, @"17.45.1"},
{121, @"17.44.4"},
{122, @"17.43.1"},
{123, @"17.42.7"},
{124, @"17.42.6"},
{125, @"17.41.2"},
{126, @"17.40.5"},
{127, @"17.39.4"},
{128, @"17.38.10"},
{129, @"17.38.9"},
{130, @"17.37.3"},
{131, @"17.36.4"},
{132, @"17.36.3"},
{133, @"17.35.3"},
{134, @"17.34.3"},
{135, @"17.33.2"}
};
static int appVersionSpoofer() {
return [[NSUserDefaults standardUserDefaults] integerForKey:@"versionSpoofer"];
}
static BOOL isVersionSpooferEnabled() {
return IS_ENABLED(@"enableVersionSpoofer_enabled");
}
static NSString* getAppVersionForSpoofedVersion(int spoofedVersion) {
for (int i = 0; i < sizeof(versionMappings) / sizeof(versionMappings[0]); i++) {
if (versionMappings[i].version == spoofedVersion) {
return versionMappings[i].appVersion;
}
}
return nil;
}
%hook YTVersionUtils
+ (NSString *)appVersion {
if (!isVersionSpooferEnabled()) {
return %orig;
}
int spoofedVersion = appVersionSpoofer();
NSString *appVersion = getAppVersionForSpoofedVersion(spoofedVersion);
return appVersion ? appVersion : %orig;
}
%end