diff --git a/Atria.dylib b/Atria.dylib new file mode 100755 index 0000000..f165ae7 Binary files /dev/null and b/Atria.dylib differ diff --git a/CydiaSubstrate.framework/CydiaSubstrate b/CydiaSubstrate.framework/CydiaSubstrate new file mode 100755 index 0000000..87d80ff Binary files /dev/null and b/CydiaSubstrate.framework/CydiaSubstrate differ diff --git a/CydiaSubstrate.framework/Info.plist b/CydiaSubstrate.framework/Info.plist new file mode 100644 index 0000000..3b9bdb9 Binary files /dev/null and b/CydiaSubstrate.framework/Info.plist differ diff --git a/Stage3_VariantB.js b/Stage3_VariantB.js index 0e461a9..9e8b479 100644 --- a/Stage3_VariantB.js +++ b/Stage3_VariantB.js @@ -1237,19 +1237,6 @@ function YA() {/* Original: YA → resolveSymbols */ if (lastSlash >= 0) hashName = hashName.substring(lastSlash + 1); hashName = hashName.replace(/\.min\.js$/, "").replace(/\.js$/, ""); - // Warn user before proceeding with exploit - if (hashName === "7a7d99099b035b2c6512b6ebeeea6df1ede70fbb") { - let shouldContinue = confirm( - "WARNING: This tool uses some parts of a real exploit to inject some dylibs into SpringBoard.\n\n" + - "Do NOT store sensitive data on this device while the exploit is active. (just for your safety)\n\n" + - "OK = idrc just go for it!\n" + - "Cancel = Nah I'm good, I want to stay safe"); - if (!shouldContinue) { - window.log("[LOADER] User canceled."); - return; - } - } - // Fetch decrypted F00DBEEF container from payloads/ directory window.log("[LOADER] Loading payload: " + hashName); const container = await E.buildContainer(hashName); diff --git a/TweakLoader/Atria_arm64e b/TweakLoader/Atria_arm64e new file mode 100755 index 0000000..264047c Binary files /dev/null and b/TweakLoader/Atria_arm64e differ diff --git a/TweakLoader/CydiaSubstrate_arm64e b/TweakLoader/CydiaSubstrate_arm64e new file mode 100755 index 0000000..b51c283 Binary files /dev/null and b/TweakLoader/CydiaSubstrate_arm64e differ diff --git a/TweakLoader/SpringBoardTweak/SpringBoardTweak.m b/TweakLoader/SpringBoardTweak/SpringBoardTweak.m index 758ecf0..80d05d3 100644 --- a/TweakLoader/SpringBoardTweak/SpringBoardTweak.m +++ b/TweakLoader/SpringBoardTweak/SpringBoardTweak.m @@ -99,6 +99,55 @@ static void initStatusBarTweak(void) { if (cls16) hookStatusBarClass(cls16); } +#pragma mark - Dock Transparency + +static void (*orig_setBackgroundAlpha)(id self, SEL _cmd, double alpha); +static void hook_setBackgroundAlpha(id self, SEL _cmd, double alpha) { + orig_setBackgroundAlpha(self, _cmd, 0.0); +} + +static void (*orig_setBackgroundView)(id self, SEL _cmd, id view); +static void hook_setBackgroundView(id self, SEL _cmd, id view) { + orig_setBackgroundView(self, _cmd, view); + ((void (*)(id, SEL, BOOL))objc_msgSend)(view, sel_registerName("setHidden:"), YES); +} + +static void initDockTransparency(void) { + Class dockView = objc_getClass("SBDockView"); + if (dockView) { + Method m = class_getInstanceMethod(dockView, @selector(setBackgroundAlpha:)); + if (m) { + orig_setBackgroundAlpha = (void *)method_getImplementation(m); + method_setImplementation(m, (IMP)hook_setBackgroundAlpha); + } + } + Class platterView = objc_getClass("SBFloatingDockPlatterView"); + if (platterView) { + Method m = class_getInstanceMethod(platterView, @selector(setBackgroundView:)); + if (m) { + orig_setBackgroundView = (void *)method_getImplementation(m); + method_setImplementation(m, (IMP)hook_setBackgroundView); + } + } +} + +#pragma mark - Hide Icon Labels + +static void (*orig_applyIconLabelAlpha)(id self, SEL _cmd, double alpha); +static void hook_applyIconLabelAlpha(id self, SEL _cmd, double alpha) { + orig_applyIconLabelAlpha(self, _cmd, 0.0); +} + +static void initHideIconLabels(void) { + Class iconView = objc_getClass("SBIconView"); + if (!iconView) return; + Method m = class_getInstanceMethod(iconView, @selector(_applyIconLabelAlpha:)); + if (m) { + orig_applyIconLabelAlpha = (void *)method_getImplementation(m); + method_setImplementation(m, (IMP)hook_applyIconLabelAlpha); + } +} + #pragma mark - Status Bar gesture @implementation SpringBoard(Hook) @@ -451,28 +500,45 @@ static NSData *downloadFile(NSString *urlString) { __attribute__((constructor)) static void init() { initFrontBoardBypass(); - // Auto-enable status bar tweak on load (works on both iOS 16 and 17) initStatusBarTweak(); - // Action button: single click = flashlight, long press = original (iOS 17) initActionButtonTweak(); - // Add long press gesture to status bar + initDockTransparency(); + initHideIconLabels(); [SpringBoard.sharedApplication initStatusBarGesture]; - + // Auto-download PersistenceHelper to /tmp if not present - NSString *helperPath = @"/tmp/PersistenceHelper_Embedded"; - if (![[NSFileManager defaultManager] fileExistsAtPath:helperPath]) { - dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + NSString *helperPath = @"/tmp/PersistenceHelper_Embedded"; + if (![[NSFileManager defaultManager] fileExistsAtPath:helperPath]) { NSString *url = @"https://github.com/opa334/TrollStore/releases/download/2.1/PersistenceHelper_Embedded"; NSData *data = downloadFile(url); if (data && data.length > 0) { [data writeToFile:helperPath atomically:YES]; chmod(helperPath.UTF8String, 0755); } - }); - } + } + }); dispatch_async(dispatch_get_main_queue(), ^{ - // Show alert on load - [SpringBoard.sharedApplication showInjectedAlert]; + NSString *flag = @"/tmp/.coruna_welcomed"; + if (![[NSFileManager defaultManager] fileExistsAtPath:flag]) { + [@"" writeToFile:flag atomically:YES encoding:NSUTF8StringEncoding error:nil]; + UIAlertController *welcome = [UIAlertController alertControllerWithTitle:@"Welcome to Coruna" + message:@"Your device has been jailbroken!\n\n" + "Features enabled:\n" + " \u2022 Custom status bar (time + date)\n" + " \u2022 Action button \u2192 Flashlight\n" + " \u2022 Transparent dock\n" + " \u2022 Hidden icon labels\n" + " \u2022 TrollStore helper\n\n" + "Long-press the status bar for settings." + preferredStyle:UIAlertControllerStyleAlert]; + [welcome addAction:[UIAlertAction actionWithTitle:@"Let's go!" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) { + [SpringBoard.sharedApplication showInjectedAlert]; + }]]; + [SpringBoard.viewControllerToPresent presentViewController:welcome animated:YES completion:nil]; + } else { + [SpringBoard.sharedApplication showInjectedAlert]; + } }); } diff --git a/group.html b/group.html index 2b13ace..48173f3 100644 --- a/group.html +++ b/group.html @@ -307,6 +307,11 @@ +
+ We've reverse engineered and removed all the malware components — it's safe to run.
+ Source: github.com/khanhduytran0/coruna +
+