mirror of https://github.com/opa334/TrollStore.git
Merge branch 'opa334:main' into main
This commit is contained in:
commit
105d96de6a
2
Makefile
2
Makefile
|
@ -39,7 +39,7 @@ build_installer15:
|
|||
@unzip ./Victim/InstallerVictim.ipa -d ./_build/tmp15
|
||||
@cp ./TrollHelper/.theos/obj/TrollStorePersistenceHelper.app/TrollStorePersistenceHelper ./_build/TrollStorePersistenceHelperToInject
|
||||
@pwnify set-cpusubtype ./_build/TrollStorePersistenceHelperToInject 1
|
||||
@ldid -s -K./Victim/victim_gta.p12 ./_build/TrollStorePersistenceHelperToInject
|
||||
@ldid -s -K./Victim/victim.p12 ./_build/TrollStorePersistenceHelperToInject
|
||||
APP_PATH=$$(find ./_build/tmp15/Payload -name "*" -depth 1) ; \
|
||||
APP_NAME=$$(basename $$APP_PATH) ; \
|
||||
BINARY_NAME=$$(echo "$$APP_NAME" | cut -f 1 -d '.') ; \
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
Package: com.opa334.trollstoreroothelper
|
||||
Name: trollstoreroothelper
|
||||
Version: 1.2
|
||||
Version: 1.2.2
|
||||
Architecture: iphoneos-arm
|
||||
Description: An awesome tool of some sort!!
|
||||
Maintainer: opa334
|
||||
|
|
|
@ -80,6 +80,25 @@ NSSet<NSString*>* appleURLSchemes(void)
|
|||
return systemURLSchemes.copy;
|
||||
}
|
||||
|
||||
NSSet<NSString*>* immutableAppBundleIdentifiers(void)
|
||||
{
|
||||
NSMutableSet* systemAppIdentifiers = [NSMutableSet new];
|
||||
|
||||
LSEnumerator* enumerator = [LSEnumerator enumeratorForApplicationProxiesWithOptions:0];
|
||||
LSApplicationProxy* appProxy;
|
||||
while(appProxy = [enumerator nextObject])
|
||||
{
|
||||
if(appProxy.installed)
|
||||
{
|
||||
if(![appProxy.bundleURL.path hasPrefix:@"/private/var/containers"])
|
||||
{
|
||||
[systemAppIdentifiers addObject:appProxy.bundleIdentifier.lowercaseString];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return systemAppIdentifiers.copy;
|
||||
}
|
||||
|
||||
NSDictionary* infoDictionaryForAppPath(NSString* appPath)
|
||||
{
|
||||
|
@ -583,8 +602,15 @@ int installApp(NSString* appPath, BOOL sign, BOOL force)
|
|||
|
||||
NSString* appId = appIdForAppPath(appPath);
|
||||
if(!appId) return 176;
|
||||
if([immutableAppBundleIdentifiers() containsObject:appId.lowercaseString])
|
||||
{
|
||||
return 179;
|
||||
}
|
||||
|
||||
if(![appId isEqualToString:@"com.opa334.TrollStore"])
|
||||
{
|
||||
applyPatchesToInfoDictionary(appPath);
|
||||
}
|
||||
|
||||
if(sign)
|
||||
{
|
||||
|
@ -876,6 +902,12 @@ int installIpa(NSString* ipaPath, BOOL force)
|
|||
}
|
||||
if(!tmpAppPath) return 167;
|
||||
|
||||
NSString* appId = appIdForAppPath(tmpAppPath);
|
||||
if([appId.lowercaseString isEqualToString:@"com.opa334.trollstore"])
|
||||
{
|
||||
return 179;
|
||||
}
|
||||
|
||||
int ret = installApp(tmpAppPath, YES, force);
|
||||
|
||||
[[NSFileManager defaultManager] removeItemAtPath:tmpAppPath error:nil];
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
|
||||
// uicache on steroids
|
||||
|
||||
extern NSSet<NSString*>* immutableAppBundleIdentifiers(void);
|
||||
extern NSDictionary* dumpEntitlementsFromBinaryAtPath(NSString* binaryPath);
|
||||
|
||||
NSDictionary* constructGroupsContainersForEntitlements(NSDictionary* entitlements, BOOL systemGroups)
|
||||
|
@ -108,6 +109,8 @@ void registerPath(char* cPath, int unregister)
|
|||
NSDictionary* appInfoPlist = [NSDictionary dictionaryWithContentsOfFile:[path stringByAppendingPathComponent:@"Info.plist"]];
|
||||
NSString* appBundleID = [appInfoPlist objectForKey:@"CFBundleIdentifier"];
|
||||
|
||||
if([immutableAppBundleIdentifiers() containsObject:appBundleID.lowercaseString]) return;
|
||||
|
||||
if(appBundleID && !unregister)
|
||||
{
|
||||
MCMContainer* appContainer = [NSClassFromString(@"MCMAppDataContainer") containerWithIdentifier:appBundleID createIfNecessary:YES existed:nil error:nil];
|
||||
|
|
|
@ -52,7 +52,7 @@
|
|||
<string>iPhoneOS</string>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.2</string>
|
||||
<string>1.2.2</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UIDeviceFamily</key>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
Package: com.opa334.trollstorehelper
|
||||
Name: TrollStore Helper
|
||||
Version: 1.2
|
||||
Version: 1.2.2
|
||||
Architecture: iphoneos-arm
|
||||
Description: Helper utility to install and manage TrollStore!
|
||||
Maintainer: opa334
|
||||
|
|
|
@ -50,7 +50,7 @@
|
|||
<string>iPhoneOS</string>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.2</string>
|
||||
<string>1.2.2</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UIDeviceFamily</key>
|
||||
|
|
|
@ -109,6 +109,9 @@
|
|||
case 178:
|
||||
errorDescription = @"Failed to copy app bundle.";
|
||||
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
|
||||
/*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.";
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
Package: com.opa334.trollstore
|
||||
Name: TrollStore
|
||||
Version: 1.2
|
||||
Version: 1.2.2
|
||||
Architecture: iphoneos-arm
|
||||
Description: An awesome application!
|
||||
Maintainer: opa334
|
||||
|
|
|
@ -1,13 +1,7 @@
|
|||
# Victim Binary and Cert
|
||||
# Victim IPA and Cert
|
||||
|
||||
In order to support user app installations (works on anything but iOS 14 arm64), TrollStore needs a victim binary that it attaches to any binary installed by it. By default it uses the binary of "Pastebin Mobile", because the dev of that app gave me permission to use that.
|
||||
|
||||
In order to compile a pwned TrollInstaller2 IPA, you need to provide a dev cert with the same team ID as your target app in this directory.
|
||||
In order to compile a pwned TrollHelperOTA arm64 IPA, you need to provide a dev cert with the same team ID as your victim app in this directory.
|
||||
|
||||
```bash
|
||||
./make_cert.sh <TEAM_ID>
|
||||
```
|
||||
|
||||
(Currently victim_gta.p12 is used by the build script, this works for GTA Car Tracker app, to use another app generate a new cert with the team ID and make sure to update the path in build script too)
|
||||
|
||||
((Disregard the user app stuff described above, it's not implemented yet, will be in TrollStore 2.0))
|
BIN
Victim/victim
BIN
Victim/victim
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue