The iPhone Wiki is no longer updated. Visit this article on The Apple Wiki for current information. |
Difference between revisions of "Bluefreeze"
(removed contradictory information, clarified why this method is /not/ compatible with an untethered jailbreak) |
(→Alternative: https://twitter.com/iSuns9/status/500075126717968385) |
||
Line 13: | Line 13: | ||
== Alternative == |
== Alternative == |
||
+ | You have to patch a firmware file (ipsw) which is signed by Apple exactly when you want to perform the downgrade! |
||
− | A much easier way to do a "tethered downgrade" (unsure if this still works): |
||
+ | |||
− | * 1. Patch ASR on the Ramdisk (you can just create a custom IPSW and use that.) |
||
+ | 1. patch out the signature check in iBSS and iBEC and apply another patch to iBEC. (some lines of code before the patch the string "debug-enabled" is loaded into a register and some lines after the patch the string "development-cert" is loaded. Look at a patched iBEC from an iFaith IPSW for details.) |
||
− | * 2. Replace the Rootfs-DMG of the currently signed Firmware with the decrypted Rootfs-DMG of the older Firmware |
||
− | + | 2. patch the boot-args in iBEC to "rd=md0 amfi=0xff cs_enforcement_disable=1 pio-error=0" and do an iBEC patch that injects the boot-args. |
|
+ | 3. patch asr to return "Image passed signature verification" where it would usually return "Image failed signature verification". |
||
− | * 4. Send the device the "bootx"-Command using iRecovery. |
||
+ | 4. update the page hashes of asr with ldid. |
||
− | * 5. Done! Remember your device will always need to boot tethered. |
||
+ | 5. grow the ramdisk to original size + size of asr. (better some bytes larger) |
||
+ | 6. rename the original asr and add the patched asr. |
||
+ | 7. chmod asr to 100755 |
||
+ | 8. replace the root file system dmg with the decrypted root file system dmg of the older firmware you want to downgrade to. (take care that the decrypted dmg has the format UDZO!) |
||
+ | 9. Enter pwned DFU mode. |
||
+ | 10. Use an old iTunes version that allows downgrades on your iOS device and restore to your patched ipsw. |
||
+ | 11. To start up your device you will have to boot tethered. (depending on iOS version redsn0w or opensn0w) |
||
== Download == |
== Download == |
Revision as of 15:17, 15 August 2014
iFaith has a protection that you don't use it on the wrong firmware to protect you. Bluefreeze, a tool written by a group called The Private Dev Team, modifies the firmware version (and firmware checksum) in the iFaith certificate file, so that this check gets disabled. By doing so, you can install any firmware version on your device, even without having saved the SHSH files. The problem by doing so is that you actually install a firmware without signatures, with all consequences.
Bluefreeze asks you to build and browse to two ipsw's one signed properly and one not signed. Then Bluefreeze swaps the properly signed img3 files in the properly signed firmware file with the incorrectly signed img3 files in the unsigned ipsw thus resulting in an ipsw file with properly signed img3 files. This firmware file is used for the downgrade.
Having an incorrectly signed firmware installed won't let you boot of course. But because the limera1n exploit ignores incorrect signatures we can use the limera1n exploit (DFU mode, then using redsn0w) to boot up your device. The problem is only that you have to repeat this every time (similar to a tethered jailbreak), so it's not a downgrade you would want. This should be your last resort, and only if you absolutely need a downgrade.
This way a downgrade to iOS 4.3, 4.3.5, or 5.0 from 5.0.1 is possible. Supported devices are iPhone 3GS, iPod touch 3G, and all A4 devices.
Installing a firmware version using this method (without valid SHSH blobs) is incompatible with an untethered jailbreak. Each time the device boots, the bootrom validates the SHSH blobs for LLB, LLB for iBoot, and so on. Therefore, the image validation function must be patched or bypassed with an appropriate bootrom exploit payload on every boot or the device will be forced into DFU mode.
Contents
Purpose
With this method you can install a firmware for which you don't have SHSH saved for some tests, for example if you're a software developer and need to do some tests on a specific version.
Alternative
You have to patch a firmware file (ipsw) which is signed by Apple exactly when you want to perform the downgrade!
1. patch out the signature check in iBSS and iBEC and apply another patch to iBEC. (some lines of code before the patch the string "debug-enabled" is loaded into a register and some lines after the patch the string "development-cert" is loaded. Look at a patched iBEC from an iFaith IPSW for details.) 2. patch the boot-args in iBEC to "rd=md0 amfi=0xff cs_enforcement_disable=1 pio-error=0" and do an iBEC patch that injects the boot-args. 3. patch asr to return "Image passed signature verification" where it would usually return "Image failed signature verification". 4. update the page hashes of asr with ldid. 5. grow the ramdisk to original size + size of asr. (better some bytes larger) 6. rename the original asr and add the patched asr. 7. chmod asr to 100755 8. replace the root file system dmg with the decrypted root file system dmg of the older firmware you want to downgrade to. (take care that the decrypted dmg has the format UDZO!) 9. Enter pwned DFU mode. 10. Use an old iTunes version that allows downgrades on your iOS device and restore to your patched ipsw. 11. To start up your device you will have to boot tethered. (depending on iOS version redsn0w or opensn0w)