|
@@ -35,6 +35,7 @@ NSFileManager *fileMgr;
|
|
|
offsets_t offsets;
|
|
offsets_t offsets;
|
|
|
|
|
|
|
|
BOOL great_success = FALSE;
|
|
BOOL great_success = FALSE;
|
|
|
|
|
+BOOL isKppless = FALSE;
|
|
|
|
|
|
|
|
int remount() {
|
|
int remount() {
|
|
|
//[self log:@"remounting"];
|
|
//[self log:@"remounting"];
|
|
@@ -67,9 +68,10 @@ int bypassKPP() {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
-int makeShitHappen(ViewController *view) {
|
|
|
|
|
|
|
+int makeShitHappen(ViewController *view, BOOL kppless) {
|
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
|
|
|
|
+ isKppless = kppless;
|
|
|
fileMgr = [NSFileManager defaultManager];
|
|
fileMgr = [NSFileManager defaultManager];
|
|
|
|
|
|
|
|
// run v0rtex
|
|
// run v0rtex
|
|
@@ -89,7 +91,9 @@ int makeShitHappen(ViewController *view) {
|
|
|
// set up stuff
|
|
// set up stuff
|
|
|
init_patchfinder(NULL);
|
|
init_patchfinder(NULL);
|
|
|
|
|
|
|
|
-#ifndef DO_KPPLESS
|
|
|
|
|
|
|
+//#ifndef DO_KPPLESS
|
|
|
|
|
+ if (!isKppless) {
|
|
|
|
|
+
|
|
|
ret = init_amfi();
|
|
ret = init_amfi();
|
|
|
|
|
|
|
|
if (ret != 0) {
|
|
if (ret != 0) {
|
|
@@ -113,9 +117,10 @@ int makeShitHappen(ViewController *view) {
|
|
|
[view writeText:@"failed!"];
|
|
[view writeText:@"failed!"];
|
|
|
return 1;
|
|
return 1;
|
|
|
}
|
|
}
|
|
|
|
|
+ } else {
|
|
|
|
|
|
|
|
|
|
|
|
|
-#else
|
|
|
|
|
|
|
+//#else
|
|
|
|
|
|
|
|
int kppReturn = bypassKPP();
|
|
int kppReturn = bypassKPP();
|
|
|
|
|
|
|
@@ -128,9 +133,9 @@ int makeShitHappen(ViewController *view) {
|
|
|
[view writeText:@"KPP bypass failed!\n"];
|
|
[view writeText:@"KPP bypass failed!\n"];
|
|
|
return 1;
|
|
return 1;
|
|
|
}
|
|
}
|
|
|
|
|
+}
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-#endif
|
|
|
|
|
|
|
+//#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -266,8 +271,8 @@ int makeShitHappen(ViewController *view) {
|
|
|
// dump offsets to file for later use (/meridian/offsets.plist)
|
|
// dump offsets to file for later use (/meridian/offsets.plist)
|
|
|
dumpOffsetsToFile(&offsets, kernel_base, kslide);
|
|
dumpOffsetsToFile(&offsets, kernel_base, kslide);
|
|
|
|
|
|
|
|
-#ifndef DO_KPPLESS
|
|
|
|
|
-
|
|
|
|
|
|
|
+//#ifndef DO_KPPLESS
|
|
|
|
|
+ if (!isKppless) {
|
|
|
// patch amfid
|
|
// patch amfid
|
|
|
[view writeText:@"patching amfid..."];
|
|
[view writeText:@"patching amfid..."];
|
|
|
ret = defecateAmfi();
|
|
ret = defecateAmfi();
|
|
@@ -279,8 +284,8 @@ int makeShitHappen(ViewController *view) {
|
|
|
return 1;
|
|
return 1;
|
|
|
}
|
|
}
|
|
|
[view writeText:@"done!"];
|
|
[view writeText:@"done!"];
|
|
|
-
|
|
|
|
|
-#endif
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+//#endif
|
|
|
|
|
|
|
|
// touch .cydia_no_stash
|
|
// touch .cydia_no_stash
|
|
|
touch_file("/.cydia_no_stash");
|
|
touch_file("/.cydia_no_stash");
|
|
@@ -385,8 +390,8 @@ int makeShitHappen(ViewController *view) {
|
|
|
|
|
|
|
|
// link substitute stuff
|
|
// link substitute stuff
|
|
|
//setUpSubstitute();
|
|
//setUpSubstitute();
|
|
|
-#ifndef DO_KPPLESS
|
|
|
|
|
-
|
|
|
|
|
|
|
+//#ifndef DO_KPPLESS
|
|
|
|
|
+ if (!isKppless) {
|
|
|
// start jailbreakd
|
|
// start jailbreakd
|
|
|
|
|
|
|
|
ret = inject_trust("/meridian/inject_criticald");
|
|
ret = inject_trust("/meridian/inject_criticald");
|
|
@@ -416,8 +421,8 @@ int makeShitHappen(ViewController *view) {
|
|
|
return 1;
|
|
return 1;
|
|
|
}
|
|
}
|
|
|
[view writeText:@"done!"];
|
|
[view writeText:@"done!"];
|
|
|
-
|
|
|
|
|
-#endif
|
|
|
|
|
|
|
+ }
|
|
|
|
|
+//#endif
|
|
|
// load launchdaemons
|
|
// load launchdaemons
|
|
|
[view writeText:@"loading launchdaemons..."];
|
|
[view writeText:@"loading launchdaemons..."];
|
|
|
ret = loadLaunchDaemons();
|
|
ret = loadLaunchDaemons();
|