diff --git a/README.md b/README.md
index 2fb3bd6..2123d69 100755
--- a/README.md
+++ b/README.md
@@ -1,33 +1,54 @@
# iOS-OTA-Downgrader
### (formerly 32bit-OTA-Downgrader)
### Downgrade/restore and jailbreak iOS devices to signed OTA firmwares
-- This downgrade script/tool supports **both Linux and macOS**
-- iOS 8.4.1 and 6.1.3 downgrades have the option to jailbreak
- - For iOS 10.3.3, use [TotallyNotSpyware](https://totally-not.spyware.lol)
+- **Linux and macOS** are supported by this downgrade script/tool
+ - Windows users can create a Linux live USB (see Requirements)
+- iOS 8.4.1 and 6.1.3 downgrades have the option to **jailbreak** the install
+ - For iOS 10.3.3, use [TotallyNotSpyware](https://totally-not.spyware.lol) to jailbreak
- **You do NOT need blobs to use this**, the script will get them for you
-- This script can also restore your device to other iOS versions that you have SHSH blobs on (for 32-bit devices only)
-- **Please see the "Other notes" section below to serve as answers/solutions for frequent questions and issues**
+- This script can also restore your device to other iOS versions that you have SHSH blobs for (32-bit devices only, listed under Supported devices)
+- **Please read the "Other notes" section for frequent questions and troubleshooting**
## Supported devices:
- You can identify your device [here](https://ipsw.me/device-finder)
-- **iOS 10.3.3** - A7 devices:
- - iPhone 5S
- - iPad Air 1
- - iPad mini 2 **except iPad4,6**
- - **iPad mini 3 is NOT supported**
-- **iOS 8.4.1** - 32-bit devices:
- - iPhone 4S, iPhone 5
- - iPad 2, iPad 3, iPad 4, iPad mini 1
- - iPod 5th gen
- - **iPhone 5C is NOT supported**
-- **iOS 6.1.3**:
- - iPhone 4S
- - iPad 2 **except iPad2,4**
+- **iPhone 5C and iPad mini 3 devices are NOT supported (OTA versions are not signed)**
+- iPhone 5C can still be restored to versions that you have SHSH blobs for
+
+
+
+
+ Target Version |
+ Supported Devices |
+
+
+
+
+ iOS 10.3.3 |
+ A7 devices: |
+
+ iPhone 5S |
+ iPad Air 1 |
+ iPad mini 2 (except iPad4,6) |
+
+ iOS 8.4.1 |
+ 32-bit devices: |
+
+ iPhone 4S |
+ iPhone 5 |
+ iPad 2, iPad 3, iPad 4 |
+ iPod 5th gen |
+
+ iOS 6.1.3 |
+ iPhone 4S |
+
+ iPad 2 (except iPad2,4) |
+
+
## Requirements:
-- **A supported device in any iOS version:**
- - A 32-bit iOS device (**jailbreak needed**)
+- **A supported device in any iOS version (listed above):**
+ - A 32-bit device (**jailbreak needed**)
- An A7 device (jailbreak not needed)
- An IPSW for the version you want to downgrade to
- Links: [iOS 10.3.3](https://ipsw.me/10.3.3), [iOS 8.4.1](https://ipsw.me/8.4.1), [iOS 6.1.3](https://ipsw.me/6.1.3)
@@ -35,8 +56,8 @@
- A **64-bit Linux install/live USB** or a supported **macOS** version
- See supported OS versions and Linux distros below
- A Linux 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/)
- - Users in iOS 10 must install Dropbear ([Cydia repo](https://lukezgd.github.io/repo/)) as well
+- Users with 32-bit devices must install [OpenSSH](https://cydia.saurik.com/package/openssh/)
+ - Users in iOS 10 (A6/A6X) must also install Dropbear ([Cydia repo](https://lukezgd.github.io/repo/))
For Pangu 32-bit users:
@@ -53,21 +74,24 @@
6. Follow instructions
## Supported OS versions/distros:
-- Ubuntu [16.04](http://releases.ubuntu.com/xenial/), [18.04](http://releases.ubuntu.com/bionic/), [20.04](http://releases.ubuntu.com/focal/), and [20.10](https://releases.ubuntu.com/groovy/) and Ubuntu-based distros like [Linux Mint](https://www.linuxmint.com/)
+- Ubuntu [20.04](http://releases.ubuntu.com/focal/) and [20.10](https://releases.ubuntu.com/groovy/); and Ubuntu-based distros like [Linux Mint](https://www.linuxmint.com/)
+- Ubuntu [16.04](http://releases.ubuntu.com/xenial/) and [18.04](http://releases.ubuntu.com/bionic/)
+ - Use 20.04 and newer as older versions are untested
- [Arch Linux](https://www.archlinux.org/) and Arch-based distros like [Manjaro](https://manjaro.org/)
-- openSUSE [Tumbleweed](https://software.opensuse.org/distributions/tumbleweed), [Leap 15.2](https://software.opensuse.org/distributions/leap)
- [Fedora 32 to 33](https://getfedora.org/)
-- macOS 10.13 to 10.15
+- openSUSE [Tumbleweed](https://software.opensuse.org/distributions/tumbleweed), [Leap 15.2](https://software.opensuse.org/distributions/leap)
+- macOS 10.13 to 10.15 (11.x support is unknown)
## Other notes:
-- If something in the process does not work for you, try switching USB ports and/or cables (using a USB 2.0 port is recommended)
-- This script will verify the IPSW SHA1sum before restoring
+- If something in the process does not work for you, try switching USB ports and/or cables (also try using a USB 2.0 port)
+- This script will verify the IPSW SHA1 before restoring
- For users having issues related to missing libraries or tools, re-install dependencies with `./restore.sh Install`
+ - Alternatively, delete the `libimobiledevice` or `libirecovery` folder in `resources` then run the script again
- 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 (for Linux users I recommend trying in a live USB)
+ - checkm8 ipwndfu is unfortunately pretty unreliable, you may have to try multiple times (for Linux users, also try in a live USB)
- If the script can't find your device in pwnREC mode or gets stuck, you may have to start over
- - Other than the above there's not much else I can help regarding entering pwnDFU mode...
+ - Other than the above, unfortunately there's not much else I can do to help regarding entering pwnDFU mode.
- For 32-bit devices:
- To devices with baseband, this script will restore your device with the latest baseband (except when jailbreak is enabled, and on iPhone5,1 as there are reported issues)
- This script has a workaround for the activation error on devices downgrading from iOS 10
@@ -75,10 +99,11 @@
- As alternatives to kloader/kDFU, checkm8 A5 or ipwndfu can also be used in DFU advanced menu
- To enter DFU advanced menu, put your iOS device in DFU mode before running the script
- This script can work on virtual machines, but I won't provide support for them
-- If you have problems with Cydia, remove the ultrasn0w repo and force-close Cydia, then try opening Cydia again
-- For jailbreak option on iOS 8 downgrades:
- - Stashing is already enabled and `nosuid` is removed from `fstab`, so no need to install "Stashing for #etasonJB" package
+- For jailbreak option:
+ - If you have problems with Cydia, remove the ultrasn0w repo and close Cydia using the app switcher, then try opening Cydia again
- If you can't find Cydia in your home screen, try accessing Cydia through Safari with `cydia://` and install "Jailbreak App Icons Fix" package ([Cydia repo](https://lukezgd.github.io/repo/))
+- For jailbreak option (on iOS 8.4.1 downgrades only):
+ - Stashing is already enabled and `nosuid` is removed from `fstab`, so no need to install "Stashing for #etasonJB" package
- To fix LaunchDaemons not loading on startup, install "Infigo" package ([Cydia repo](https://lukezgd.github.io/repo/))
- Warning: If your device bootloops with EtasonJB, it may not work with the jailbreak option as well! (I think this applies to some but not all [8942](https://www.theiphonewiki.com/wiki/S5L8942)/[8945](https://www.theiphonewiki.com/wiki/S5L8945) users) If this happens, bootloop protection will trigger and you won't be able to open Cydia
diff --git a/restore.sh b/restore.sh
index 191d74b..a871636 100755
--- a/restore.sh
+++ b/restore.sh
@@ -190,19 +190,23 @@ function SelectVersion {
elif [[ $Mode == 'kDFU' ]]; then
Action
fi
- Selection=("iOS 8.4.1")
+ if [ $ProductType == iPhone5,3 ] || [ $ProductType == iPhone5,4 ]; then
+ Selection=()
+ else
+ Selection=("iOS 8.4.1")
+ fi
if [ $ProductType == iPad2,1 ] || [ $ProductType == iPad2,2 ] ||
[ $ProductType == iPad2,3 ] || [ $ProductType == iPhone4,1 ]; then
Selection+=("iOS 6.1.3")
fi
- [[ $Mode == 'Downgrade' ]] && Selection+=("Other")
+ [[ $Mode == 'Downgrade' ]] && Selection+=("Other (use SHSH blobs)")
Selection+=("(Any other key to exit)")
Input "Select iOS version:"
select opt in "${Selection[@]}"; do
case $opt in
"iOS 8.4.1" ) OSVer='8.4.1'; BuildVer='12H321'; break;;
"iOS 6.1.3" ) OSVer='6.1.3'; BuildVer='10B329'; break;;
- "Other" ) OSVer='Other'; break;;
+ "Other (use SHSH blobs)" ) OSVer='Other'; break;;
*) exit;;
esac
done