mirror of
https://github.com/opa334/TrollStore.git
synced 2026-07-02 03:00:39 +08:00
2.1
This commit is contained in:
+25
-4
@@ -3,8 +3,28 @@
|
||||
|
||||
#define TrollStoreErrorDomain @"TrollStoreErrorDomain"
|
||||
|
||||
#define TS_MARKER @"_TrollStore"
|
||||
#define TS_LITE_MARKER @"_TrollStoreLite"
|
||||
#define TS_NAME @"TrollStore"
|
||||
#define TS_LITE_NAME @"Trollstore Lite"
|
||||
|
||||
#ifdef TROLLSTORE_LITE
|
||||
#define TS_ACTIVE_MARKER TS_LITE_MARKER
|
||||
#define TS_INACTIVE_MARKER TS_MARKER
|
||||
#define APP_ID @"com.opa334.TrollStoreLite"
|
||||
#define APP_NAME TS_LITE_NAME
|
||||
#define OTHER_APP_NAME TS_NAME
|
||||
#else
|
||||
#define TS_ACTIVE_MARKER TS_MARKER
|
||||
#define TS_INACTIVE_MARKER TS_LITE_MARKER
|
||||
#define APP_ID @"com.opa334.TrollStore"
|
||||
#define APP_NAME TS_NAME
|
||||
#define OTHER_APP_NAME TS_LITE_NAME
|
||||
#endif
|
||||
|
||||
extern void chineseWifiFixup(void);
|
||||
extern NSString *getExecutablePath(void);
|
||||
extern BOOL shouldRegisterAsUserByDefault(void);
|
||||
extern NSString* rootHelperPath(void);
|
||||
extern NSString* getNSStringFromFile(int fd);
|
||||
extern void printMultilineNSString(NSString* stringToPrint);
|
||||
@@ -14,10 +34,11 @@ extern void respring(void);
|
||||
extern void fetchLatestTrollStoreVersion(void (^completionHandler)(NSString* latestVersion));
|
||||
extern void fetchLatestLdidVersion(void (^completionHandler)(NSString* latestVersion));
|
||||
|
||||
extern NSArray* trollStoreInstalledAppBundlePaths();
|
||||
extern NSArray* trollStoreInstalledAppContainerPaths();
|
||||
extern NSString* trollStorePath();
|
||||
extern NSString* trollStoreAppPath();
|
||||
extern NSArray* trollStoreInstalledAppBundlePaths(void);
|
||||
extern NSArray* trollStoreInactiveInstalledAppBundlePaths(void);
|
||||
extern NSArray* trollStoreInstalledAppContainerPaths(void);
|
||||
extern NSString* trollStorePath(void);
|
||||
extern NSString* trollStoreAppPath(void);
|
||||
|
||||
extern BOOL isRemovableSystemApp(NSString* appId);
|
||||
|
||||
|
||||
+42
-6
@@ -4,6 +4,7 @@
|
||||
#import <spawn.h>
|
||||
#import <sys/sysctl.h>
|
||||
#import <mach-o/dyld.h>
|
||||
#import <libroot.h>
|
||||
|
||||
static EXPLOIT_TYPE gPlatformVulnerabilities;
|
||||
|
||||
@@ -35,6 +36,25 @@ NSString *getExecutablePath(void)
|
||||
return [NSString stringWithUTF8String:selfPath];
|
||||
}
|
||||
|
||||
#ifdef TROLLSTORE_LITE
|
||||
|
||||
BOOL shouldRegisterAsUserByDefault(void)
|
||||
{
|
||||
if ([[NSFileManager defaultManager] fileExistsAtPath:JBROOT_PATH(@"/Library/MobileSubstrate/DynamicLibraries/AppSyncUnified-FrontBoard.dylib")]) {
|
||||
return YES;
|
||||
}
|
||||
return NO;
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
BOOL shouldRegisterAsUserByDefault(void)
|
||||
{
|
||||
return NO;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
#ifdef EMBEDDED_ROOT_HELPER
|
||||
NSString* rootHelperPath(void)
|
||||
{
|
||||
@@ -315,7 +335,7 @@ void fetchLatestLdidVersion(void (^completionHandler)(NSString* latestVersion))
|
||||
github_fetchLatestVersion(@"opa334/ldid", completionHandler);
|
||||
}
|
||||
|
||||
NSArray* trollStoreInstalledAppContainerPaths()
|
||||
NSArray* trollStoreInstalledAppContainerPathsInternal(NSString *marker)
|
||||
{
|
||||
NSMutableArray* appContainerPaths = [NSMutableArray new];
|
||||
|
||||
@@ -336,11 +356,12 @@ NSArray* trollStoreInstalledAppContainerPaths()
|
||||
BOOL exists = [[NSFileManager defaultManager] fileExistsAtPath:containerPath isDirectory:&isDirectory];
|
||||
if(exists && isDirectory)
|
||||
{
|
||||
NSString* trollStoreMark = [containerPath stringByAppendingPathComponent:@"_TrollStore"];
|
||||
NSString* trollStoreMark = [containerPath stringByAppendingPathComponent:marker];
|
||||
if([[NSFileManager defaultManager] fileExistsAtPath:trollStoreMark])
|
||||
{
|
||||
NSString* trollStoreApp = [containerPath stringByAppendingPathComponent:@"TrollStore.app"];
|
||||
if(![[NSFileManager defaultManager] fileExistsAtPath:trollStoreApp])
|
||||
NSString* trollStoreLiteApp = [containerPath stringByAppendingPathComponent:@"TrollStoreLite.app"];
|
||||
if(![[NSFileManager defaultManager] fileExistsAtPath:trollStoreApp] && ![[NSFileManager defaultManager] fileExistsAtPath:trollStoreLiteApp])
|
||||
{
|
||||
[appContainerPaths addObject:containerPath];
|
||||
}
|
||||
@@ -351,10 +372,15 @@ NSArray* trollStoreInstalledAppContainerPaths()
|
||||
return appContainerPaths.copy;
|
||||
}
|
||||
|
||||
NSArray* trollStoreInstalledAppBundlePaths()
|
||||
NSArray *trollStoreInstalledAppContainerPaths(void)
|
||||
{
|
||||
return trollStoreInstalledAppContainerPathsInternal(TS_ACTIVE_MARKER);
|
||||
}
|
||||
|
||||
NSArray* trollStoreInstalledAppBundlePathsInternal(NSString *marker)
|
||||
{
|
||||
NSMutableArray* appPaths = [NSMutableArray new];
|
||||
for(NSString* containerPath in trollStoreInstalledAppContainerPaths())
|
||||
for(NSString* containerPath in trollStoreInstalledAppContainerPathsInternal(marker))
|
||||
{
|
||||
NSArray* items = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:containerPath error:nil];
|
||||
if(!items) return nil;
|
||||
@@ -370,10 +396,20 @@ NSArray* trollStoreInstalledAppBundlePaths()
|
||||
return appPaths.copy;
|
||||
}
|
||||
|
||||
NSArray *trollStoreInstalledAppBundlePaths(void)
|
||||
{
|
||||
return trollStoreInstalledAppBundlePathsInternal(TS_ACTIVE_MARKER);
|
||||
}
|
||||
|
||||
NSArray *trollStoreInactiveInstalledAppBundlePaths(void)
|
||||
{
|
||||
return trollStoreInstalledAppBundlePathsInternal(TS_INACTIVE_MARKER);
|
||||
}
|
||||
|
||||
NSString* trollStorePath()
|
||||
{
|
||||
NSError* mcmError;
|
||||
MCMAppContainer* appContainer = [MCMAppContainer containerWithIdentifier:@"com.opa334.TrollStore" createIfNecessary:NO existed:NULL error:&mcmError];
|
||||
MCMAppContainer* appContainer = [MCMAppContainer containerWithIdentifier:APP_ID createIfNecessary:NO existed:NULL error:&mcmError];
|
||||
if(!appContainer) return nil;
|
||||
return appContainer.url.path;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user