mirror of
https://github.com/LukeZGD/Legacy-iOS-Kit.git
synced 2024-12-02 12:54:18 +01:00
Fix some issues (futurerestoring on macos, ipsw verify on ios 10+, and others)
This commit is contained in:
parent
ee7defadac
commit
ba24b6b86b
51
restore.sh
51
restore.sh
@ -2297,6 +2297,7 @@ ipsw_verify() {
|
|||||||
local build_id="$2"
|
local build_id="$2"
|
||||||
local cutver
|
local cutver
|
||||||
local device
|
local device
|
||||||
|
local type
|
||||||
local IPSWSHA1
|
local IPSWSHA1
|
||||||
local IPSWSHA1E=$(cat "$device_fw_dir/$build_id/sha1sum" 2>/dev/null)
|
local IPSWSHA1E=$(cat "$device_fw_dir/$build_id/sha1sum" 2>/dev/null)
|
||||||
log "Getting SHA1 hash for $ipsw_dl.ipsw..."
|
log "Getting SHA1 hash for $ipsw_dl.ipsw..."
|
||||||
@ -2321,6 +2322,14 @@ ipsw_verify() {
|
|||||||
11* ) cutver=7;;
|
11* ) cutver=7;;
|
||||||
12* ) cutver=8;;
|
12* ) cutver=8;;
|
||||||
13* ) cutver=9;;
|
13* ) cutver=9;;
|
||||||
|
esac
|
||||||
|
if [[ -n $cutver ]]; then
|
||||||
|
type="$device_type"
|
||||||
|
else
|
||||||
|
ipsw_latest_set
|
||||||
|
type="$device_type2"
|
||||||
|
fi
|
||||||
|
case $build_id in
|
||||||
14* ) cutver=10;;
|
14* ) cutver=10;;
|
||||||
15* ) cutver=11;;
|
15* ) cutver=11;;
|
||||||
16* ) cutver=12;;
|
16* ) cutver=12;;
|
||||||
@ -2343,7 +2352,7 @@ ipsw_verify() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
log "Getting SHA1 hash from The Apple Wiki..."
|
log "Getting SHA1 hash from The Apple Wiki..."
|
||||||
IPSWSHA1="$(curl "https://theapplewiki.com/index.php?title=Firmware/${device}/${cutver}.x" | grep -A10 "${device_type}.*${build_id}" | sed -ne '/<code>/,/<\/code>/p' | sed '1!d' | sed -e "s/<code>//" | sed "s/<\/code>//" | cut -c 5-)"
|
IPSWSHA1="$(curl "https://theapplewiki.com/index.php?title=Firmware/${device}/${cutver}.x" | grep -A10 "${type}.*${build_id}" | sed -ne '/<code>/,/<\/code>/p' | sed '1!d' | sed -e "s/<code>//" | sed "s/<\/code>//" | cut -c 5-)"
|
||||||
mkdir -p $device_fw_dir/$build_id 2>/dev/null
|
mkdir -p $device_fw_dir/$build_id 2>/dev/null
|
||||||
|
|
||||||
if [[ -n $IPSWSHA1 && -n $IPSWSHA1E && $IPSWSHA1 == "$IPSWSHA1E" ]]; then
|
if [[ -n $IPSWSHA1 && -n $IPSWSHA1E && $IPSWSHA1 == "$IPSWSHA1E" ]]; then
|
||||||
@ -2718,6 +2727,11 @@ ipsw_prepare_keys() {
|
|||||||
local name=$(echo $fw_key | $jq -j '.keys[] | select(.image == "'$getcomp'") | .filename')
|
local name=$(echo $fw_key | $jq -j '.keys[] | select(.image == "'$getcomp'") | .filename')
|
||||||
local iv=$(echo $fw_key | $jq -j '.keys[] | select(.image == "'$getcomp'") | .iv')
|
local iv=$(echo $fw_key | $jq -j '.keys[] | select(.image == "'$getcomp'") | .iv')
|
||||||
local key=$(echo $fw_key | $jq -j '.keys[] | select(.image == "'$getcomp'") | .key')
|
local key=$(echo $fw_key | $jq -j '.keys[] | select(.image == "'$getcomp'") | .key')
|
||||||
|
if [[ $device_target_build == "14"* && $getcomp == "iBSS" ]]; then
|
||||||
|
name="$(curl "https://www.theiphonewiki.com/wiki/${ipsw_codename}_${device_target_build}_(${device_type})" | grep "iBSS" -A1 | sed "s/^.*keypage-ibss\">//" | sed "s/^.*h2>//" | sed "s/<\/span>//" | sed "s/<\/p>//" | tr -d '\n')"
|
||||||
|
elif [[ $device_target_build == "14"* && $getcomp == "iBEC" ]]; then
|
||||||
|
name="$(curl "https://www.theiphonewiki.com/wiki/${ipsw_codename}_${device_target_build}_(${device_type})" | grep "iBEC" -A1 | sed "s/^.*keypage-ibec\">//" | sed "s/^.*h2>//" | sed "s/<\/span>//" | sed "s/<\/p>//" | tr -d '\n')"
|
||||||
|
fi
|
||||||
if [[ -z $name && $device_proc != 1 ]]; then
|
if [[ -z $name && $device_proc != 1 ]]; then
|
||||||
error "Issue with firmware keys: Failed getting $getcomp. Check The Apple Wiki or your wikiproxy"
|
error "Issue with firmware keys: Failed getting $getcomp. Check The Apple Wiki or your wikiproxy"
|
||||||
fi
|
fi
|
||||||
@ -2954,6 +2968,21 @@ ipsw_prepare_bundle() {
|
|||||||
local ramdisk_name=$(echo "$key" | $jq -j '.keys[] | select(.image == "RestoreRamdisk") | .filename')
|
local ramdisk_name=$(echo "$key" | $jq -j '.keys[] | select(.image == "RestoreRamdisk") | .filename')
|
||||||
local RamdiskIV=$(echo "$key" | $jq -j '.keys[] | select(.image == "RestoreRamdisk") | .iv')
|
local RamdiskIV=$(echo "$key" | $jq -j '.keys[] | select(.image == "RestoreRamdisk") | .iv')
|
||||||
local RamdiskKey=$(echo "$key" | $jq -j '.keys[] | select(.image == "RestoreRamdisk") | .key')
|
local RamdiskKey=$(echo "$key" | $jq -j '.keys[] | select(.image == "RestoreRamdisk") | .key')
|
||||||
|
if [[ $device_target_build == "14"* ]]; then
|
||||||
|
case $device_target_build in
|
||||||
|
14A* ) ipsw_codename="Whitetail";;
|
||||||
|
14B* ) ipsw_codename="Butler";;
|
||||||
|
14C* ) ipsw_codename="Corry";;
|
||||||
|
14D* ) ipsw_codename="Dubois";;
|
||||||
|
14E* ) ipsw_codename="Erie";;
|
||||||
|
14F* ) ipsw_codename="Franklin";;
|
||||||
|
14G* ) ipsw_codename="Greensburg";;
|
||||||
|
esac
|
||||||
|
if [[ $ipsw_isbeta == 1 ]]; then
|
||||||
|
ipsw_codename+="Seed"
|
||||||
|
fi
|
||||||
|
ramdisk_name="$(curl "https://www.theiphonewiki.com/wiki/${ipsw_codename}_${device_target_build}_(${device_type})" | grep "Restore Ramdisk" -A1 | sed "s/^.*keypage-restoreramdisk\">//" | sed "s/^.*h2>//" | sed "s/<\/span>//" | tr -d '\n')"
|
||||||
|
fi
|
||||||
if [[ -z $ramdisk_name ]]; then
|
if [[ -z $ramdisk_name ]]; then
|
||||||
error "Issue with firmware keys: Failed getting RestoreRamdisk. Check The Apple Wiki or your wikiproxy"
|
error "Issue with firmware keys: Failed getting RestoreRamdisk. Check The Apple Wiki or your wikiproxy"
|
||||||
fi
|
fi
|
||||||
@ -2982,6 +3011,9 @@ ipsw_prepare_bundle() {
|
|||||||
RootSize=$((RootSize+30))
|
RootSize=$((RootSize+30))
|
||||||
local rootfs_name="$(echo "$key" | $jq -j '.keys[] | select(.image == "RootFS") | .filename')"
|
local rootfs_name="$(echo "$key" | $jq -j '.keys[] | select(.image == "RootFS") | .filename')"
|
||||||
local rootfs_key="$(echo "$key" | $jq -j '.keys[] | select(.image == "RootFS") | .key')"
|
local rootfs_key="$(echo "$key" | $jq -j '.keys[] | select(.image == "RootFS") | .key')"
|
||||||
|
if [[ $device_target_build == "14"* ]]; then
|
||||||
|
rootfs_name="$(curl "https://www.theiphonewiki.com/wiki/${ipsw_codename}_${device_target_build}_(${device_type})" | grep "Root" -A1 | sed "s/^.*keypage-rootfs\">//" | sed "s/^.*h2>//" | sed "s/<\/span>//" | tr -d '\n')"
|
||||||
|
fi
|
||||||
if [[ -z $rootfs_name ]]; then
|
if [[ -z $rootfs_name ]]; then
|
||||||
error "Issue with firmware keys: Failed getting RootFS. Check The Apple Wiki or your wikiproxy"
|
error "Issue with firmware keys: Failed getting RootFS. Check The Apple Wiki or your wikiproxy"
|
||||||
fi
|
fi
|
||||||
@ -3073,6 +3105,11 @@ ipsw_prepare_bundle() {
|
|||||||
ipsw_prepare_keys RestoreKernelCache $1
|
ipsw_prepare_keys RestoreKernelCache $1
|
||||||
ipsw_prepare_keys RestoreRamdisk $1
|
ipsw_prepare_keys RestoreRamdisk $1
|
||||||
echo "</dict>" >> $NewPlist
|
echo "</dict>" >> $NewPlist
|
||||||
|
elif [[ $device_target_build == "14"* ]]; then
|
||||||
|
echo "<key>Firmware</key><dict>" >> $NewPlist
|
||||||
|
ipsw_prepare_keys iBSS
|
||||||
|
ipsw_prepare_keys iBEC
|
||||||
|
ipsw_prepare_keys RestoreRamdisk
|
||||||
else
|
else
|
||||||
if [[ $ipsw_prepare_usepowder == 1 ]]; then
|
if [[ $ipsw_prepare_usepowder == 1 ]]; then
|
||||||
echo "<key>Firmware</key><dict>" >> $NewPlist
|
echo "<key>Firmware</key><dict>" >> $NewPlist
|
||||||
@ -4569,6 +4606,7 @@ restore_futurerestore() {
|
|||||||
* ) ExtraArr+=("--no-baseband");;
|
* ) ExtraArr+=("--no-baseband");;
|
||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
ExtraArr+=("--no-rsep")
|
||||||
log "futurerestore nightly will be used for this restore: https://github.com/futurerestore/futurerestore"
|
log "futurerestore nightly will be used for this restore: https://github.com/futurerestore/futurerestore"
|
||||||
if [[ $platform == "linux" && $platform_arch != "x86_64" ]]; then
|
if [[ $platform == "linux" && $platform_arch != "x86_64" ]]; then
|
||||||
warn "futurerestore nightly is not supported on $platform_arch, cannot continue. x86_64 only."
|
warn "futurerestore nightly is not supported on $platform_arch, cannot continue. x86_64 only."
|
||||||
@ -4576,7 +4614,7 @@ restore_futurerestore() {
|
|||||||
fi
|
fi
|
||||||
log "Checking for futurerestore updates..."
|
log "Checking for futurerestore updates..."
|
||||||
#local fr_latest="$(curl https://api.github.com/repos/futurerestore/futurerestore/commits | $jq -r '.[0].sha')"
|
#local fr_latest="$(curl https://api.github.com/repos/futurerestore/futurerestore/commits | $jq -r '.[0].sha')"
|
||||||
local fr_latest="1a5317ce543e6f6c583b31e379775e36b0ac0916-"
|
local fr_latest="1a5317ce543e6f6c583b31e379775e36b0ac0916--"
|
||||||
local fr_current="$(cat ${futurerestore2}_version 2>/dev/null)"
|
local fr_current="$(cat ${futurerestore2}_version 2>/dev/null)"
|
||||||
if [[ $fr_latest != "$fr_current" ]]; then
|
if [[ $fr_latest != "$fr_current" ]]; then
|
||||||
log "futurerestore nightly update detected, downloading."
|
log "futurerestore nightly update detected, downloading."
|
||||||
@ -4596,6 +4634,14 @@ restore_futurerestore() {
|
|||||||
mv futurerestore $futurerestore2
|
mv futurerestore $futurerestore2
|
||||||
perl -pi -e 's/nightly/nightlo/' $futurerestore2 # disable update check for now since it segfaults
|
perl -pi -e 's/nightly/nightlo/' $futurerestore2 # disable update check for now since it segfaults
|
||||||
chmod +x $futurerestore2
|
chmod +x $futurerestore2
|
||||||
|
if [[ $platform == "macos" ]]; then
|
||||||
|
if [[ ! -e ../saved/ldid_$platform ]]; then
|
||||||
|
download_file https://github.com/ProcursusTeam/ldid/releases/download/v2.1.5-procursus7/ldid_macosx_$platform_arch ldid
|
||||||
|
chmod +x ldid
|
||||||
|
mv ldid ../saved/ldid_$platform
|
||||||
|
fi
|
||||||
|
../saved/ldid_$platform -S $futurerestore2
|
||||||
|
fi
|
||||||
echo "$fr_latest" > ${futurerestore2}_version
|
echo "$fr_latest" > ${futurerestore2}_version
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@ -6771,6 +6817,7 @@ ipsw_latest_set() {
|
|||||||
iPhone9,[24] | iPhone10,[25] ) newpath="iPhone_5.5_P3";;
|
iPhone9,[24] | iPhone10,[25] ) newpath="iPhone_5.5_P3";;
|
||||||
* ) newpath="${device_type}";;
|
* ) newpath="${device_type}";;
|
||||||
esac
|
esac
|
||||||
|
device_type2="$newpath"
|
||||||
newpath+="_${device_target_vers}_${device_target_build}"
|
newpath+="_${device_target_vers}_${device_target_build}"
|
||||||
ipsw_custom_set $newpath
|
ipsw_custom_set $newpath
|
||||||
ipsw_dfuipsw="../${newpath}_DFUIPSW"
|
ipsw_dfuipsw="../${newpath}_DFUIPSW"
|
||||||
|
Loading…
Reference in New Issue
Block a user