Skip to content

From Android Root to iOS Jailbreak

Published: at 12:00 AM

Recently, I jumped back into security testing for our internal mobile app at work. I needed to set up a testing environment, buy new devices, and root them. I also started rooting my old Pixel 4, but I didn’t take detailed notes, so I’m not prepared to turn that into a proper blog post, maybe next time. This is a quick wrap-up of what I did on the iPhone side.

So here we are, a guide to jailbreaking an iPhone. If you’re new to the term jailbreaking, take a few seconds to check out my other post.

Table of contents

Open Table of contents

Pre-jailbreak

Before we get started, let’s check what I have: an iPhone X running iOS 16.7.2. I chose this device because it strikes a balance, new enough to test modern apps but not too new to tackle the difficulties of jailbreaking. Then, select the appropriate method for jailbreaking at ios.cfw.guide.

For devices like the iPhone X (A11 chip), Palera1n is currently the most reliable jailbreak option. It’s built on the unpatchable checkm8 exploit, so it works consistently across supported iOS versions without depending on new vulnerabilities. In short, if your device is A5 - A11, Palera1n is the go to.

Jailbreak with Palera1n

- palera1n
- MacOS
- iPhone X, version 16.7.2
- Must use USB-A to Lightning cable due to compatibility issues when entering DFU mode. 

Step 1. Remove Passcode in iPhone. Connect iPhone to Mac with a cable, then Click “Trust” this computer.

Step 2: Install palera1n tool

sudo /bin/sh -c "$(curl -fsSL https://static.palera.in/scripts/install.sh)"

Step 3: Run palera1n on command line update: palera1n -l palera1n-cli-1

Step 4: Enter and follow the instruction

Once complete, this will install palera1n and sileo app on the device. palera1n-result

Troubleshooting

The first issue I encountered was that SSH to iPhone on port 22 didn’t work due to changes in Palera1n, so I had to use an alternative method. (src: Q&A on palera1n.in)

password: root/mobile is alpine

ssh root@127.0.0.1 -o “StrictHostKeyChecking=no” -o “UserKnownHostsFile=/dev/null” -o “ProxyCommand=inetcat 44”

If you cannot use sudo, edit the file ssh_config

find / -name sshd_config -print
use vim to edit <sshconfig>
PasswordAuthentication yes

--------------------
then with sudo
find / -name sudo -print

Create a profile in ./
vim .profile
export PATH="/private/preboot/[digit_string]/jb-xxxxxx/procursus/usr/bin:$PATH"
source .profile

Revised version of the old method: Checkra1n

- Checkra1n: 0.12.3 version
- MacOS
- iPhone X, version 14.8.1
- USB-A cable

Step 1. Remove the passcode on your iPhone. Connect iPhone to Mac with a cable, then click “Trust” this computer.

Step 2. Install Checkra1n tools on your Mac. In version 0.12.3, refer to the notes.

A11 devices on iOS 14.0 and above require removing the passcode and enabling “Skip A11 BPR check” in the options. This is not recommended, but it’s there.

Step 3. Open Checkra1n tool, then configure with options checkra1n-config

checkra1n-config-2

Step 4. Enter DFU mode, then follow the instructions on screen

dfu-mode

Step 5. Once booted, you will have the Checkra1n application installed on your iPhone. This means we jailbroke successfully. Finally, we can install Cydia inside the Checkra1n app.

cydia-loader

References: