mirror of
https://github.com/LukeZGD/Legacy-iOS-Kit.git
synced 2024-11-27 02:14:15 +01:00
Some ipsw latest changes
hopefully i didnt break anything
This commit is contained in:
parent
83b49a0f3b
commit
b922c90b5a
132
restore.sh
132
restore.sh
@ -853,6 +853,7 @@ device_get_info() {
|
|||||||
device_model="$(echo $device_model | tr '[:upper:]' '[:lower:]')"
|
device_model="$(echo $device_model | tr '[:upper:]' '[:lower:]')"
|
||||||
device_model="${device_model%??}" # remove "ap" from the end
|
device_model="${device_model%??}" # remove "ap" from the end
|
||||||
if [[ -z $device_type && -n $device_model ]]; then
|
if [[ -z $device_type && -n $device_model ]]; then
|
||||||
|
# device_model fallback
|
||||||
case $device_model in
|
case $device_model in
|
||||||
k48 ) device_type="iPad1,1";;
|
k48 ) device_type="iPad1,1";;
|
||||||
k93 ) device_type="iPad2,1";;
|
k93 ) device_type="iPad2,1";;
|
||||||
@ -1750,6 +1751,7 @@ device_ipwndfu() {
|
|||||||
$python2 ipwndfu -p
|
$python2 ipwndfu -p
|
||||||
tool_pwned=$?
|
tool_pwned=$?
|
||||||
if [[ $tool_pwned != 0 && $tool_pwned != 2 ]]; then
|
if [[ $tool_pwned != 0 && $tool_pwned != 2 ]]; then
|
||||||
|
popd >/dev/null
|
||||||
device_pwnerror
|
device_pwnerror
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
@ -5073,19 +5075,8 @@ device_ramdisk64() {
|
|||||||
fi
|
fi
|
||||||
if [[ -z $name ]]; then
|
if [[ -z $name ]]; then
|
||||||
local hwmodel
|
local hwmodel
|
||||||
case $device_type in
|
ipsw_hwmodel_set
|
||||||
iPhone6* ) hwmodel="iphone6";;
|
hwmodel="$ipsw_hwmodel"
|
||||||
iPhone7* ) hwmodel="iphone7";;
|
|
||||||
iPhone8,4 ) hwmodel="iphone8b";;
|
|
||||||
iPhone8* ) hwmodel="iphone8";;
|
|
||||||
iPhone9* ) hwmodel="iphone9";;
|
|
||||||
iPad4,[123] ) hwmodel="ipad4";;
|
|
||||||
iPad4,[456] ) hwmodel="ipad4b";;
|
|
||||||
iPad4,[789] ) hwmodel="ipad4bm";;
|
|
||||||
iPad5,[12] ) hwmodel="ipad5";;
|
|
||||||
iPad5,[34] ) hwmodel="ipad5b";;
|
|
||||||
* ) hwmodel="$device_model";;
|
|
||||||
esac
|
|
||||||
case $getcomp in
|
case $getcomp in
|
||||||
"iBSS" | "iBEC" ) name="$getcomp.$hwmodel.RELEASE.im4p";;
|
"iBSS" | "iBEC" ) name="$getcomp.$hwmodel.RELEASE.im4p";;
|
||||||
"DeviceTree" ) name="$getcomp.${device_model}ap.im4p";;
|
"DeviceTree" ) name="$getcomp.${device_model}ap.im4p";;
|
||||||
@ -6665,6 +6656,55 @@ menu_restore_more() {
|
|||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ipsw_latest_set() {
|
||||||
|
local newpath
|
||||||
|
case $device_type in
|
||||||
|
iPad3,[456] ) newpath="iPad_32bit";;
|
||||||
|
iPad4,[123456] ) newpath="iPad_64bit";;
|
||||||
|
iPad6,[34] ) newpath="iPadPro_9.7";;
|
||||||
|
iPad6,[78] ) newpath="iPadPro_12.9";;
|
||||||
|
iPad6,1[12] ) newpath="iPad_64bit_TouchID_ASTC";;
|
||||||
|
iPhone5,[1234] ) newpath="iPhone_4.0_32bit";;
|
||||||
|
iPhone10,[36] ) newpath="iPhone10,3,iPhone10,6";;
|
||||||
|
iPod[79],1 ) newpath="iPodtouch";;
|
||||||
|
iPad4,[789] | iPad5* ) newpath="iPad_64bit_TouchID";;
|
||||||
|
iPhone6,[12] | iPhone8,4 ) newpath="iPhone_4.0_64bit";;
|
||||||
|
iPhone7,1 | iPhone8,2 ) newpath="iPhone_5.5";;
|
||||||
|
iPhone7,2 | iPhone8,1 ) newpath="iPhone_4.7";;
|
||||||
|
iPhone9,[13] | iPhone10,[14] ) newpath="iPhone_4.7_P3";;
|
||||||
|
iPhone9,[24] | iPhone10,[25] ) newpath="iPhone_5.5_P3";;
|
||||||
|
* ) newpath="${device_type}";;
|
||||||
|
esac
|
||||||
|
newpath+="_${device_target_vers}_${device_target_build}"
|
||||||
|
ipsw_custom_set $newpath
|
||||||
|
ipsw_dfuipsw="../${newpath}_DFUIPSW"
|
||||||
|
newpath+="_Restore"
|
||||||
|
ipsw_latest_path="$newpath"
|
||||||
|
}
|
||||||
|
|
||||||
|
ipsw_hwmodel_set() {
|
||||||
|
local hwmodel
|
||||||
|
case $device_type in
|
||||||
|
iPhone5,[12] ) hwmodel="iphone5";;
|
||||||
|
iPhone5,[34] ) hwmodel="iphone5b";;
|
||||||
|
iPad3,[456] ) hwmodel="ipad3b";;
|
||||||
|
iPhone6* ) hwmodel="iphone6";;
|
||||||
|
iPhone7* ) hwmodel="iphone7";;
|
||||||
|
iPhone8,4 ) hwmodel="iphone8b";;
|
||||||
|
iPhone8* ) hwmodel="iphone8";;
|
||||||
|
iPhone9* ) hwmodel="iphone9";;
|
||||||
|
iPad4,[123] ) hwmodel="ipad4";;
|
||||||
|
iPad4,[456] ) hwmodel="ipad4b";;
|
||||||
|
iPad4,[789] ) hwmodel="ipad4bm";;
|
||||||
|
iPad5,[12] ) hwmodel="ipad5";;
|
||||||
|
iPad5,[34] ) hwmodel="ipad5b";;
|
||||||
|
iPad6,[34] ) hwmodel="ipad6b";;
|
||||||
|
iPad6,[78] ) hwmodel="ipad6d";;
|
||||||
|
* ) hwmodel="$device_model";;
|
||||||
|
esac
|
||||||
|
ipsw_hwmodel="$hwmodel"
|
||||||
|
}
|
||||||
|
|
||||||
menu_ipsw() {
|
menu_ipsw() {
|
||||||
local menu_items
|
local menu_items
|
||||||
local selected
|
local selected
|
||||||
@ -6768,23 +6808,8 @@ menu_ipsw() {
|
|||||||
"3.0" ) device_target_build="7A341";;
|
"3.0" ) device_target_build="7A341";;
|
||||||
esac
|
esac
|
||||||
if [[ $device_target_vers == "$device_latest_vers" ]]; then
|
if [[ $device_target_vers == "$device_latest_vers" ]]; then
|
||||||
case $device_type in
|
ipsw_latest_set
|
||||||
iPad3,[456] ) newpath="iPad_32bit";;
|
newpath="$ipsw_latest_path"
|
||||||
iPad4,[123456] ) newpath="iPad_64bit";;
|
|
||||||
iPhone5,[1234] ) newpath="iPhone_4.0_32bit";;
|
|
||||||
iPod[79],1 ) newpath="iPodtouch";;
|
|
||||||
iPhone9,[13] ) newpath="iPhone_4.7_P3";;
|
|
||||||
iPhone9,[24] ) newpath="iPhone_5.5_P3";;
|
|
||||||
iPad4,[789] | iPad5* ) newpath="iPad_64bit_TouchID";;
|
|
||||||
iPhone6,[12] | iPhone8,4 ) newpath="iPhone_4.0_64bit";;
|
|
||||||
iPhone7,1 | iPhone8,2 ) newpath="iPhone_5.5";;
|
|
||||||
iPhone7,2 | iPhone8,1 ) newpath="iPhone_4.7";;
|
|
||||||
* ) newpath="${device_type}";;
|
|
||||||
esac
|
|
||||||
newpath+="_${device_target_vers}_${device_target_build}"
|
|
||||||
ipsw_custom_set $newpath
|
|
||||||
newpath+="_Restore"
|
|
||||||
|
|
||||||
else
|
else
|
||||||
case $device_type in
|
case $device_type in
|
||||||
iPad4,[12345] ) newpath="iPad_64bit";;
|
iPad4,[12345] ) newpath="iPad_64bit";;
|
||||||
@ -7299,6 +7324,9 @@ menu_ipsw_browse() {
|
|||||||
*"powdersn0w"* )
|
*"powdersn0w"* )
|
||||||
if [[ $device_target_build == "14"* ]]; then
|
if [[ $device_target_build == "14"* ]]; then
|
||||||
log "Selected IPSW ($device_target_vers) is not supported as target version."
|
log "Selected IPSW ($device_target_vers) is not supported as target version."
|
||||||
|
case $device_type in
|
||||||
|
iPhone5,[12] ) print "* If you want untethered iOS 10, use p0insettia plus: https://github.com/LukeZGD/p0insettia-plus";;
|
||||||
|
esac
|
||||||
pause
|
pause
|
||||||
return
|
return
|
||||||
elif [[ $device_target_build == "$device_base_build" ]]; then
|
elif [[ $device_target_build == "$device_base_build" ]]; then
|
||||||
@ -8060,8 +8088,10 @@ restore_customipsw() {
|
|||||||
|
|
||||||
restore_dfuipsw() {
|
restore_dfuipsw() {
|
||||||
# the only change done to the "dfu ipsw" is just applelogo copied and renamed to llb
|
# the only change done to the "dfu ipsw" is just applelogo copied and renamed to llb
|
||||||
# replacing llb with an invalid img3 to make the restore fail, the device will then fallback to true dfu mode
|
# replacing llb with an invalid img3/im4p to make the restore fail, the device will then fallback to true dfu mode
|
||||||
# https://theapplewiki.com/wiki/DFU_Mode#Enter_True_Hardware_DFU_Mode_Automatically
|
# https://theapplewiki.com/wiki/DFU_Mode#Enter_True_Hardware_DFU_Mode_Automatically
|
||||||
|
# this function theoretically works on 64-bit devices, but restoring the dfu ipsw requires entering dfu for pwned restore
|
||||||
|
# which defeats the point of doing a dfu ipsw in the first place, so dfu ipsw is available for 32-bit devices only
|
||||||
print "* You are about to restore with a DFU IPSW."
|
print "* You are about to restore with a DFU IPSW."
|
||||||
print "* This will force the device to enter DFU mode, which is useful for devices with broken buttons."
|
print "* This will force the device to enter DFU mode, which is useful for devices with broken buttons."
|
||||||
print "* All device data will be wiped! Only proceed if you have backed up your data."
|
print "* All device data will be wiped! Only proceed if you have backed up your data."
|
||||||
@ -8069,15 +8099,8 @@ restore_dfuipsw() {
|
|||||||
pause
|
pause
|
||||||
device_target_vers="$device_latest_vers"
|
device_target_vers="$device_latest_vers"
|
||||||
device_target_build="$device_latest_build"
|
device_target_build="$device_latest_build"
|
||||||
local ipsw_p="../"
|
ipsw_latest_set
|
||||||
case $device_type in
|
ipsw_path="../$ipsw_latest_path"
|
||||||
iPhone5,[1234] ) ipsw_p+="iPhone_4.0_32bit";;
|
|
||||||
iPad3,[456] ) ipsw_p+="iPad_32bit";;
|
|
||||||
* ) ipsw_p+="${device_type}";;
|
|
||||||
esac
|
|
||||||
ipsw_p+="_${device_target_vers}_${device_target_build}"
|
|
||||||
local ipsw_dfuipsw="${ipsw_p}_DFUIPSW"
|
|
||||||
ipsw_path="${ipsw_p}_Restore"
|
|
||||||
if [[ -s "$ipsw_path.ipsw" && ! -e "$ipsw_dfuipsw.ipsw" ]]; then
|
if [[ -s "$ipsw_path.ipsw" && ! -e "$ipsw_dfuipsw.ipsw" ]]; then
|
||||||
ipsw_verify "$ipsw_path" "$device_target_build"
|
ipsw_verify "$ipsw_path" "$device_target_build"
|
||||||
elif [[ ! -e "$ipsw_path.ipsw" ]]; then
|
elif [[ ! -e "$ipsw_path.ipsw" ]]; then
|
||||||
@ -8087,22 +8110,33 @@ restore_dfuipsw() {
|
|||||||
log "Found existing DFU IPSW. Skipping IPSW creation."
|
log "Found existing DFU IPSW. Skipping IPSW creation."
|
||||||
else
|
else
|
||||||
cp $ipsw_path.ipsw temp.ipsw
|
cp $ipsw_path.ipsw temp.ipsw
|
||||||
device_fw_key_check
|
local llb="${device_model}ap"
|
||||||
local applelogo=$(echo $device_fw_key | $jq -j '.keys[] | select(.image == "AppleLogo") | .filename')
|
|
||||||
local llb="LLB.${device_model}ap.RELEASE.img3"
|
|
||||||
local all="Firmware/all_flash"
|
local all="Firmware/all_flash"
|
||||||
if [[ $device_latest_vers == "10"* ]]; then
|
local applelogo
|
||||||
|
if (( device_proc >= 6 )); then
|
||||||
|
ipsw_hwmodel_set
|
||||||
|
case $device_type in
|
||||||
|
iPhone9,[13] ) llb="d10";;
|
||||||
|
iPhone9,[24] ) llb="d11";;
|
||||||
|
iPhone[78]* | iPad6,1* ) llb="$device_model";;
|
||||||
|
* ) llb="$ipsw_hwmodel"
|
||||||
|
esac
|
||||||
case $device_type in
|
case $device_type in
|
||||||
iPhone5,[1234] ) applelogo="applelogo@2x~iphone.s5l8950x.img3";;
|
iPhone5,[1234] ) applelogo="applelogo@2x~iphone.s5l8950x.img3";;
|
||||||
iPad3,[456] ) applelogo="applelogo@2x~ipad.s5l8955x.img3";;
|
iPad3,[456] ) applelogo="applelogo@2x~ipad.s5l8955x.img3";;
|
||||||
esac
|
iPhone* ) applelogo="applelogo@2x~iphone.im4p";;
|
||||||
case $device_type in
|
iPad* ) applelogo="applelogo@2x~ipad.im4p";;
|
||||||
iPhone5,[12] ) llb="LLB.iphone5.RELEASE.img3";;
|
|
||||||
iPhone5,[34] ) llb="LLB.iphone5b.RELEASE.img3";;
|
|
||||||
iPad3,[456] ) llb="LLB.ipad3b.RELEASE.img3";;
|
|
||||||
esac
|
esac
|
||||||
else
|
else
|
||||||
all="$all_flash"
|
all="$all_flash"
|
||||||
|
device_fw_key_check
|
||||||
|
applelogo=$(echo $device_fw_key | $jq -j '.keys[] | select(.image == "AppleLogo") | .filename')
|
||||||
|
fi
|
||||||
|
llb="LLB.$llb.RELEASE"
|
||||||
|
if (( device_proc >= 7 )); then
|
||||||
|
llb+=".im4p"
|
||||||
|
else
|
||||||
|
llb+=".img3"
|
||||||
fi
|
fi
|
||||||
mkdir -p $all
|
mkdir -p $all
|
||||||
unzip -o -j temp.ipsw $all/$applelogo -d .
|
unzip -o -j temp.ipsw $all/$applelogo -d .
|
||||||
|
Loading…
Reference in New Issue
Block a user