From d6f84ef3913ea1f0f676e9b18c2dcd225357fad5 Mon Sep 17 00:00:00 2001 From: radj Date: Wed, 7 Oct 2015 15:06:13 +0800 Subject: [PATCH 1/2] Fix /usr/libexec/cydia/firmware.sh not finishing Details: The new firmware.sh version will retry `gssc` process until it doesn't return a string in both stderr and stdout that contains `(null)`. Since Introspy hooks into all processes, Introspy is injected into `gssc`, it doesn't find a bundle ID and thus prints `(null)` in the logs and causing firmware.sh to keep retrying forever using battery and blocking firmware.sh's completion. Fixed this by getting the process name instead if the bundle ID is not found. I understand this is a problem in firmware.sh also and will occur with other tweaks that print `(null)` into the logs and that should be fixed, too. --- src/Tweak.xmi | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Tweak.xmi b/src/Tweak.xmi index 6fd3bfd..f9d3bea 100755 --- a/src/Tweak.xmi +++ b/src/Tweak.xmi @@ -96,6 +96,11 @@ static void traceURISchemes() { // Only hook Apps the user has selected in Introspy's settings panel NSString *appId = [[NSBundle mainBundle] bundleIdentifier]; + if (appId == nil) { + appId = [[NSProcessInfo processInfo] processName]; + NSLog(@"Introspy - Process has no bundle ID, use process name instead: %@", appId); + } + // Load Introspy preferences NSMutableDictionary *preferences = [[NSMutableDictionary alloc] initWithContentsOfFile:preferenceFilePath]; id shouldHook = [preferences objectForKey:appId]; From c130054947501edc0a4cf93cb056cc6a742cc9ef Mon Sep 17 00:00:00 2001 From: radj Date: Mon, 29 Feb 2016 16:54:00 +0800 Subject: [PATCH 2/2] Add filter introspy.plist to work in iOS 9 --- src/introspy.plist | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/introspy.plist diff --git a/src/introspy.plist b/src/introspy.plist new file mode 100644 index 0000000..d6b46f1 --- /dev/null +++ b/src/introspy.plist @@ -0,0 +1 @@ +{ Filter = { Bundles = ( "com.apple.Foundation" ); }; }