From 8dc24807c3e3eb473ac329a66ae704e5a6b4698d Mon Sep 17 00:00:00 2001 From: AwesomeTy18 <93415004+AwesomeTy18@users.noreply.github.com> Date: Tue, 13 Oct 2026 03:21:46 -0400 Subject: [PATCH] Add web browser entitlement check for URL scheme validation --- RootHelper/main.m | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/RootHelper/main.m b/RootHelper/main.m index d06d27a..136abdf 100644 --- a/RootHelper/main.m +++ b/RootHelper/main.m @@ -822,6 +822,9 @@ void applyPatchesToInfoDictionary(NSString* appPath) NSArray* CFBundleURLTypes = infoDictM[@"CFBundleURLTypes"]; if([CFBundleURLTypes isKindOfClass:[NSArray class]]) { + NSDictionary* entitlements = dumpEntitlementsFromBinaryAtPath(appMainExecutablePathForAppPath(appPath)); + BOOL isWebBrowser = [entitlements[@"com.apple.developer.web-browser"] isEqual:@YES]; + NSMutableArray* CFBundleURLTypesM = [NSMutableArray new]; for(NSDictionary* URLType in CFBundleURLTypes) @@ -841,7 +844,9 @@ void applyPatchesToInfoDictionary(NSString* appPath) 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]; }