Compare commits

...

3 Commits

Author SHA1 Message Date
Sam Bingner 1e3a86e836 Fix resolveDeps for pkgs with no deps 2019-01-31 17:42:11 +03:00
Pwn20wnd 9583329c5c Actually fix this error... 2019-01-31 00:34:23 +03:00
Pwn20wnd 7cad24e8f4 Fix failed to extract bootstrap 2019-01-30 23:41:21 +03:00
2 changed files with 16 additions and 13 deletions
+10 -13
View File
@@ -237,6 +237,11 @@ NSArray *allDepsForPkg(NSString *pkg) {
}
NSArray *resolveDepsForPkgWithQueue(NSString *pkg, NSMutableArray *queue, BOOL preDeps) {
if (pkg == nil) {
LOG("I can't resolve deps for no pkg. WTF.");
return nil;
}
NSArray *deps = preDeps?allDepsForPkg(pkg):getDepsForPkg(pkg);
NSDictionary *pkgs = getPkgs();
@@ -244,14 +249,6 @@ NSArray *resolveDepsForPkgWithQueue(NSString *pkg, NSMutableArray *queue, BOOL p
queue = [NSMutableArray new];
}
if (deps == nil) {
return queue;
}
if (deps.count < 1) {
return queue;
}
NSRegularExpression *or = [NSRegularExpression regularExpressionWithPattern:@"\\s*([^\\|]+)\\s*\\|?" options:0 error:nil];
for (NSString *dep in deps) {
BOOL __block resolved = NO;
@@ -318,25 +315,24 @@ NSArray *resolveDepsForPkgWithQueue(NSString *pkg, NSMutableArray *queue, BOOL p
return nil;
}
}
[queue removeObject:pkg];
[queue addObject:pkg];
if (![queue containsObject:pkg])
[queue addObject:pkg];
return queue;
}
NSArray *resolveDepsForPkg(NSString *pkg, BOOL preDeps) {
if (pkg == nil) {
return nil;
}
return resolveDepsForPkgWithQueue(pkg, nil, preDeps);
}
BOOL extractDebsForPkg(NSString *pkg, NSMutableArray *installed, BOOL preDeps) {
NSArray *pkgsForPkg = resolveDepsForPkg(pkg, preDeps);
if (pkgsForPkg == nil || pkgsForPkg.count < 1) {
LOG("Found no pkgs to install for \"%@\"", pkg);
return NO;
}
NSMutableArray *debsForPkg = [debsForPkgs(pkgsForPkg) mutableCopy];
if (debsForPkg == nil) {
LOG("Found no debs to install for \"%@\"", pkg);
return NO;
}
if (installed != nil) {
@@ -347,6 +343,7 @@ BOOL extractDebsForPkg(NSString *pkg, NSMutableArray *installed, BOOL preDeps) {
return YES;
}
if (!extractDebs(debsForPkg)) {
LOG("Failed to extract debs for \"%@\"", pkg);
return NO;
}
[installed addObjectsFromArray:debsForPkg];
@@ -1405,6 +1405,12 @@ void exploit()
}
// Dpkg better work now
if (pkgIsInstalled("science.xnu.undecimus.resources")) {
LOG("Removing old resources...");
_assert(removePkg("science.xnu.undecimus.resources", true), message, true);
}
if (debsToInstall.count > 0) {
LOG("Installing manually exctracted debs...");
_assert(installDebs(debsToInstall, true), message, true);