Also update app info to be more accurate in terms of com.apple.private.security.container-required

This commit is contained in:
opa334 2023-11-28 12:24:10 +01:00
parent a22414d34a
commit 18612495b3
1 changed files with 26 additions and 5 deletions

View File

@ -849,16 +849,37 @@ extern UIImage* imageWithSize(UIImage* image, CGSize size);
__block NSMutableArray* accessibleContainers = [NSMutableArray new]; //array by design, should be ordered __block NSMutableArray* accessibleContainers = [NSMutableArray new]; //array by design, should be ordered
if(!unrestrictedContainerAccess) if(!unrestrictedContainerAccess)
{ {
__block NSString *dataContainer = nil;
// If com.apple.private.security.container-required Entitlement is a string, prefer it to CFBundleIdentifier
[self enumerateAllEntitlements:^(NSString *key, NSObject *value, BOOL *stop) {
if([key isEqualToString:@"com.apple.private.security.container-required"])
{
NSString* valueString = (NSString*)value;
if(valueString && [valueString isKindOfClass:NSString.class])
{
dataContainer = valueString;
}
}
}];
// Else take CFBundleIdentifier
if (!dataContainer) {
[self enumerateAllInfoDictionaries:^(NSString *key, NSObject *value, BOOL *stop) { [self enumerateAllInfoDictionaries:^(NSString *key, NSObject *value, BOOL *stop) {
if([key isEqualToString:@"CFBundleIdentifier"]) if([key isEqualToString:@"CFBundleIdentifier"])
{ {
NSString* valueStr = (NSString*)value; NSString* valueStr = (NSString*)value;
if([valueStr isKindOfClass:NSString.class]) if([valueStr isKindOfClass:NSString.class])
{ {
[accessibleContainers addObject:valueStr]; dataContainer = valueStr;
} }
} }
}]; }];
}
if (dataContainer) {
[accessibleContainers addObject:dataContainer];
}
[self enumerateAllEntitlements:^(NSString *key, NSObject *value, BOOL *stop) [self enumerateAllEntitlements:^(NSString *key, NSObject *value, BOOL *stop)
{ {