iOS Jailbreak
What is the iOS Jailbreak
Jailbreaking is the process of removing software restrictions imposed by the manufacturer. It’s basically about regaining full control (root access) over a system that’s been deliberately locked down.
Think of it like this: the device you bought is yours, but it comes with limits, what apps you can install, what system files you can access, etc. Jailbreaking is about busting through that walled garden and doing whatever the hell you want with your hardware.
How the jailbreak process works
It usually follows these steps:
- Finding a Vulnerability
- You need an exploit — typically in the bootloader, kernel, or userland.
- These vulnerabilities allow you to inject code that the system wasn’t expecting.
- For example, an iOS kernel exploit might let you elevate privileges to root.
- Gaining Root Access
- Once you’ve exploited the system, the goal is to run unsigned code with root-level permissions.
- This often means patching security mechanisms like:
- Code signing (AMFI)
- Sandbox restrictions
- Trust chains
- Persistence (Optional)
- Some jailbreaks are tethered (you need to re-jailbreak after reboot).
- Others are semi-untethered (you re-run an app to re-jailbreak).
- A full untethered jailbreak is the holy grail — survives reboots without any help.
- Installing a Package Manager (like Cydia or Sileo)
- This gives you access to a world of tweaks, themes, and unofficial apps — basically a hacker’s app store.
- These tools let you modify the UI, add hidden features, or bypass restrictions like carrier locks.
Rootful vs Rootless
When we talk about rootful vs rootless jailbreaks, we’re really talking about how deep into the system you can go. A rootful jailbreak gives you full-blown, unrestricted access to the entire file system, the OG jailbreak style. You can modify system partitions like /System and /usr, inject your own binaries, and rewrite Apple’s rules from the inside out. It’s powerful, but risky, one wrong move and you could brick your device. Apple’s gotten smarter though, and with iOS 15 and beyond, they introduced a more locked-down system, leading to the rise of rootless jailbreaks. In a rootless setup, you don’t touch the system partition at all, it stays read-only. Instead, you operate from the userland, typically in writable directories like /var. You still get to run unsigned code and apply tweaks, but you’re working around Apple’s security model instead of smashing straight through it. Rootless jailbreaks are safer, more stable, and stealthier, but less powerful than a Rootful jailbreak.
Use a rootful jailbreak when:
- You need full system access and modification capabilities (like writing to
/System,/Applications) - Testing requires traditional security tools that expect full file system access
- You’re analyzing system-level vulnerabilities or doing deep OS security research
- You need persistence across reboots for long-term monitoring
- Working with tools that haven’t been updated for rootless environments
Use a rootless jailbreak when:
- You want a more stable testing environment with lower risk of bricking the device
- Testing app-level security without needing deep system modifications
- You need to maintain better iOS version compatibility (rootless often supports newer versions faster)
- You want easier reversal - rootless jailbreaks are generally cleaner to remove
- Running dynamic analysis tools, SSL proxying, runtime manipulation with tools like Frida
- The target apps don’t have sophisticated jailbreak detection specifically looking for rootful indicators
Which jailbreak method should you choose
NOTE: I’ve tested on iPhone X (A11 Chip) with iOS 16.7.12 ; iPhone 8 (A11 Chip) with iOS 16.7.10 ; iPhone 6s (A9 Chip) with iOS 15.8.3
Jailbreak methods vary in their approach and convenience. Tethered jailbreaks like checkra1n and palera1n require a computer connection after each reboot, leveraging hardware-level exploits that cannot be patched by software updates. Semi-untethered jailbreaks such as unc0ver and Dopamine allow users to re-jailbreak directly from an on-device app without a computer, offering greater convenience for daily use. Fully untethered jailbreaks, which persist automatically through reboots, are extremely rare in modern iOS due to Apple’s security improvements. Each method represents different trade-offs between stability, convenience, and device compatibility. Regarding palera1n specifically:
I personally use Palera1n rootful, although rootless works perfectly fine for the purpose of this blog post. That’s because Palera1n supports newer iOS versions than many other jailbreaks, but it’s limited to A11 and earlier devices (iPhone X and older) due to its reliance on the checkm8 bootrom exploit.
Below I have included guides on how to install both Palera1n and Dopamine.
Palen1x
To perform the jailbreak, I use a Live USB with Palen1x, as it’s an ISO ready to use Palera1n.
NOTE: I’ve had it sometimes that after the jailbreak process was completed, both WiFi and Bluetooth stopped working. In those cases, I had to power off the iPhone, power it back on, and redo the jailbreak from scratch.
NOTE: If any time during process the iPhone gets “bricked” you can try to use the next combination to reboot the iPhone: press and release volume up, press and release volume down and hold power button for about 20 seconds
Rootful
- Fully reset the iPhone
- Settings > General > Transfer or reset iPhone > Erase all content and settings
- Enter your iPhone’s passcode if it has one
- Enter your Apple account’s password if you have one added
- Erase all
- Set up the iPhone
- Remember to not add a passcode / fingerprint / FaceID, that will make the process easier
- Do not transfer data
- Set up Apple ID later (Don’t have an Apple ID > Set Up later in Settings)
- Wait until all apps are installed
- Boot to Palen1x on your computer
- Connect the iPhone to the computer
- NOTE: it’s important that you use a usb-a <-> lighting cable, as a usb-c <-> lighting cable won’t work
- Once connected select
Trust
- Select option
palera1n - Then select
Switchand chooseRootful - Select
Optionsand checkCreate FakeFS
- To check an option use the space bar, and then tab and confirm with enter
- Select
Start
- The iPhone will restart to the recovery screen (the one with a laptop and a cable)
- Prepare to enter DFU mode
- You will have to press volume up, volume down and hold the power button for 3 to 5 seconds until it gets all black, then click enter on your computer
- Enter DFU mode, palera1n will guide you, but here is another guide (in Spanish but with great images) that will help you
- The exploit will run
- If you see an error you can unplug and plug the lighting cable cable from the iPhone and it will resume
- Another choice if that does not work is to ctrl+c the script and launch it again
- The process of creating
FakeFScan take up to 10 minutes, so grab a cup of coffee :) - You’ll see that the script tells you to hit enter in order to quit but let the iPhone finish the process
- Once the iPhone is back to the recovery screen, select
Switchfrom thepalera1nscreen and selectRootful - Select
Start - Prepare to enter DFU mode
- You will have to press volume up, volume down and hold the power button for 3 to 5 seconds again until you get a black screen, then click enter on your computer
- Enter DFU mode, follow the same process as before
- The exploit will run
- Again, if you see an error you can unplug and plug the lighting cable cable from the iPhone and it will resume
- Or again, another choice if that does not work is to ctrl+c the script and launch it again
- Once the iPhone reboots, you will see the
Palera1napp, the iPhone is jailbroken and you can install Sileo / Zebra from thePalera1napp (make sure to have internet access)
Rootless
- Fully reset the iPhone
- Settings > General > Transfer or reset iPhone > Erase all content and settings
- Enter your iPhone’s passcode if it has one
- Enter your Apple account’s password if you have one added
- Erase all
- Set up the iPhone
- Remember to not add a passcode / fingerprint / FaceID, that will make the process easier
- Do not transfer data
- Set up Apple ID later (Don’t have an Apple ID > Set Up later in Settings)
- Wait until all apps are installed
- Boot to Palen1x on your computer
- Connect the iPhone to the computer
- NOTE: it’s important that you use a usb-a <-> lighting cable, as a usb-c <-> lighting cable won’t work
- Once connected select
Trust
- Select option
palera1n - Then select
Switchand chooseRootless - Select
Start
- The iPhone will restart to the recovery screen (the one with a laptop and a cable)
- Prepare to enter DFU mode
- You will have to press volume up, volume down and hold the power button for 3 to 5 seconds until you see a black, then click enter on your computer
- Enter DFU mode, palera1n will guide you, but here is another guide (in Spanish but with great images) that will help you
- The exploit will run
- If you see an error you can unplug and plug the lighting cable cable from the iPhone and it will resume
- Another choice if that does not work is to ctrl+c the script and launch it again
- Once the iPhone reboots, you will see the
Palera1napp, the iPhone is jailbroken and you can install Sileo / Zebra from thePalera1napp (make sure to have internet access)
Dopamine
NOTE: This will be a
rootlessJailbreak. I’ve installed Dopamine on iPhone 6s (A9 Chip) with iOS 15.8.3 using Ubuntu 24.04 and python 3.12
- Fully reset the iPhone
- Settings > General > Transfer or reset iPhone > Erase all content and settings
- Enter your iPhone’s passcode if it has one
- Enter your Apple account’s password if you have one added
- Erase all
- Set up the iPhone
- Remember to not add a passcode / fingerprint / FaceID, that will make the process easier
- Do not transfer data
- Set up Apple ID later (Don’t have an Apple ID > Set Up later in Settings)
- Wait until all apps are installed
- Download TrollStore from releases
- Unzip troll store
- Create a virtual env to install the requirements
- Install TrollStore installer
- TIP: if you are using
python <= 3.12you might have an error with the imports, to solve this problem, changerequirements.txtto install the version3.0.0ofpymobiledevice3 - Install the requirements:
pip install -r requirements.txt - Run the script:
python trollstore.py - Choose the
Tipsapp - NOTE: the iPhone will restart and the PC is no longer needed
- Install TrollStore
- Open
Tipsapp - Tap
Install TrollStore - The
SpringBoardwill reboot and theTrollStoreapp will be installed
- Install
Dopamine
- Download Dopamine.ipa in your iPhone
- Open
TrollStore, click add and IPA and selectDopaminefrom Downloads - Click install
- Perform the Jailbreak
- Reboot the iPhone
- Open
Dopamine - Click
Jailbreakand selectSileo - Add a password (
alpineis recommended as password, this will be themobileuser’s password)
What to do after Jailbreak
On your PC
- Frida (Virtual env recommended, as you have to install the same version of frida as your frida server in your device -
pip install frida frida-tools) libimobiledevicesuitelibusbmuxd-tools(foriproxycommand)
sudo apt install libimobiledevice-utils libimobiledevice-dev libimobiledevice-doc libusbmuxd-tools
On the iPhone
Install from Sileo / Zebra
- OpenSSH
- Frida Server (https://build.frida.re)
To install a package from the Sileo store:
- Open the
Sileoapp - Click on
Searchon the bottom bar - Look for the package (openssh for example)
- If the package doesn’t show up you will have to add the source (like for
frida)
- If the package doesn’t show up you will have to add the source (like for
- Click on the package
- Click
GET - Click on
Queue, that showed up above the bottom bar - Click
Confirm
How to add a source to Sileo:
- Open the
Sileoapp - Click on
Sourceson the bottom bar - Click the
+button top right - Type the source (
https://build.frida.reforfrida) - Click
Add source - Follow the steps above to install the package
Install .deb packages
- SSL Kill Switch 3 (https://github.com/NyaMisty/ssl-kill-switch3)
- AppSync Unified (https://github.com/akemin-dayo/AppSync)
Configure ssh:
- Install
opensshpackage from Sileo / Zebra - On your PC run the command
iproxy 2222 22- This command will open the port 2222 on your localhost and redirect the connection to port 22 to the device that is plugged via USB
- SSH to your iPhone with
mobileuser and the password used before (alpinein this case)ssh -p 2222 [email protected]
- Change to root user (
sudo su) - Change root’s password (I recommend to use
alpineas well) - (Optional) Add an ssh key to
/root/.ssh/authorized_keysso you can use an ssh key instead of password
Install the .deb package:
- Download the
.debpackage on your computer - scp the
.debfile to the iPhone’s/tmpdirectory (scp -P 2222 file.deb [email protected]:/tmp) - SSH into the device with the
rootuser - cd to
/tmp - Install the package with apt (
apt install ./file.deb)