1
0
mirror of https://github.com/opa334/TrollStore.git synced 2026-11-08 02:15:49 +08:00

Add web browser entitlement check for URL scheme validation

This commit is contained in:
AwesomeTy18 2026-10-13 03:21:46 -04:00
parent 88424f683b
commit 8dc24807c3
No known key found for this signature in database

View File

@ -822,6 +822,9 @@ void applyPatchesToInfoDictionary(NSString* appPath)
NSArray* CFBundleURLTypes = infoDictM[@"CFBundleURLTypes"]; NSArray* CFBundleURLTypes = infoDictM[@"CFBundleURLTypes"];
if([CFBundleURLTypes isKindOfClass:[NSArray class]]) if([CFBundleURLTypes isKindOfClass:[NSArray class]])
{ {
NSDictionary* entitlements = dumpEntitlementsFromBinaryAtPath(appMainExecutablePathForAppPath(appPath));
BOOL isWebBrowser = [entitlements[@"com.apple.developer.web-browser"] isEqual:@YES];
NSMutableArray* CFBundleURLTypesM = [NSMutableArray new]; NSMutableArray* CFBundleURLTypesM = [NSMutableArray new];
for(NSDictionary* URLType in CFBundleURLTypes) for(NSDictionary* URLType in CFBundleURLTypes)
@ -841,7 +844,9 @@ void applyPatchesToInfoDictionary(NSString* appPath)
continue; continue;
} }
if([appleSchemes containsObject:existingURLScheme.lowercaseString]) NSString* URLScheme = existingURLScheme.lowercaseString;
BOOL isWebURLScheme = [URLScheme isEqualToString:@"http"] || [URLScheme isEqualToString:@"https"];
if((isWebURLScheme && !isWebBrowser) || (!isWebURLScheme && [appleSchemes containsObject:URLScheme]))
{ {
[URLSchemesSet removeObject:existingURLScheme]; [URLSchemesSet removeObject:existingURLScheme];
} }