From 66ee2180e03077a187ca4474c1372065b45dac9c Mon Sep 17 00:00:00 2001 From: Huge_Black Date: Tue, 15 Jul 2025 23:37:13 +0800 Subject: [PATCH 1/2] Fix infinite loading, remove pcap capturing, some optimizations --- StikJIT/StikJITApp.swift | 1 + StikJIT/Views/HomeView.swift | 2 +- StikJIT/Views/SettingsView.swift | 2 +- StikJIT/idevice/heartbeat.m | 15 +++++++++++---- StikJIT/idevice/jit.c | 5 ----- 5 files changed, 14 insertions(+), 11 deletions(-) diff --git a/StikJIT/StikJITApp.swift b/StikJIT/StikJITApp.swift index 7479850e..43aa666e 100644 --- a/StikJIT/StikJITApp.swift +++ b/StikJIT/StikJITApp.swift @@ -16,6 +16,7 @@ private func registerAdvancedOptionsDefault() { // Enable advanced options by default on iOS 19/26 and above let enabled = os.majorVersion >= 19 UserDefaults.standard.register(defaults: ["enableAdvancedOptions": enabled]) + UserDefaults.standard.register(defaults: ["enablePiP": enabled]) } // MARK: - Welcome Sheet diff --git a/StikJIT/Views/HomeView.swift b/StikJIT/Views/HomeView.swift index 918f0238..5cc00db3 100644 --- a/StikJIT/Views/HomeView.swift +++ b/StikJIT/Views/HomeView.swift @@ -305,7 +305,7 @@ struct HomeView: View { } } .pipify(isPresented: Binding( - get: { enablePiP && isProcessing }, + get: { useDefaultScript && enablePiP && isProcessing }, set: { newValue in isProcessing = newValue } )) { RunJSViewPiP(model: $jsModel) diff --git a/StikJIT/Views/SettingsView.swift b/StikJIT/Views/SettingsView.swift index fd335c9b..fe32932a 100644 --- a/StikJIT/Views/SettingsView.swift +++ b/StikJIT/Views/SettingsView.swift @@ -13,7 +13,7 @@ struct SettingsView: View { @AppStorage("selectedAppIcon") private var selectedAppIcon: String = "AppIcon" @AppStorage("useDefaultScript") private var useDefaultScript = false @AppStorage("enableAdvancedOptions") private var enableAdvancedOptions = false - @AppStorage("enablePiP") private var enablePiP = true + @AppStorage("enablePiP") private var enablePiP = false @State private var isShowingPairingFilePicker = false @Environment(\.colorScheme) private var colorScheme diff --git a/StikJIT/idevice/heartbeat.m b/StikJIT/idevice/heartbeat.m index 8720648a..fafe403f 100644 --- a/StikJIT/idevice/heartbeat.m +++ b/StikJIT/idevice/heartbeat.m @@ -17,7 +17,6 @@ void startHeartbeat(IdevicePairingFile* pairing_file, IdeviceProviderHandle** provider, bool* isHeartbeat, HeartbeatCompletionHandlerC completion, LogFuncC logger) { - *isHeartbeat = true; // Initialize logger idevice_init_logger(Debug, Disabled, NULL); @@ -28,8 +27,9 @@ void startHeartbeat(IdevicePairingFile* pairing_file, IdeviceProviderHandle** pr addr.sin_port = htons(LOCKDOWN_PORT); inet_pton(AF_INET, "10.7.0.2", &addr.sin_addr); + IdeviceProviderHandle* newProvider = 0; IdeviceFfiError* err = idevice_tcp_provider_new((struct sockaddr *)&addr, pairing_file, - "ExampleProvider", provider); + "ExampleProvider", &newProvider); if (err != NULL) { fprintf(stderr, "Failed to create TCP provider: [%d] %s", err->code, err->message); @@ -41,16 +41,23 @@ void startHeartbeat(IdevicePairingFile* pairing_file, IdeviceProviderHandle** pr // Connect to installation proxy HeartbeatClientHandle *client = NULL; - err = heartbeat_connect(*provider, &client); + err = heartbeat_connect(newProvider, &client); if (err != NULL) { fprintf(stderr, "Failed to connect to installation proxy: [%d] %s", err->code, err->message); - idevice_provider_free(*provider); + idevice_provider_free(newProvider); idevice_error_free(err); *isHeartbeat = false; return; } + if(*isHeartbeat) { + idevice_provider_free(newProvider); + return; + } + // we mark heartbeat as success and set the default provider + *isHeartbeat = true; + *provider = newProvider; completion(0, "Heartbeat Completed"); diff --git a/StikJIT/idevice/jit.c b/StikJIT/idevice/jit.c index 808236ad..f178590a 100644 --- a/StikJIT/idevice/jit.c +++ b/StikJIT/idevice/jit.c @@ -176,11 +176,6 @@ int debug_app(IdeviceProviderHandle* tcp_provider, const char *bundle_id, LogFun return 1; } printf("Successfully launched app with PID: %llu\n", pid); - - char* path = malloc(2048); - snprintf(path, 2048, "%s/Documents/debugProxy.pcap", getenv("HOME")); - adapter_pcap(adapter, path); - free(path); printf("\n=== Setting up Debug Proxy ===\n"); From 31e410620010eb492bd3a5508e4546e7b6f76420 Mon Sep 17 00:00:00 2001 From: Huge_Black Date: Tue, 15 Jul 2025 23:41:48 +0800 Subject: [PATCH 2/2] Fix typo --- StikJIT/JSSupport/attachDetach.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/StikJIT/JSSupport/attachDetach.js b/StikJIT/JSSupport/attachDetach.js index 92dde880..35dfc173 100644 --- a/StikJIT/JSSupport/attachDetach.js +++ b/StikJIT/JSSupport/attachDetach.js @@ -1,5 +1,5 @@ function attach() { - log("Welcome to use StikDebug's srcipting feature! Here you can use JavaScript to customize your debug experience!") + log("Welcome to use StikDebug's scripting feature! Here you can use JavaScript to customize your debug experience!") log("This script is a demo script that attaches to the connected app and detaches from it.") // get pid of the connected app