diff --git a/README.md b/README.md index ec00214..519a650 100755 --- a/README.md +++ b/README.md @@ -1,25 +1,27 @@ # iOS-OTA-Downgrader ### (formerly 32bit-OTA-Downgrader) ### Downgrade/restore iOS devices to signed OTA firmwares -- **Please see "Other notes" below to serve as answers for FAQs** +- **Please see the "Other notes" section below to serve as answers for FAQs** ## Supported devices: -- **iOS 10.3.3**: All A7 devices are supported **except iPad4,6 iPad4,7 iPad4,8 iPad4,9** +- **iOS 10.3.3**: All A7 devices are supported **except iPad4,6 and all iPad mini 3 models** - **iOS 8.4.1**: All A5, A5X, A6, and A6X devices are supported **except iPhone5,3 and 5,4 (iPhone 5C)** - **iOS 6.1.3**: Only iPhone 4S and iPad 2 devices are supported **except iPad2,4 (iPad 2 Rev A)** ## Prerequisites: -- A supported device: +- **A supported device:** - A 32-bit iOS device (any version, **jailbreak needed**) - An A7 device (any version, jailbreak not needed) - An IPSW for the version you want to downgrade to (the script can also download it for you) -- A **macOS** or a **64-bit Linux install/live USB** (see distros tested on below) (a live USB can be easily created with tools like [balenaEtcher](https://www.balena.io/etcher/) or [Rufus](https://rufus.ie/)) +- A **macOS** or a **64-bit Linux install/live USB** + - See supported Linux distros below + - A live USB can be easily created with tools like [balenaEtcher](https://www.balena.io/etcher/) or [Rufus](https://rufus.ie/)) - All 32-bit users must install [OpenSSH](https://cydia.saurik.com/package/openssh/) -- A6/A6X iOS 10 users must install [Dropbear (deb)](http://www.mediafire.com/file/m2wzque7zsa87lp/Dropbear.deb/file) as well -- For kDFU mode to work on Pangu 32-bit, install the [latest Pangu 7.1.x Untether (deb)](http://apt.saurik.com/debs/io.pangu.axe7_0.3_iphoneos-arm.deb) or [latest Pangu 8.0-8.1.x Untether (deb)](http://apt.saurik.com/debs/io.pangu.xuanyuansword8_0.5_iphoneos-arm.deb) + - A6/A6X iOS 10 users must install [Dropbear (deb)](http://www.mediafire.com/file/m2wzque7zsa87lp/Dropbear.deb/file) as well +- For 32-bit users using Pangu, install the [latest Pangu 7.1.x Untether (deb)](http://apt.saurik.com/debs/io.pangu.axe7_0.3_iphoneos-arm.deb) or [latest Pangu 8.0-8.1.x Untether (deb)](http://apt.saurik.com/debs/io.pangu.xuanyuansword8_0.5_iphoneos-arm.deb) 1. [Download](https://github.com/LukeZGD/iOS-OTA-Downgrader/archive/master.zip) or `git clone` this repo -2. Open Terminal, `cd` to the directory where the script is located (example: `cd /home/user/iOS-OTA-Downgrader`) +2. Open Terminal and `cd` to the directory where the script is located (example: `cd /home/user/iOS-OTA-Downgrader`) 3. Run `chmod +x restore.sh` ## How to use: @@ -30,22 +32,25 @@ ## Other notes: - **You do NOT need blobs to use this**, the script will get them for you -- This script will verify the IPSW with SHA1sum before restoring -- 32-bit only: +- If the restore process does not work for you, try switching USB ports and/or cables +- This script will verify the IPSW SHA1sum before restoring +- For A7 devices: + - Do not use USB-C to lightning cables as this can prevent a successful restore + - checkm8 ipwndfu is unfortunately pretty unreliable, you may have to try multiple times + - If the script can't find your device in pwnREC mode or gets stuck, you may have to start over +- For 32-bit devices: - This script does not modify the IPSW - To devices with baseband, this script will restore your device with the latest baseband - This script has a workaround for the activation error on devices downgrading from iOS 10 - - This script uses futurerestore "Odysseus method" for downgrading (different from OdysseusOTA/2, which are deprecated) - - This script only uses iBSS patches for entering kDFU mode - This script can also be used to just enter kDFU mode for all supported devices - - This script can also be used to futurerestore to other iOS versions with provided SHSH blobs + - This script can also restore your device to other iOS versions with provided SHSH blobs - This script can work on virtual machines, but I won't provide support for them -## OS versions/distros tested on: -- [Ubuntu 20.04](http://releases.ubuntu.com/focal/) (and Focal-based distros like [Linux Mint 20](https://www.linuxmint.com/)) -- [Arch Linux](https://www.archlinux.org/) (and Arch-based distros like [Manjaro](https://manjaro.org/)) +## Supported OS versions/distros: +- [Ubuntu 20.04](http://releases.ubuntu.com/focal/) and Focal-based distros like [Linux Mint 20](https://www.linuxmint.com/) +- [Arch Linux](https://www.archlinux.org/) and Arch-based distros like [Manjaro](https://manjaro.org/) - [Fedora 32](https://getfedora.org/) -- macOS 10.13.6 High Sierra, 10.14.6 Mojave, 10.15.5 Catalina +- macOS 10.13 High Sierra, 10.14 Mojave, 10.15 Catalina ## Tools and other stuff used by this script: - cURL @@ -59,7 +64,6 @@ - [futurerestore 152](http://api.tihmstar.net/builds/futurerestore/futurerestore-latest.zip) (32-bit) - [futurerestore 249 (Linux)](https://github.com/LukeZGD/futurerestore) (A7) - [futurerestore 245 (macOS)](https://github.com/MatthewPierson/Vieux/blob/master/resources/bin/futurerestore) -- [xpwntool](https://www.youtube.com/watch?v=fh0tB6fp0Sc) - [kloader](https://www.youtube.com/watch?v=fh0tB6fp0Sc) - [kloader5 for iOS 5](https://mtmdev.org/pmbonneau-archive) - [kloader_hgsp for iOS 10](https://twitter.com/nyan_satan/status/945203180522045440) diff --git a/restore.sh b/restore.sh index 6f61c30..b407447 100755 --- a/restore.sh +++ b/restore.sh @@ -290,7 +290,10 @@ function Downgrade { IPSW="${IPSW}_${OSVer}_${BuildVer}_Restore" IPSWCustom="${ProductType}_${OSVer}_${BuildVer}_Custom" if [ ! -e $IPSW.ipsw ]; then - Log "iOS $OSVer IPSW cannot be found. Downloading IPSW..." + Log "iOS $OSVer IPSW cannot be found." + echo "* If you already downloaded the IPSW, did you put it in the same directory as the script?" + echo "* Do NOT rename the IPSW as the script will fail to detect it" + Log "Downloading IPSW... (Press Ctrl+C to cancel)" curl -L $(cat $Firmware/$BuildVer/url) -o tmp/$IPSW.ipsw mv tmp/$IPSW.ipsw . fi @@ -461,7 +464,7 @@ function InstallDependencies { brew install make automake autoconf libtool pkg-config gcc else - Error "Distro not detected/supported by the install script." "See the repo README for OS versions/distros tested on" + Error "Distro not detected/supported by the install script." "See the repo README for supported OS versions/distros" fi Compile libimobiledevice libirecovery