mirror of https://github.com/opa334/TrollStore.git
1.2.1
This commit is contained in:
parent
ad00f892de
commit
7d319b04d1
|
@ -1,6 +1,6 @@
|
||||||
Package: com.opa334.trollstoreroothelper
|
Package: com.opa334.trollstoreroothelper
|
||||||
Name: trollstoreroothelper
|
Name: trollstoreroothelper
|
||||||
Version: 1.2
|
Version: 1.2.1
|
||||||
Architecture: iphoneos-arm
|
Architecture: iphoneos-arm
|
||||||
Description: An awesome tool of some sort!!
|
Description: An awesome tool of some sort!!
|
||||||
Maintainer: opa334
|
Maintainer: opa334
|
||||||
|
|
|
@ -80,6 +80,20 @@ NSSet<NSString*>* appleURLSchemes(void)
|
||||||
return systemURLSchemes.copy;
|
return systemURLSchemes.copy;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NSSet<NSString*>* appleAppBundleIdentifiers(void)
|
||||||
|
{
|
||||||
|
LSEnumerator* enumerator = [LSEnumerator enumeratorForApplicationProxiesWithOptions:0];
|
||||||
|
enumerator.predicate = [NSPredicate predicateWithFormat:@"bundleIdentifier BEGINSWITH 'com.apple'"];
|
||||||
|
|
||||||
|
NSMutableSet* systemAppIdentifiers = [NSMutableSet new];
|
||||||
|
LSApplicationProxy* proxy;
|
||||||
|
while(proxy = [enumerator nextObject])
|
||||||
|
{
|
||||||
|
[systemAppIdentifiers addObject:proxy.bundleIdentifier.lowercaseString];
|
||||||
|
}
|
||||||
|
|
||||||
|
return systemAppIdentifiers.copy;
|
||||||
|
}
|
||||||
|
|
||||||
NSDictionary* infoDictionaryForAppPath(NSString* appPath)
|
NSDictionary* infoDictionaryForAppPath(NSString* appPath)
|
||||||
{
|
{
|
||||||
|
@ -583,8 +597,15 @@ int installApp(NSString* appPath, BOOL sign, BOOL force)
|
||||||
|
|
||||||
NSString* appId = appIdForAppPath(appPath);
|
NSString* appId = appIdForAppPath(appPath);
|
||||||
if(!appId) return 176;
|
if(!appId) return 176;
|
||||||
|
if([appleAppBundleIdentifiers() containsObject:appId.lowercaseString])
|
||||||
|
{
|
||||||
|
return 179;
|
||||||
|
}
|
||||||
|
|
||||||
applyPatchesToInfoDictionary(appPath);
|
if(![appId isEqualToString:@"com.opa334.TrollStore"])
|
||||||
|
{
|
||||||
|
applyPatchesToInfoDictionary(appPath);
|
||||||
|
}
|
||||||
|
|
||||||
if(sign)
|
if(sign)
|
||||||
{
|
{
|
||||||
|
@ -875,6 +896,12 @@ int installIpa(NSString* ipaPath, BOOL force)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if(!tmpAppPath) return 167;
|
if(!tmpAppPath) return 167;
|
||||||
|
|
||||||
|
NSString* appId = appIdForAppPath(tmpAppPath);
|
||||||
|
if([appId.lowercaseString isEqualToString:@"com.opa334.trollstore"])
|
||||||
|
{
|
||||||
|
return 179;
|
||||||
|
}
|
||||||
|
|
||||||
int ret = installApp(tmpAppPath, YES, force);
|
int ret = installApp(tmpAppPath, YES, force);
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
|
|
||||||
// uicache on steroids
|
// uicache on steroids
|
||||||
|
|
||||||
|
extern NSSet<NSString*>* appleAppBundleIdentifiers(void);
|
||||||
extern NSDictionary* dumpEntitlementsFromBinaryAtPath(NSString* binaryPath);
|
extern NSDictionary* dumpEntitlementsFromBinaryAtPath(NSString* binaryPath);
|
||||||
|
|
||||||
NSDictionary* constructGroupsContainersForEntitlements(NSDictionary* entitlements, BOOL systemGroups)
|
NSDictionary* constructGroupsContainersForEntitlements(NSDictionary* entitlements, BOOL systemGroups)
|
||||||
|
@ -108,6 +109,8 @@ void registerPath(char* cPath, int unregister)
|
||||||
NSDictionary* appInfoPlist = [NSDictionary dictionaryWithContentsOfFile:[path stringByAppendingPathComponent:@"Info.plist"]];
|
NSDictionary* appInfoPlist = [NSDictionary dictionaryWithContentsOfFile:[path stringByAppendingPathComponent:@"Info.plist"]];
|
||||||
NSString* appBundleID = [appInfoPlist objectForKey:@"CFBundleIdentifier"];
|
NSString* appBundleID = [appInfoPlist objectForKey:@"CFBundleIdentifier"];
|
||||||
|
|
||||||
|
if([appleAppBundleIdentifiers() containsObject:appBundleID.lowercaseString]) return;
|
||||||
|
|
||||||
if(appBundleID && !unregister)
|
if(appBundleID && !unregister)
|
||||||
{
|
{
|
||||||
MCMContainer* appContainer = [NSClassFromString(@"MCMAppDataContainer") containerWithIdentifier:appBundleID createIfNecessary:YES existed:nil error:nil];
|
MCMContainer* appContainer = [NSClassFromString(@"MCMAppDataContainer") containerWithIdentifier:appBundleID createIfNecessary:YES existed:nil error:nil];
|
||||||
|
|
|
@ -52,7 +52,7 @@
|
||||||
<string>iPhoneOS</string>
|
<string>iPhoneOS</string>
|
||||||
</array>
|
</array>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>1.2</string>
|
<string>1.2.1</string>
|
||||||
<key>LSRequiresIPhoneOS</key>
|
<key>LSRequiresIPhoneOS</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>UIDeviceFamily</key>
|
<key>UIDeviceFamily</key>
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
Package: com.opa334.trollstorehelper
|
Package: com.opa334.trollstorehelper
|
||||||
Name: TrollStore Helper
|
Name: TrollStore Helper
|
||||||
Version: 1.2
|
Version: 1.2.1
|
||||||
Architecture: iphoneos-arm
|
Architecture: iphoneos-arm
|
||||||
Description: Helper utility to install and manage TrollStore!
|
Description: Helper utility to install and manage TrollStore!
|
||||||
Maintainer: opa334
|
Maintainer: opa334
|
||||||
|
|
|
@ -50,7 +50,7 @@
|
||||||
<string>iPhoneOS</string>
|
<string>iPhoneOS</string>
|
||||||
</array>
|
</array>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>1.2</string>
|
<string>1.2.1</string>
|
||||||
<key>LSRequiresIPhoneOS</key>
|
<key>LSRequiresIPhoneOS</key>
|
||||||
<true/>
|
<true/>
|
||||||
<key>UIDeviceFamily</key>
|
<key>UIDeviceFamily</key>
|
||||||
|
|
|
@ -109,6 +109,9 @@
|
||||||
case 178:
|
case 178:
|
||||||
errorDescription = @"Failed to copy app bundle.";
|
errorDescription = @"Failed to copy app bundle.";
|
||||||
break;
|
break;
|
||||||
|
case 179:
|
||||||
|
errorDescription = @"The app you tried to install has the same identifier as a system app already installed on the device. The installation has been prevented to protect you from possible bootloops or other issues.";
|
||||||
|
break;
|
||||||
// App detach errors
|
// App detach errors
|
||||||
/*case 184:
|
/*case 184:
|
||||||
errorDescription = @"Refusing to detach, the app is still signed with a fake root certificate. The detach option is only for when you have installed an App Store app on top of a TrollStore app.";
|
errorDescription = @"Refusing to detach, the app is still signed with a fake root certificate. The detach option is only for when you have installed an App Store app on top of a TrollStore app.";
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
Package: com.opa334.trollstore
|
Package: com.opa334.trollstore
|
||||||
Name: TrollStore
|
Name: TrollStore
|
||||||
Version: 1.2
|
Version: 1.2.1
|
||||||
Architecture: iphoneos-arm
|
Architecture: iphoneos-arm
|
||||||
Description: An awesome application!
|
Description: An awesome application!
|
||||||
Maintainer: opa334
|
Maintainer: opa334
|
||||||
|
|
Loading…
Reference in New Issue