From 4d8982545d7db28c6235c02b66291fd0669ae15c Mon Sep 17 00:00:00 2001 From: alfiecg24 Date: Sat, 30 Mar 2024 12:08:58 +0000 Subject: [PATCH] Allow specifying binary paths for persistence helper --- RootHelper/main.m | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/RootHelper/main.m b/RootHelper/main.m index 93d02d6..8e3e6da 100644 --- a/RootHelper/main.m +++ b/RootHelper/main.m @@ -1310,12 +1310,16 @@ BOOL _installPersistenceHelper(LSApplicationProxy* appProxy, NSString* sourcePer return YES; } -void installPersistenceHelper(NSString* systemAppId) +void installPersistenceHelper(NSString* systemAppId, NSString *persistenceHelperBinary, NSString *rootHelperBinary) { if(findPersistenceHelperApp(PERSISTENCE_HELPER_TYPE_ALL)) return; - NSString* persistenceHelperBinary = [trollStoreAppPath() stringByAppendingPathComponent:@"PersistenceHelper"]; - NSString* rootHelperBinary = [trollStoreAppPath() stringByAppendingPathComponent:@"trollstorehelper"]; + if (persistenceHelperBinary == nil) { + persistenceHelperBinary = [trollStoreAppPath() stringByAppendingPathComponent:@"PersistenceHelper"]; + } + if (rootHelperBinary == nil) { + rootHelperBinary = [trollStoreAppPath() stringByAppendingPathComponent:@"trollstorehelper"]; + } LSApplicationProxy* appProxy = [LSApplicationProxy applicationProxyForIdentifier:systemAppId]; if(!appProxy || ![appProxy.bundleType isEqualToString:@"System"]) return; @@ -1528,8 +1532,15 @@ int MAIN_NAME(int argc, char *argv[], char *envp[]) else if([cmd isEqualToString:@"install-persistence-helper"]) { if(args.count < 2) return -3; - NSString* systemAppId = args.lastObject; - installPersistenceHelper(systemAppId); + NSString* systemAppId = args[1]; + NSString* persistenceHelperBinary; + NSString* rootHelperBinary; + if (args.count == 4) { + persistenceHelperBinary = args[2]; + rootHelperBinary = args[3]; + } + + installPersistenceHelper(systemAppId, persistenceHelperBinary, rootHelperBinary); } else if([cmd isEqualToString:@"uninstall-persistence-helper"]) {