Patches to fix kernel panic/reboot issues when using Frida on iOS 14.7.1 devices jailbroken with Taurine.
Running Frida commands like frida or frida-ps -Ua on iOS 14.7.1 with Taurine jailbreak causes the device to reboot immediately, requiring re-jailbreaking.
- Thread Suspension (introduced in Frida 16.0.3): Frida suspends all threads when modifying memory pages on W^X systems. Taurine's kernel protections treat this as hostile and trigger kernel panic.
- launchd Hooking: Frida attempts to hook launchd (PID 1), which Taurine-based jailbreaks specifically block.
- Memory Protection: Taurine uses libhooker instead of Cydia Substrate, with different kernel-level restrictions.
This repository contains 4 patches that must be applied to the Frida source code:
- File:
subprojects/frida-gum/gum/gummemory.c - Effect: Detects iOS 14 (Darwin 20.x) and skips thread suspension
- This is the primary fix for the reboot issue
- File:
subprojects/frida-core/src/darwin/darwin-host-session.vala - Effect: Prevents injection attempts into launchd (PID 1)
- File:
subprojects/frida-gum/gum/backend-darwin/gumprocess-darwin.c - Effect: Runtime detection of Taurine jailbreak
- File:
subprojects/frida-gum/gum/backend-darwin/gumcodesegment-darwin.c - Effect: Use substrated daemon preferentially for code signing
git clone --recurse-submodules https://github.com/frida/frida.git
cd fridaThese patches are tested against Frida 17.5.2:
git checkout 17.5.2
git submodule update --init --recursivecd ..
git clone https://github.com/jwalker/frida-patch.gitRun the apply-patches script from within your Frida repository:
cd frida
../frida-patch/apply-patches.shThe script will:
- Verify you're in a clean git repository
- Apply all 4 patches using
git am - Provide next steps for building
Find your iOS development certificate:
security find-identity -v -p codesigning | grep "Apple Development"Export the certificate ID:
export IOS_CERTID="Apple Development: your@email.com (XXXXXXXXXX)"# Configure for iOS ARM64
./configure --host=ios-arm64
# Build Frida
make
# The build will produce:
# - build/frida-ios-arm64/bin/frida-server
# - Frida tools and libraries# SSH into your jailbroken iOS device
ssh root@YOUR_DEVICE_IP
# On the device, stop any running frida-server
killall frida-server
# Exit SSH and copy the patched frida-server from your Mac:
scp build/frida-ios-arm64/bin/frida-server root@YOUR_DEVICE_IP:/usr/sbin/frida-server
# SSH back in and start the patched frida-server
ssh root@YOUR_DEVICE_IP
chmod +x /usr/sbin/frida-server
/usr/sbin/frida-server --version
frida-server &# From your Mac, test the connection:
frida-ps -Ua
# If successful, your device should NOT reboot!- ✅ iOS 14.7.1 + Taurine jailbreak + Frida 17.5.2 (patched)
- ✅ iPad mini 5th generation (iOS 14.7.1)
If patches fail with conflicts:
- Ensure you're on Frida 17.5.2:
git describe --tags - Check for uncommitted changes:
git status - Try 3-way merge: The script uses
git am --3wayautomatically - Manual resolution:
git am --abortthen apply patches manually
- Verify patch 1 was applied: Check
subprojects/frida-gum/gum/gummemory.cfor iOS 14 detection - Ensure you deployed the patched frida-server, not the stock one
- Check iOS version:
uname -ashould show Darwin 20.x for iOS 14 - Verify Taurine jailbreak is active
# List available certificates
security find-identity -v -p codesigning
# If no certificates, create a self-signed certificate:
# (Follow instructions in INSTALL.txt for certificate creation)If you prefer to apply patches without git am:
cd frida
../frida-patch/apply-edits-directly.shThis script directly modifies source files but doesn't create git commits.
Apply the patches directly one by one
- INSTALL.txt - Simple installation walkthrough
Patches developed through analysis of Frida source code and Taurine jailbreak behavior on iOS 14.7.1.
These patches are provided as-is for compatibility purposes. Frida itself is licensed under the wxWindows Library Licence, Version 3.1.
Issues and improvements welcome! Please test thoroughly before submitting patches for additional iOS versions or jailbreaks.
- Recommended: Frida 17.5.2
- May work with: Frida 16.x (untested, may require patch adjustments)