|
12 | 12 | #import "Preferences.h"
|
13 | 13 |
|
14 | 14 | #define applistCachePath @"/etc/applist-cache.clutch"
|
| 15 | +#define crackedAppPath @"/etc/cracked.clutch" |
15 | 16 |
|
16 | 17 | NSArray * get_application_list(BOOL sort) {
|
17 | 18 |
|
|
68 | 69 | @"ApplicationBasename":[appPath lastPathComponent],
|
69 | 70 | @"ApplicationVersion":version,
|
70 | 71 | @"ApplicationBundleID":bundleID,
|
71 |
| - @"ApplicationSINF":SINF, |
| 72 | + //@"ApplicationSINF":SINF, |
72 | 73 | @"ApplicationExecutableName":executableName,
|
73 | 74 | @"MinimumOSVersion":minimumOSVersion}];
|
74 | 75 |
|
@@ -129,24 +130,40 @@ + (instancetype)sharedInstance
|
129 | 130 | }
|
130 | 131 |
|
131 | 132 | - (NSArray *)modifiedApps {
|
132 |
| - NSArray* cache = [self modifiedAppCache]; |
| 133 | + NSDictionary* cracked = [self crackedAppsList]; |
133 | 134 | NSArray* apps = get_application_list(YES);
|
134 | 135 | NSMutableArray* modifiedApps = [[NSMutableArray alloc] init];
|
135 |
| - for (Application* oldApp in cache) { |
136 |
| - for (Application* newApp in apps) { |
137 |
| - if ([oldApp.applicationBundleID isEqualToString:newApp.applicationBundleID]) { |
138 |
| - DEBUG(@"same bundle id deteced! %@", newApp.applicationBundleID); |
139 |
| - if (newApp.appVersion != oldApp.appVersion) { |
140 |
| - [modifiedApps addObject:newApp]; |
141 |
| - |
142 |
| - } |
143 |
| - |
144 |
| - } |
| 136 | + for (Application* app in apps) { |
| 137 | + NSDictionary* appInfo = [cracked objectForKey:app.applicationBundleID]; |
| 138 | + if (appInfo == nil) { |
| 139 | + continue; |
| 140 | + } |
| 141 | + Application* oldApp = [[Application alloc] initWithAppInfo:appInfo]; |
| 142 | + DEBUG(@"new app version: %ld, %ld", (long)oldApp.appVersion, (long)app.appVersion); |
| 143 | + if (app.appVersion > oldApp.appVersion) { |
| 144 | + [modifiedApps addObject:app]; |
145 | 145 | }
|
146 | 146 | }
|
| 147 | + DEBUG(@"modified apps array %@", modifiedApps); |
147 | 148 | return modifiedApps;
|
148 | 149 | }
|
149 | 150 |
|
| 151 | +-(void)crackedApp:(Application*) app { |
| 152 | + DEBUG(@"cracked app ok"); |
| 153 | + DEBUG(@"this crack lol %ld", (long)app.appVersion); |
| 154 | + NSMutableDictionary* dict = [[NSMutableDictionary alloc] initWithDictionary:[self crackedAppsList]]; |
| 155 | + if (dict == nil) { |
| 156 | + dict = [[NSMutableDictionary alloc] init]; |
| 157 | + } |
| 158 | + [dict setObject:app.dictionaryRepresentation forKey:app.applicationBundleID]; |
| 159 | + DEBUG(@"da dict %@", dict); |
| 160 | + [dict writeToFile:crackedAppPath atomically:YES]; |
| 161 | +} |
| 162 | + |
| 163 | +-(NSDictionary*)crackedAppsList { |
| 164 | + return [[NSDictionary alloc] initWithContentsOfFile:crackedAppPath]; |
| 165 | +} |
| 166 | + |
150 | 167 | -(void)saveModifiedAppsCache {
|
151 | 168 | get_application_list(YES);
|
152 | 169 | }
|
|
0 commit comments