From 23d9338f0495148dc4587cd5ffb003e8678c74d6 Mon Sep 17 00:00:00 2001 From: Eilionoir Tunnicliff Date: Thu, 26 Jan 2023 10:21:31 -0500 Subject: [PATCH] Jailbreak JIT fixes - palera1n detection - enable JIT if jailbreak bit is set --- Natives/main.m | 18 +++++++++++------- Natives/utils.m | 2 +- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/Natives/main.m b/Natives/main.m index 91def69d..5b857a8f 100644 --- a/Natives/main.m +++ b/Natives/main.m @@ -20,6 +20,7 @@ #include #include #include +#include #include "JavaLauncher.h" #include "utils.h" #include "codesign.h" @@ -73,8 +74,9 @@ bool init_checkForsubstrated() { void init_checkForJailbreak() { bool jbDyld = false; - bool jbFlag = true; + bool jbFlag = false; bool jbProc = init_checkForsubstrated(); + bool jbFile = false; int imageCount = _dyld_image_count(); uint32_t flags = CS_PLATFORM_BINARY; @@ -82,19 +84,21 @@ void init_checkForJailbreak() { for (int i=0; i < imageCount; i++) { if (strcmp(_dyld_get_image_name(i),"/usr/lib/pspawn_payload-stg2.dylib") == 0) { jbDyld = true; - } else { - jbDyld = false; } } + if (csops(0, CS_OPS_STATUS, &flags, sizeof(flags)) != -1) { - if ((flags & CS_PLATFORM_BINARY) == 0) { - jbFlag = false; - } else { + if ((flags & CS_PLATFORM_BINARY) != 0) { jbFlag = true; } } + + DIR *apps = opendir("/Applications"); + if(apps != NULL) { + jbFile = true; + } - if (jbDyld || jbFlag || jbProc) { + if (jbDyld || jbFlag || jbProc || jbFile) { setenv("POJAV_DETECTEDJB", "1", 1); } } diff --git a/Natives/utils.m b/Natives/utils.m index 1eb88837..05ed27da 100644 --- a/Natives/utils.m +++ b/Natives/utils.m @@ -23,7 +23,7 @@ BOOL getEntitlementValue(NSString *key) { } BOOL isJITEnabled() { - if (getEntitlementValue(@"dynamic-codesigning")) { + if (getEntitlementValue(@"dynamic-codesigning") || getenv("POJAV_DETECTEDJB")) {} return YES; }