Add option to jailbreak iOS 8 downgrades

This commit is contained in:
LukeeGD 2020-09-16 14:50:12 +08:00
parent 93dfdc6974
commit 0709e04a4f
23 changed files with 39 additions and 576 deletions

2
.gitignore vendored
View File

@ -7,10 +7,10 @@
*.shsh2
*.so*
*.txt
Cydia*
iP*
saved/
resources/firmware/
resources/ipwndfu/
resources/jailbreak/
resources/libirecovery/
tmp/

View File

@ -1,7 +1,10 @@
# iOS-OTA-Downgrader
### (formerly 32bit-OTA-Downgrader)
### Downgrade/restore iOS devices to signed OTA firmwares
### Downgrade/restore and jailbreak iOS devices to signed OTA firmwares
- This is currently the only downgrade script/tool that 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)
- **You do NOT need blobs to use this**, the script will get them for you
- **Please see the "Other notes" section below to serve as answers/solutions for frequent questions and issues**
## Supported devices:
@ -17,7 +20,7 @@
- iPad 2, iPad 3, iPad mini 1
- iPod 5th gen
- **iPhone 5C is NOT Supported**
- **iOS 6.1.3** (can be jailbroken):
- **iOS 6.1.3**:
- iPhone 4S
- iPad 2 **except iPad2,4**
@ -57,7 +60,6 @@
- macOS 10.13 to 10.15
## Other notes:
- **You do NOT need blobs to use this**, the script will get them for you
- 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 users having issues related to missing libraries or tools, re-install dependencies with `./restore.sh Install`
@ -67,7 +69,7 @@
- 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...
- For 32-bit devices:
- To devices with baseband, this script will restore your device with the latest baseband (except iOS 6 jailbreak)
- To devices with baseband, this script will restore your device with the latest baseband (except when jailbreak is enabled)
- This script has a workaround for the activation error on devices downgrading from iOS 10
- This script can also be used to just enter kDFU mode for all supported devices
- This script can also restore your device to other iOS versions with provided SHSH blobs
@ -84,7 +86,7 @@
- [libimobiledevice](https://github.com/libimobiledevice/libimobiledevice)
- [imobiledevice-net](https://github.com/libimobiledevice-win32/imobiledevice-net) (macOS)
- [idevicerestore](https://github.com/LukeZGD/idevicerestore)
- ipsw tool from OdysseusOTA
- ipsw tool from OdysseusOTA/2
- python2
- [tsschecker](https://github.com/tihmstar/tsschecker)
- [futurerestore 152](http://api.tihmstar.net/builds/futurerestore/futurerestore-latest.zip) (32-bit)

View File

@ -1,138 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>RootFilesystem</key>
<string>048-2634-005.dmg</string>
<key>RootFilesystemSize</key>
<integer>1063</integer>
<key>Filename</key>
<string>iPad2,1_6.1.3_10B329_Restore.ipsw</string>
<key>RamdiskMountVolume</key>
<string>ramdisk</string>
<key>Name</key>
<string>iPhone2,1_6.1.3_10B329</string>
<key>SubPlatform</key>
<integer>6</integer>
<key>Platform</key>
<integer>1</integer>
<key>RamdiskOptionsPath</key>
<string>/usr/local/share/restore/options.k93.plist</string>
<key>SHA1</key>
<string>241a02bb446c21e44e8470b77e09b5fbfba7d6c4</string>
<key>BuildIdentitiesPatches</key>
<dict>
<key>UniqueBuildID</key>
<data>tmhlqSVs3hfYDCFEF1CNxG9edO8=</data>
<key>Manifest</key>
<dict>
<key>RestoreRamDisk</key>
<dict>
<key>Digest</key>
<data>soTe26MUEWqoKnxbAlm9uDrYEA4=</data>
<key>PartialDigest</key>
<data>QAAAAHhwMwEwggsDt8v7VOdjNK99c7EacJVHFA==</data>
</dict>
</dict>
</dict>
<key>RamdiskPatches</key>
<dict>
<key>asr</key>
<dict>
<key>File</key>
<string>usr/sbin/asr</string>
<key>Patch</key>
<string>asr.patch</string>
</dict>
</dict>
<key>DownloadUrl</key>
<string></string>
<key>FilesystemPatches</key>
<dict/>
<key>RootFilesystemMountVolume</key>
<string>BrightonMaps10B329.K93OS</string>
<key>FirmwarePatches</key>
<dict>
<key>iBSS</key>
<dict>
<key>File</key>
<string>Firmware/dfu/iBSS.k93ap.RELEASE.dfu</string>
<key>Key</key>
<string>6e4cce9ea6f2ec346cba0b279beab1b43e44a0680f1fde789a00f66a1e68ffab</string>
<key>Decrypt</key>
<true/>
<key>Patch</key>
<string>iBSS.k93ap.RELEASE.patch</string>
<key>IV</key>
<string>b69f753dccd09c9b98d345ec73bbf044</string>
<key>TypeFlag</key>
<integer>8</integer>
</dict>
<key>iBEC</key>
<dict>
<key>File</key>
<string>Firmware/dfu/iBEC.k93ap.RELEASE.dfu</string>
<key>Key</key>
<string>69eaeb223db61b557c36d65fa7e6e4ec1c0d7547dfce9d46077f7e5b0fcba98f</string>
<key>Decrypt</key>
<true/>
<key>Patch</key>
<string>iBEC.k93ap.RELEASE.patch</string>
<key>IV</key>
<string>3a0726b7bc091915dd928eed21478728</string>
<key>TypeFlag</key>
<integer>8</integer>
</dict>
<key>RestoreDeviceTree</key>
<dict>
<key>File</key>
<string>Firmware/all_flash/all_flash.k93ap.production/DeviceTree.k93ap.img3</string>
<key>Key</key>
<string>7c9c0c49075fd6c47e1598f23901266237e30e60dcfc7174b8c2ea6f42532bfb</string>
<key>DecryptPath</key>
<string>Downgrade/DeviceTree.k93ap.img3</string>
<key>IV</key>
<string>557d2b8116b04cf93bf7bff023ed6bf2</string>
</dict>
<key>RestoreLogo</key>
<dict>
<key>File</key>
<string>Firmware/all_flash/all_flash.k93ap.production/applelogo.s5l8940x.img3</string>
<key>Key</key>
<string>0e7aa7bbcfddc88dfe0e56e021363028502621c52c709afc3744850977e2fb9f</string>
<key>DecryptPath</key>
<string>Downgrade/applelogo@2x.s5l8940x.img3</string>
<key>IV</key>
<string>623b2592ad563ea16bd8a86af6960bcb</string>
</dict>
<key>Restore Ramdisk</key>
<dict>
<key>File</key>
<string>048-2516-005.dmg</string>
<key>Key</key>
<string>d406dc4343eedf9d6567e8303ba39a21f81f99bf701840c888963af58a84fb8f</string>
<key>Decrypt</key>
<true/>
<key>TypeFlag</key>
<integer>8</integer>
<key>IV</key>
<string>8775b711d2e09e332f8ebfbebe63cce7</string>
</dict>
<key>RestoreKernelCache</key>
<dict>
<key>File</key>
<string>kernelcache.release.k93</string>
<key>Key</key>
<string>2bbdf3fea41600cd7ae46157af7f19b1726900802f2ec2022aa60b9a27a3261f</string>
<key>DecryptPath</key>
<string>Downgrade/kernelcache.release.k93</string>
<key>TypeFlag</key>
<integer>4</integer>
<key>IV</key>
<string>247ea923c137404f4faec7da75822b08</string>
</dict>
</dict>
<key>RootFilesystemKey</key>
<string>70f5ac054bf50a522fd39071f6acbd92954804599c1507b881d7d9c4026005e3867bfab0</string>
</dict>
</plist>

View File

@ -1,138 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>RootFilesystem</key>
<string>048-2475-005.dmg</string>
<key>RootFilesystemSize</key>
<integer>1088</integer>
<key>Filename</key>
<string>iPad2,2_6.1.3_10B329_Restore.ipsw</string>
<key>RamdiskMountVolume</key>
<string>ramdisk</string>
<key>Name</key>
<string>iPhone2,2_6.1.3_10B329</string>
<key>SubPlatform</key>
<integer>6</integer>
<key>Platform</key>
<integer>1</integer>
<key>RamdiskOptionsPath</key>
<string>/usr/local/share/restore/options.k94.plist</string>
<key>SHA1</key>
<string>1b7897aea7b23d2e00e3d3c5c0ad2a0c47b345cd</string>
<key>BuildIdentitiesPatches</key>
<dict>
<key>UniqueBuildID</key>
<data>8iAuVn4UX8D2WcdqFQyoa+kz0FQ=</data>
<key>Manifest</key>
<dict>
<key>RestoreRamDisk</key>
<dict>
<key>Digest</key>
<data>soTe26MUEWqoKnxbAlm9uDrYEA4=</data>
<key>PartialDigest</key>
<data>QAAAAHhwMwEwggsDt8v7VOdjNK99c7EacJVHFA==</data>
</dict>
</dict>
</dict>
<key>RamdiskPatches</key>
<dict>
<key>asr</key>
<dict>
<key>File</key>
<string>usr/sbin/asr</string>
<key>Patch</key>
<string>asr.patch</string>
</dict>
</dict>
<key>DownloadUrl</key>
<string></string>
<key>FilesystemPatches</key>
<dict/>
<key>RootFilesystemMountVolume</key>
<string>BrightonMaps10B329.K94OS</string>
<key>FirmwarePatches</key>
<dict>
<key>iBSS</key>
<dict>
<key>File</key>
<string>Firmware/dfu/iBSS.k94ap.RELEASE.dfu</string>
<key>Key</key>
<string>b1bd1dc5e6076054392be054d50711ae70e8fcf31a47899fb90ab0ff3111b687</string>
<key>Decrypt</key>
<true/>
<key>Patch</key>
<string>iBSS.k94ap.RELEASE.patch</string>
<key>IV</key>
<string>bc3c9f168d7fb86aa219b7ad8039584b</string>
<key>TypeFlag</key>
<integer>8</integer>
</dict>
<key>iBEC</key>
<dict>
<key>File</key>
<string>Firmware/dfu/iBEC.k94ap.RELEASE.dfu</string>
<key>Key</key>
<string>f4b314ce6b84de8c2bcfc9e6821a657b964767253e214f44af33b141703f6606</string>
<key>Decrypt</key>
<true/>
<key>Patch</key>
<string>iBEC.k94ap.RELEASE.patch</string>
<key>IV</key>
<string>2a160d86a7cb6c976009725a9d8c009c</string>
<key>TypeFlag</key>
<integer>8</integer>
</dict>
<key>RestoreDeviceTree</key>
<dict>
<key>File</key>
<string>Firmware/all_flash/all_flash.k94ap.production/DeviceTree.k94ap.img3</string>
<key>Key</key>
<string>dbb0ade4c92ec6e561dd51f513ea0332b490f89f4a168f11efc1e9967c02847d</string>
<key>DecryptPath</key>
<string>Downgrade/DeviceTree.k94ap.img3</string>
<key>IV</key>
<string>43fdbf9046da468ecc944bb4bee19879</string>
</dict>
<key>RestoreLogo</key>
<dict>
<key>File</key>
<string>Firmware/all_flash/all_flash.k94ap.production/applelogo.s5l8940x.img3</string>
<key>Key</key>
<string>0e7aa7bbcfddc88dfe0e56e021363028502621c52c709afc3744850977e2fb9f</string>
<key>DecryptPath</key>
<string>Downgrade/applelogo@2x.s5l8940x.img3</string>
<key>IV</key>
<string>623b2592ad563ea16bd8a86af6960bcb</string>
</dict>
<key>Restore Ramdisk</key>
<dict>
<key>File</key>
<string>048-2516-005.dmg</string>
<key>Key</key>
<string>66affb95fd5f5e9b976cee5822c563dd111069746f13200c5641c500600f1426</string>
<key>Decrypt</key>
<true/>
<key>TypeFlag</key>
<integer>8</integer>
<key>IV</key>
<string>b59813148a1246ef4f4e3a5aa70ac471</string>
</dict>
<key>RestoreKernelCache</key>
<dict>
<key>File</key>
<string>kernelcache.release.k94</string>
<key>Key</key>
<string>c835455a98365c5c0dda77348109a0e88faea4e4d879a0f07a4bece7b4cc64ac</string>
<key>DecryptPath</key>
<string>Downgrade/kernelcache.release.k94</string>
<key>TypeFlag</key>
<integer>4</integer>
<key>IV</key>
<string>c3e3ba1bb5627935d508c9fdf2490eba</string>
</dict>
</dict>
<key>RootFilesystemKey</key>
<string>19703b03962ad004afeab0f80fcff0dd2e3ddca02c9f0e08bcd635884e941797c0b9dece</string>
</dict>
</plist>

View File

@ -1,138 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>RootFilesystem</key>
<string>048-2653-005.dmg</string>
<key>RootFilesystemSize</key>
<integer>1071</integer>
<key>Filename</key>
<string>iPad2,3_6.1.3_10B329_Restore.ipsw</string>
<key>RamdiskMountVolume</key>
<string>ramdisk</string>
<key>Name</key>
<string>iPhone2,3_6.1.3_10B329</string>
<key>SubPlatform</key>
<integer>6</integer>
<key>Platform</key>
<integer>1</integer>
<key>RamdiskOptionsPath</key>
<string>/usr/local/share/restore/options.k95.plist</string>
<key>SHA1</key>
<string>b02a4f3f5b6b948bdcd036caee71449201e72f63</string>
<key>BuildIdentitiesPatches</key>
<dict>
<key>UniqueBuildID</key>
<data>k8/0Wy73uXDFAc84NnXIXIXUnHI=</data>
<key>Manifest</key>
<dict>
<key>RestoreRamDisk</key>
<dict>
<key>Digest</key>
<data>soTe26MUEWqoKnxbAlm9uDrYEA4=</data>
<key>PartialDigest</key>
<data>QAAAAHhwMwEwggsDt8v7VOdjNK99c7EacJVHFA==</data>
</dict>
</dict>
</dict>
<key>RamdiskPatches</key>
<dict>
<key>asr</key>
<dict>
<key>File</key>
<string>usr/sbin/asr</string>
<key>Patch</key>
<string>asr.patch</string>
</dict>
</dict>
<key>DownloadUrl</key>
<string></string>
<key>FilesystemPatches</key>
<dict/>
<key>RootFilesystemMountVolume</key>
<string>BrightonMaps10B329.K95OS</string>
<key>FirmwarePatches</key>
<dict>
<key>iBSS</key>
<dict>
<key>File</key>
<string>Firmware/dfu/iBSS.k95ap.RELEASE.dfu</string>
<key>Key</key>
<string>0bb841b8f1922ae73d85ed9ed0d7a3583a10af909787857c15af2691b39bba30</string>
<key>Decrypt</key>
<true/>
<key>Patch</key>
<string>iBSS.k95ap.RELEASE.patch</string>
<key>IV</key>
<string>56f964ee19bfd31f06e43e9d8fe93902</string>
<key>TypeFlag</key>
<integer>8</integer>
</dict>
<key>iBEC</key>
<dict>
<key>File</key>
<string>Firmware/dfu/iBEC.k95ap.RELEASE.dfu</string>
<key>Key</key>
<string>12805eb0cabe89539cfecbf886b0638a6fe941976ef9afe8bf3dc838139357ba</string>
<key>Decrypt</key>
<true/>
<key>Patch</key>
<string>iBEC.k95ap.RELEASE.patch</string>
<key>IV</key>
<string>5aeb8eb73be0c634f9fa2a4eae791438</string>
<key>TypeFlag</key>
<integer>8</integer>
</dict>
<key>RestoreDeviceTree</key>
<dict>
<key>File</key>
<string>Firmware/all_flash/all_flash.k95ap.production/DeviceTree.k95ap.img3</string>
<key>Key</key>
<string>8debb89e1457cc695e10891312bdbfbb4d5f40f7eaa6913dfe7dc61be6d9e5c7</string>
<key>DecryptPath</key>
<string>Downgrade/DeviceTree.k95ap.img3</string>
<key>IV</key>
<string>e28736e5e1a7c3fd31021398ed65af62</string>
</dict>
<key>RestoreLogo</key>
<dict>
<key>File</key>
<string>Firmware/all_flash/all_flash.k95ap.production/applelogo.s5l8940x.img3</string>
<key>Key</key>
<string>0e7aa7bbcfddc88dfe0e56e021363028502621c52c709afc3744850977e2fb9f</string>
<key>DecryptPath</key>
<string>Downgrade/applelogo@2x.s5l8940x.img3</string>
<key>IV</key>
<string>623b2592ad563ea16bd8a86af6960bcb</string>
</dict>
<key>Restore Ramdisk</key>
<dict>
<key>File</key>
<string>048-2516-005.dmg</string>
<key>Key</key>
<string>fd1188246393949c4ae81c302221019a2699dba6185cb1460e39ee80f1c7424a</string>
<key>Decrypt</key>
<true/>
<key>TypeFlag</key>
<integer>8</integer>
<key>IV</key>
<string>4edaee1b65d86a5f9a16c3ef09b262bf</string>
</dict>
<key>RestoreKernelCache</key>
<dict>
<key>File</key>
<string>kernelcache.release.k95</string>
<key>Key</key>
<string>0e2f5fa117fa62535dc18ee0526137d6e73b4fc69edec9d99f1528f2a632fc83</string>
<key>DecryptPath</key>
<string>Downgrade/kernelcache.release.k95</string>
<key>TypeFlag</key>
<integer>4</integer>
<key>IV</key>
<string>0cc133db4539b82dee5849d6abbcc467</string>
</dict>
</dict>
<key>RootFilesystemKey</key>
<string>b51815b65f7e572ad0cc1238bf799edb558b602b0ee390a76cd874d714b7daf10205b195</string>
</dict>
</plist>

View File

@ -1,140 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>RootFilesystem</key>
<string>048-2613-005.dmg</string>
<key>RootFilesystemSize</key>
<integer>1220</integer>
<key>Filename</key>
<string>iPhone4,1_6.1.3_10B329_Restore.ipsw</string>
<key>RamdiskMountVolume</key>
<string>ramdisk</string>
<key>Name</key>
<string>iPhone4,1_6.1.3_10B329</string>
<key>SubPlatform</key>
<integer>6</integer>
<key>Platform</key>
<integer>1</integer>
<key>RamdiskOptionsPath</key>
<string>/usr/local/share/restore/options.n94.plist</string>
<key>SHA1</key>
<string>7a62ee60b574301a6aafc48dcc9cccf0894ffb27</string>
<key>BuildIdentitiesPatches</key>
<dict>
<key>UniqueBuildID</key>
<data>3Usl6yRx4qezMq1vuVZf69RDnU8=</data>
<key>Manifest</key>
<dict>
<key>RestoreRamDisk</key>
<dict>
<key>Digest</key>
<data>soTe26MUEWqoKnxbAlm9uDrYEA4=</data>
<key>PartialDigest</key>
<data>QAAAAHhwMwEwggsDt8v7VOdjNK99c7EacJVHFA==</data>
</dict>
</dict>
</dict>
<key>RamdiskPatches</key>
<dict>
<key>asr</key>
<dict>
<key>File</key>
<string>usr/sbin/asr</string>
<key>Patch</key>
<string>asr.patch</string>
</dict>
</dict>
<key>DownloadUrl</key>
<string></string>
<key>FilesystemPatches</key>
<dict/>
<key>RootFilesystemMountVolume</key>
<string>BrightonMaps10B329.N94OS</string>
<key>UniqueBuildID</key>
<data>3Usl6yRx4qezMq1vuVZf69RDnU8=</data>
<key>FirmwarePatches</key>
<dict>
<key>iBSS</key>
<dict>
<key>File</key>
<string>Firmware/dfu/iBSS.n94ap.RELEASE.dfu</string>
<key>Key</key>
<string>35343d5139e0313c81ee59dbae292da26e739ed75b3da5db9da7d4d26046498c</string>
<key>Decrypt</key>
<true/>
<key>Patch</key>
<string>iBSS.n94ap.RELEASE.patch</string>
<key>IV</key>
<string>d3fe01e99bd0967e80dccfc0739f93d5</string>
<key>TypeFlag</key>
<integer>8</integer>
</dict>
<key>iBEC</key>
<dict>
<key>File</key>
<string>Firmware/dfu/iBEC.n94ap.RELEASE.dfu</string>
<key>Key</key>
<string>aba0d7f3e2d40d2a0039a36086c469e25e1eafb2fee2f50e36a3e5f7cd4d89c9</string>
<key>Decrypt</key>
<true/>
<key>Patch</key>
<string>iBEC.n94ap.RELEASE.patch</string>
<key>IV</key>
<string>1f12075441b7f193c5967c51ede025bf</string>
<key>TypeFlag</key>
<integer>8</integer>
</dict>
<key>RestoreDeviceTree</key>
<dict>
<key>File</key>
<string>Firmware/all_flash/all_flash.n94ap.production/DeviceTree.n94ap.img3</string>
<key>Key</key>
<string>bd500bdc2a66aba636311037b9bd2b6ab3bd7374542352225d5be0c23998dd84</string>
<key>DecryptPath</key>
<string>Downgrade/DeviceTree.n94ap.img3</string>
<key>IV</key>
<string>fabb698a3b2e845d7ad6849fbc067870</string>
</dict>
<key>RestoreLogo</key>
<dict>
<key>File</key>
<string>Firmware/all_flash/all_flash.n94ap.production/applelogo@2x.s5l8940x.img3</string>
<key>Key</key>
<string>e7e9b79f5e6e81ff6d6bf81bf272af56e6ab0f1c691088eff2aca5b1ee31455e</string>
<key>DecryptPath</key>
<string>Downgrade/applelogo@2x.s5l8940x.img3</string>
<key>IV</key>
<string>09678f1312084547b5bedce677e6a828</string>
</dict>
<key>Restore Ramdisk</key>
<dict>
<key>File</key>
<string>048-2516-005.dmg</string>
<key>Key</key>
<string>1d8da07783a6f53efbb47657c352b305f0856697c6c824a9132ea0effe1a92a9</string>
<key>Decrypt</key>
<true/>
<key>TypeFlag</key>
<integer>8</integer>
<key>IV</key>
<string>d30fa37b6ed56715121337a5fc039801</string>
</dict>
<key>RestoreKernelCache</key>
<dict>
<key>File</key>
<string>kernelcache.release.n94</string>
<key>Key</key>
<string>a374109c958957200f879f7b6ef34437fbde1a9f178b7c2412755cf9a3ed2d72</string>
<key>DecryptPath</key>
<string>Downgrade/kernelcache.release.n94</string>
<key>TypeFlag</key>
<integer>4</integer>
<key>IV</key>
<string>8a2c03ef8a0e45947780cdde01be40fb</string>
</dict>
</dict>
<key>RootFilesystemKey</key>
<string>d4685a3c01a0b6f762350191d98b8964d4c7af349aa84bacef828be9683514ccf44a8426</string>
</dict>
</plist>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -174,7 +174,7 @@ function SelectVersion {
fi
if [ $ProductType == iPad2,1 ] || [ $ProductType == iPad2,2 ] ||
[ $ProductType == iPad2,3 ] || [ $ProductType == iPhone4,1 ]; then
Selection+=("iOS 6.1.3 (Jailbreak)" "iOS 6.1.3")
Selection+=("iOS 6.1.3")
fi
[[ $Mode == 'Downgrade' ]] && Selection+=("Other")
Selection+=("(Any other key to exit)")
@ -182,12 +182,13 @@ function SelectVersion {
select opt in "${Selection[@]}"; do
case $opt in
"iOS 8.4.1" ) OSVer='8.4.1'; BuildVer='12H321'; break;;
"iOS 6.1.3 (Jailbreak)" ) OSVer='6.1.3'; BuildVer='10B329'; A5Jailbreak=1; break;;
"iOS 6.1.3" ) OSVer='6.1.3'; BuildVer='10B329'; break;;
"Other" ) OSVer='Other'; break;;
*) exit;;
esac
done
[[ -z $A7Device ]] && read -p "$(Input 'Jailbreak the selected iOS version? (y/N): ')" Jailbreak
[[ $Jailbreak == y ]] || [[ $Jailbreak == Y ]] && Jailbreak=1
Action
}
@ -388,18 +389,26 @@ function Downgrade {
[ ! $DFUManual ] && kDFU
if [[ $A5Jailbreak == 1 ]]; then
JBFiles=(Cydia6.tar fstab_rw.tar p0sixspwn.tar)
JBSHA1=(1d5a351016d2546aa9558bc86ce39186054dc281
887f82cb601116ee78ad752eca7007128b6b38d3
6b003d3baddbafed2b468ba11328374d2dab276b)
JBLink=https://github.com/LukeZGD/iOS-OTA-Downgrader-Keys/releases/download/jailbreak
if [[ ! $(ls resources/jailbreak) ]]; then
# uses ipsw tool from OdysseusOTA/2 to create custom IPSW with jailbreak
if [[ $Jailbreak == 1 ]]; then
if [[ $OSVer == 8.4.1 ]]; then
JBFiles=(fstab.tar etasonJB-untether.tar Cydia8.tar)
JBSHA1=(5e5871aadeb0b958d577f43f6a04e1a2d04bf530
b1cb2cb3c40fabeeee3a293d8f0e4e1f8f5de79a
6459dbcbfe871056e6244d23b33c9b99aaeca970)
JBS=2265
else
JBFiles=(fstab_rw.tar p0sixspwn.tar Cydia6.tar)
JBSHA1=(887f82cb601116ee78ad752eca7007128b6b38d3
6b003d3baddbafed2b468ba11328374d2dab276b
1d5a351016d2546aa9558bc86ce39186054dc281)
JBS=1260
fi
if [[ ! $(ls resources/jailbreak) ]] || [[ ! -e resources/jailbreak/${JBFiles[2]} ]]; then
mkdir tmp
cd tmp
Log "Downloading jailbreak files..."
for i in {0..2}; do
SaveFile $JBLink/${JBFiles[$i]} ${JBFiles[$i]} ${JBSHA1[$i]}
done
SaveFile https://github.com/LukeZGD/iOS-OTA-Downgrader-Keys/releases/download/jailbreak/${JBFiles[2]} ${JBFiles[2]} ${JBSHA1[2]}
mkdir ../resources/jailbreak
cp ${JBFiles[@]} ../resources/jailbreak
cd ..
@ -408,11 +417,17 @@ function Downgrade {
JBFiles[$i]=jailbreak/${JBFiles[$i]}
done
if [ ! -e $IPSWCustom.ipsw ]; then
Echo "* By default, memory option is set to Y, you may select N later if you encounter problems"
Echo "* If it doesn't work with both, you might not have enough RAM or tmp storage"
read -p "$(Input 'Memory option? (press ENTER if unsure) (Y/n): ')" JBMemory
[[ $JBMemory != n ]] && [[ $JBMemory != N ]] && JBMemory="-memory" || JBMemory=
Log "Preparing custom IPSW..."
cd resources
$ipsw ../$IPSW.ipsw ../$IPSWCustom.ipsw -memory -bbupdate -s 1260 ${JBFiles[@]}
ln -sf firmware/FirmwareBundles FirmwareBundles
$ipsw ../$IPSW.ipsw ../$IPSWCustom.ipsw $JBMemory -bbupdate -s $JBS ${JBFiles[@]}
cd ..
fi
[ ! -e $IPSWCustom.ipsw ] && Error "Failed to find custom IPSW. Please run the script again" "You may try selecting N for memory option"
IPSW=$IPSWCustom
fi
@ -462,14 +477,14 @@ function Downgrade {
SaveOTABlobs
fi
if [[ -z $A5Jailbreak ]] && [[ -z $A7Device ]]; then
if [[ -z $Jailbreak ]] && [[ -z $A7Device ]]; then
Log "Preparing for futurerestore... (Enter root password of your PC/Mac when prompted)"
cd resources
sudo bash -c "$python -m SimpleHTTPServer 80 &"
cd ..
fi
if [[ $A5Jailbreak == 1 ]]; then
if [[ $Jailbreak == 1 ]]; then
Log "Proceeding to idevicerestore..."
mkdir shsh
mv $SHSH shsh/${UniqueChipID}-${ProductType}-${OSVer}.shsh
@ -518,7 +533,7 @@ function Downgrade {
echo
Log "Restoring done!"
if [[ -z $A5Jailbreak ]] && [[ -z $A7Device ]]; then
if [[ -z $Jailbreak ]] && [[ -z $A7Device ]]; then
Log "Stopping local server... (Enter root password of your PC/Mac when prompted)"
ps aux | awk '/python/ {print "sudo kill -9 "$2" 2>/dev/null"}' | bash
fi