mirror of
				https://github.com/opa334/TrollStore.git
				synced 2025-11-04 15:42:35 +08:00 
			
		
		
		
	Workaround ldid issue, improve app icons
This commit is contained in:
		
							parent
							
								
									92e4981ac0
								
							
						
					
					
						commit
						ad2b6b6c9f
					
				@ -496,8 +496,46 @@ int signApp(NSString* appPath)
 | 
				
			|||||||
	}
 | 
						}
 | 
				
			||||||
	else
 | 
						else
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
 | 
							// Work around an ldid bug where it doesn't keep entitlements on stray binaries
 | 
				
			||||||
 | 
							NSMutableDictionary* storedEntitlements = [NSMutableDictionary new];
 | 
				
			||||||
 | 
							NSDirectoryEnumerator *enumerator = [[NSFileManager defaultManager] enumeratorAtURL:[NSURL fileURLWithPath:appPath] includingPropertiesForKeys:nil options:0 errorHandler:nil];
 | 
				
			||||||
 | 
							NSURL* fileURL;
 | 
				
			||||||
 | 
							while(fileURL = [enumerator nextObject])
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								NSString* filePath = fileURL.path;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								BOOL isDir;
 | 
				
			||||||
 | 
								[[NSFileManager defaultManager] fileExistsAtPath:fileURL.path isDirectory:&isDir];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								if([filePath.lastPathComponent isEqualToString:@"Info.plist"])
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									NSDictionary* infoDictionary = [NSDictionary dictionaryWithContentsOfFile:filePath];
 | 
				
			||||||
 | 
									NSArray* tsRootBinaries = infoDictionary[@"TSRootBinaries"];
 | 
				
			||||||
 | 
									if(tsRootBinaries && [tsRootBinaries isKindOfClass:[NSArray class]])
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
 | 
										for(NSString* rootBinary in tsRootBinaries)
 | 
				
			||||||
 | 
										{
 | 
				
			||||||
 | 
											if([rootBinary isKindOfClass:[NSString class]])
 | 
				
			||||||
 | 
											{
 | 
				
			||||||
 | 
												NSString* rootBinaryPath = [[filePath stringByDeletingLastPathComponent] stringByAppendingPathComponent:rootBinary];
 | 
				
			||||||
 | 
												storedEntitlements[rootBinaryPath] = dumpEntitlementsFromBinaryAtPath(rootBinaryPath);
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									}
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		// app has entitlements, keep them
 | 
							// app has entitlements, keep them
 | 
				
			||||||
		ldidRet = runLdid(@[@"-s", certArg, appPath], nil, &errorOutput);
 | 
							ldidRet = runLdid(@[@"-s", certArg, appPath], nil, &errorOutput);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							[storedEntitlements enumerateKeysAndObjectsUsingBlock:^(NSString* binaryPath, NSDictionary* entitlements, BOOL* stop)
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								NSString* tmpEntitlementPlistPath = [NSTemporaryDirectory() stringByAppendingPathComponent:@"ent.xml"];
 | 
				
			||||||
 | 
								[entitlements writeToURL:[NSURL fileURLWithPath:tmpEntitlementPlistPath] error:nil];
 | 
				
			||||||
 | 
								NSString* tmpEntitlementArg = [@"-S" stringByAppendingString:tmpEntitlementPlistPath];
 | 
				
			||||||
 | 
								runLdid(@[tmpEntitlementArg, certArg, binaryPath], nil, nil);
 | 
				
			||||||
 | 
								[[NSFileManager defaultManager] removeItemAtPath:tmpEntitlementPlistPath error:nil];
 | 
				
			||||||
 | 
							}];
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	NSLog(@"ldid exited with status %d", ldidRet);
 | 
						NSLog(@"ldid exited with status %d", ldidRet);
 | 
				
			||||||
 | 
				
			|||||||
@ -95,8 +95,15 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    // Configure the cell...
 | 
					    // Configure the cell...
 | 
				
			||||||
    cell.textLabel.text = [[TSApplicationsManager sharedInstance] displayNameForAppPath:appPath];
 | 
					    cell.textLabel.text = [[TSApplicationsManager sharedInstance] displayNameForAppPath:appPath];
 | 
				
			||||||
    cell.detailTextLabel.text = appVersion;
 | 
					    cell.detailTextLabel.text = [NSString stringWithFormat:@"%@ • %@", appVersion, appId];
 | 
				
			||||||
    cell.imageView.image = [UIImage _applicationIconImageForBundleIdentifier:appId format:10 scale:2.0];
 | 
					    cell.imageView.image = [UIImage _applicationIconImageForBundleIdentifier:appId format:10 scale:[UIScreen mainScreen].scale];
 | 
				
			||||||
 | 
					    cell.imageView.layer.borderWidth = 0.2;
 | 
				
			||||||
 | 
					    cell.imageView.layer.borderColor = [UIColor blackColor].CGColor;
 | 
				
			||||||
 | 
					    cell.imageView.layer.cornerRadius = 13.8;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    cell.preservesSuperviewLayoutMargins = NO;
 | 
				
			||||||
 | 
					    cell.separatorInset = UIEdgeInsetsZero;
 | 
				
			||||||
 | 
					    cell.layoutMargins = UIEdgeInsetsZero;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return cell;
 | 
					    return cell;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -59,7 +59,15 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
- (NSString*)versionStringForAppPath:(NSString*)appPath
 | 
					- (NSString*)versionStringForAppPath:(NSString*)appPath
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    return [self infoDictionaryForAppPath:appPath][@"CFBundleShortVersionString"];
 | 
					    NSDictionary* infoDict = [self infoDictionaryForAppPath:appPath];
 | 
				
			||||||
 | 
					    NSString* versionString = infoDict[@"CFBundleShortVersionString"];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    if(!versionString)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        versionString = infoDict[@"CFBundleVersion"];
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    return versionString;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- (NSError*)errorForCode:(int)code
 | 
					- (NSError*)errorForCode:(int)code
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user