Important: Please don't use the comment section to ask for help. Join r/jailbreak (
#genius-bar
) or FDR Bureau (#futurerestore-support
) instead.
This is a guide for downgrading (or upgrading) to unsigned versions with futurerestore on checkm8 devices (A11 and below). You must have blobs for the version you want to go to, and SEP/BB compatibility may limit how far you can go.
The latest SEP/BB as of right now is iOS 15.4.1.
- iPhone X: Breaks Face ID when downgrading to 15.3.1 or below. Causes more breakage when downgrading to 14.8 or below, but issues apart from Face ID can be fixed by jailbreaking with unc0ver/checkra1n and then installing OTAEnabler.
- iPhone 8: Fully compatible down to 14.3
- A10 and below: Fully compatible down to 14.0
- SHSH blobs for the version you want to downgrade to (e.g. from https://tsssaver.1conan.com/, https://shsh.host/)
- macOS or Linux (Ubuntu 20.04 or newer recommended). Windows or a VM will NOT work.
- If the exploit fails even after multiple attempts or your device reboots out of DFU mode, you'll have to start over from the beginning and be quicker next time. (You don't have to redownload anything though.) You may have to force restart your device if it's stuck in DFU.
- checkm8 is known to have issues on AMD CPUs and may not work if you have one.
Table of Contents |
---|
A11 |
A10(X) |
A9X |
A8(X) |
Compatible versions: 14.3 and above
IMPORTANT: On the iPhone X, downgrading to iOS 14.x will break Face ID. The only way to fix it is by updating/restoring to iOS 15.
With iOS 15.4 or newer SEP, downgrading to 15.0-15.3.1 will also break Face ID, and you have to update to 15.4 or above to fix it.
- Put your device in DFU mode.
- Install Python 3.8 or newer.
- Run
python3 -m pip install --user --force-reinstall https://github.com/hack-different/ipwndfu/archive/main.zip
. - Run
(cd "$(python3 -m site --user-base)/bin"; ./ipwndfu -p; ./ipwndfu --patch-sigchecks; ./ipwndfu --repair-heap)
.
Note: If you want to use OTA blobs, don't tick "Set Nonce" and restore straight from pwned DFU mode. (Ignore this if you don't know what it is.)
- Download and open FutureRestore GUI.
- Click "Settings", enable "FutureRestore Beta", then click "Save".
- Click "Download FutureRestore".
- Download the desired version's IPSW from https://ipsw.me/ and select it along with your blobs.
- Click "Next", enable "Pwned Restore" and "Set Nonce", and leave SEP and Baseband on latest. (If you see a "64 Bit Checkm8" option, update FRGUI. You should not use that option.)
- Click "Next", and then "Start FutureRestore".
- Your device should now be in recovery mode. If not, enter it manually.
- Go back to the previous tab in FutureRestore GUI and uncheck both "Pwned Restore" and "Set Nonce".
- Click "Next", and "Start FutureRestore" again.
If you have an iPhone 8, or are restoring to 15.0 or above, you can skip this section.
- Once the restore starts looping at "No data to read (timeout)", force restart your device.
- When you see the recovery mode screen, press "Exit Recovery".
- Go through with setup as usual.
- Jailbreak your device with checkra1n or unc0ver (not Odysseyra1n or Taurine). This will create an initial RootFS snapshot, as it doesn't get created when the restore is interrupted. If checkra1n complains about the missing snapshot, tap "Create".
- Install OTAEnabler 0.4.0 or newer from https://repo.cadoth.net/ to fix the broken preboot volume which causes issues with OTA updates and Taurine.
- (Optional) Uninstall OTAEnabler and install your preferred OTA blocker.
- If you want to jailbreak with Odysseyra1n or Taurine, restore RootFS and go ahead with installing your preferred jailbreak.
Note that this is not a complete fix, as Face ID will still be broken. That is most likely not possible to fix as it's due to a firmware incompatibility.
Compatible versions: 14.0 and above
- Put your device in DFU mode.
- Download and extract Fugu.
- Open the extracted folder in a terminal.
- Run
./Fugu rmsigchks
.
- Put your device in DFU mode.
- Download and extract patched ipwndfu for A10.
- Open the extracted folder in a terminal.
- Run
python2 ipwndfu -p
. - Run
python2 rmsigchks.py
.
Note: If you want to use OTA blobs, don't tick "Set Nonce" and restore straight from pwned DFU mode. (Ignore this if you don't know what it is.)
- Download and open FutureRestore GUI.
- Click "Settings", enable "FutureRestore Beta", then click "Save".
- Click "Download FutureRestore".
- Download the desired version's IPSW from https://ipsw.me/ and select it along with your blobs.
- Click "Next", enable "Pwned Restore" and "Set Nonce", and leave SEP and Baseband on latest. (If you see a "64 Bit Checkm8" option, update FRGUI. You should not use that option.)
- Click "Next", and then "Start FutureRestore".
- Your device should now be in recovery mode. If not, enter it manually.
- Go back to the previous tab in FutureRestore GUI and uncheck both "Pwned Restore" and "Set Nonce".
- Click "Next", and "Start FutureRestore" again.
Coming soon...
Requires macOS.
Compatible versions: 14.0 and above
- Put your device in DFU mode.
- Download Eclipsa.
- Open the folder in a terminal.
- Run
killall -STOP AMPDevicesAgent AMPDeviceDiscoveryAgent MobileDeviceUpdater
. - Run
make
and wait for it to compile. (You need to have Xcode installed.) If you cannot compile Eclipsa for some reason, download and extract this zip instead (only compatible with Intel Macs). - If compiled manually, run
./eclipsa
. Otherwise, you will need to run the appropriate version for your SoC:- A8:
./eclipsa7000
- A8X:
./eclipsa7001
- A9:
./eclipsa8000
or./eclipsa8003
- A8:
- Run
killall -CONT AMPDevicesAgent AMPDeviceDiscoveryAgent MobileDeviceUpdater
.
Note: If you want to use OTA blobs, don't tick "Set Nonce" and restore straight from pwned DFU mode. (Ignore this if you don't know what it is.)
- Download and open FutureRestore GUI.
- Click "Settings", enable "FutureRestore Beta", then click "Save".
- Click "Download FutureRestore".
- Download the desired version's IPSW from https://ipsw.me/ and select it along with your blobs.
- Click "Next", enable "Pwned Restore" and "Set Nonce", and leave SEP and Baseband on latest. (If you see a "64 Bit Checkm8" option, update FRGUI. You should not use that option.)
- Click "Next", and then "Start FutureRestore".
- Your device should now be in recovery mode. If not, enter it manually.
- Go back to the previous tab in FutureRestore GUI and uncheck both "Pwned Restore" and "Set Nonce".
- Click "Next", and "Start FutureRestore" again.