From b4f7bacf927f0a7f42365fd57fccc7347eb38713 Mon Sep 17 00:00:00 2001 From: LukeZGD Date: Fri, 5 Mar 2021 11:54:19 +0800 Subject: [PATCH] Continue if saved blobs detected Allows the script to continue when saved blobs are detected even if the target version is now unsigned --- README.md | 5 ++++- restore.sh | 20 ++++++++++++++------ 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 267ce0e..afe4b79 100755 --- a/README.md +++ b/README.md @@ -98,6 +98,9 @@ - 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 want to use manually saved blobs for 6.1.3/8.4.1, create a folder named `saved`, then within it create another folder named after your ProductType (example: `iPad2,1`). You can then put your blob inside that folder. + - The naming should be: `(ECID in Decimal)_(ProductType)_(Version)-(BuildVer).shsh(2)` + - Example: `123456789012_iPad2,1_8.4.1_12H321.shsh` - 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/)) @@ -119,7 +122,7 @@ - python2 - [tsschecker](https://github.com/tihmstar/tsschecker) - [futurerestore 152](http://api.tihmstar.net/builds/futurerestore/futurerestore-latest.zip) (32-bit) -- [futurerestore 251 (Linux)](https://github.com/LukeZGD/futurerestore) (A7) +- [futurerestore 251 (Linux)](https://github.com/LukeeGD/futurerestore) (A7) - [futurerestore 245 (macOS)](https://github.com/MatthewPierson/Vieux/blob/master/resources/bin/futurerestore) (A7) - [kloader](https://www.youtube.com/watch?v=fh0tB6fp0Sc) - [kloader5 for iOS 5](https://mtmdev.org/pmbonneau-archive) diff --git a/restore.sh b/restore.sh index 1567d16..5a844f3 100755 --- a/restore.sh +++ b/restore.sh @@ -252,16 +252,24 @@ function SaveOTABlobs { APNonce=$($irecovery -q | grep 'NONC' | cut -c 7-) Echo "* APNonce: $APNonce" $tsschecker -d $ProductType -B ${HWModel}ap -i $OSVer -e $UniqueChipID -m $BuildManifest --apnonce $APNonce -o -s - SHSHChk=${UniqueChipID}_${ProductType}_${HWModel}ap_${OSVer}-${BuildVer}_${APNonce}.shsh + SHSHChk=${UniqueChipID}_${ProductType}_${HWModel}ap_${OSVer}-${BuildVer}_${APNonce}.shsh* else $tsschecker -d $ProductType -i $OSVer -e $UniqueChipID -m $BuildManifest -o -s - SHSHChk=${UniqueChipID}_${ProductType}_${OSVer}-${BuildVer}_*.shsh2 + SHSHChk=${UniqueChipID}_${ProductType}_${OSVer}-${BuildVer}*.shsh* fi SHSH=$(ls $SHSHChk) - [ ! $SHSH ] && Error "Saving $OSVer blobs failed. Please run the script again" "It is also possible that $OSVer for $ProductType is no longer signed" - mkdir -p saved/shsh 2>/dev/null - [[ ! $(ls saved/shsh/$SHSHChk 2>/dev/null) ]] && cp "$SHSH" saved/shsh - Log "Successfully saved $OSVer blobs." + SHSHExisting=$(ls saved/shsh/$SHSHChk 2>/dev/null) + if [ ! $SHSH ] && [ ! $SHSHExisting ]; then + Error "Saving $OSVer blobs failed. Please run the script again" "It is also possible that $OSVer for $ProductType is no longer signed" + elif [ ! $SHSH ]; then + Log "Saving $OSVer blobs failed, but detected saved SHSH blobs. Continuing..." + cp $SHSHExisting . + SHSH=$(ls $SHSHChk) + else + mkdir -p saved/shsh 2>/dev/null + [[ ! $SHSHExisting ]] && cp "$SHSH" saved/shsh + Log "Successfully saved $OSVer blobs." + fi } function kDFU {