mirror of
https://github.com/LukeZGD/Legacy-iOS-Kit.git
synced 2025-02-18 17:36:23 +01:00
Some changes
- jailbreak option for iphone 4 ios 4 ("other" restores) (4.2.1 not supported) - dfu ipsw - just boot (tethered verbose boot)
This commit is contained in:
parent
a3e535c6da
commit
97d46fa861
1
.gitignore
vendored
1
.gitignore
vendored
@ -11,6 +11,7 @@
|
|||||||
Cydia*
|
Cydia*
|
||||||
firstrun
|
firstrun
|
||||||
iP*Custom*/
|
iP*Custom*/
|
||||||
|
iP*DFUIPSW/
|
||||||
iP*Restore/
|
iP*Restore/
|
||||||
resources/ch3rryflower/
|
resources/ch3rryflower/
|
||||||
resources/ipwndfu/
|
resources/ipwndfu/
|
||||||
|
BIN
resources/jailbreak/fstab_new.tar
Normal file
BIN
resources/jailbreak/fstab_new.tar
Normal file
Binary file not shown.
97
restore.sh
97
restore.sh
@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
ipsw_openssh=1 # OpenSSH will be added to jailbreak/custom IPSW if set to 1.
|
ipsw_openssh=1 # OpenSSH will be added to jailbreak/custom IPSW if set to 1.
|
||||||
device_ramdisk_build="" # You can change the version of SSH Ramdisk and Pwned iBSS/iBEC here. (default is 10B329 for most devices)
|
device_ramdisk_build="" # You can change the version of SSH Ramdisk and Pwned iBSS/iBEC here. (default is 10B329 for most devices)
|
||||||
device_verbose_boot=0 # By setting this to 1 and changing the build version above, the SSH Ramdisk option turns to tethered verbose boot.
|
|
||||||
jelbrek="../resources/jailbreak"
|
jelbrek="../resources/jailbreak"
|
||||||
|
|
||||||
print() {
|
print() {
|
||||||
@ -955,7 +954,9 @@ device_enter_mode() {
|
|||||||
print "* Make sure that your iOS device and PC/Mac are on the same network."
|
print "* Make sure that your iOS device and PC/Mac are on the same network."
|
||||||
print "* To get your device's IP Address, go to: Settings -> Wi-Fi/WLAN -> tap the 'i' next to your network name"
|
print "* To get your device's IP Address, go to: Settings -> Wi-Fi/WLAN -> tap the 'i' next to your network name"
|
||||||
local IPAddress
|
local IPAddress
|
||||||
read -p "$(input 'Enter the IP Address of your device:') " IPAddress
|
until [[ -n $IPAddress ]]; do
|
||||||
|
read -p "$(input 'Enter the IP Address of your device: ')" IPAddress
|
||||||
|
done
|
||||||
$scp ${sendfiles[@]} root@$IPAddress:/tmp
|
$scp ${sendfiles[@]} root@$IPAddress:/tmp
|
||||||
if [[ $? != 0 ]]; then
|
if [[ $? != 0 ]]; then
|
||||||
error "Failed to connect to device via SSH, cannot continue."
|
error "Failed to connect to device via SSH, cannot continue."
|
||||||
@ -1405,9 +1406,11 @@ ipsw_preference_set() {
|
|||||||
case $device_target_vers in
|
case $device_target_vers in
|
||||||
8* | 7* | 6* | 5* ) ipsw_canjailbreak=1;;
|
8* | 7* | 6* | 5* ) ipsw_canjailbreak=1;;
|
||||||
esac
|
esac
|
||||||
if [[ $device_type == "iPhone3,1" && $device_target_vers == "4.3"* ]] ||
|
if [[ $device_target_powder == 1 ]] ||
|
||||||
[[ $device_proc == 4 && $device_type != "iPhone3,1" ]]; then
|
[[ $device_type == "iPhone3,1" && $device_target_vers == "4"* && $device_target_vers != "4.2.1" ]]; then
|
||||||
ipsw_canjailbreak=1
|
ipsw_canjailbreak=1
|
||||||
|
elif [[ $device_proc == 4 && $device_target_other == 1 && $ipsw_canjailbreak != 1 ]]; then
|
||||||
|
return
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $device_target_vers == "3.1"* ]]; then
|
if [[ $device_target_vers == "3.1"* ]]; then
|
||||||
@ -1666,6 +1669,7 @@ ipsw_prepare_jailbreak() {
|
|||||||
case $device_target_vers in
|
case $device_target_vers in
|
||||||
"6.1.3" ) JBFiles+=("p0sixspwn.tar");;
|
"6.1.3" ) JBFiles+=("p0sixspwn.tar");;
|
||||||
"4.3"* ) JBFiles+=("unthredeh4il.tar");;
|
"4.3"* ) JBFiles+=("unthredeh4il.tar");;
|
||||||
|
"4"* ) JBFiles=("fstab_new.tar" "freeze.tar" "greenpois0n/${device_type}_${device_target_build}.tar");;
|
||||||
esac
|
esac
|
||||||
for i in {0..2}; do
|
for i in {0..2}; do
|
||||||
JBFiles[i]=$jelbrek/${JBFiles[$i]}
|
JBFiles[i]=$jelbrek/${JBFiles[$i]}
|
||||||
@ -3171,6 +3175,11 @@ device_ramdisk() {
|
|||||||
print "* If the device did not connect, SSH to the device manually."
|
print "* If the device did not connect, SSH to the device manually."
|
||||||
;;
|
;;
|
||||||
|
|
||||||
|
"justboot" )
|
||||||
|
log "Device should now boot."
|
||||||
|
return
|
||||||
|
;;
|
||||||
|
|
||||||
* ) log "Device should now be in SSH ramdisk mode.";;
|
* ) log "Device should now be in SSH ramdisk mode.";;
|
||||||
esac
|
esac
|
||||||
echo
|
echo
|
||||||
@ -3467,10 +3476,17 @@ menu_restore() {
|
|||||||
menu_items+=("Other (powdersn0w 7.x blobs)");;
|
menu_items+=("Other (powdersn0w 7.x blobs)");;
|
||||||
iPhone3,[13] )
|
iPhone3,[13] )
|
||||||
menu_items+=("powdersn0w (any iOS)");;
|
menu_items+=("powdersn0w (any iOS)");;
|
||||||
iPhone2,1 | iPod2,1 )
|
iPhone2,1 | iPhone3,2 | iPad1,1 | iPod2,1 | iPod3,1 | iPod4,1 )
|
||||||
menu_items+=("Other (Custom IPSW)");;
|
if [[ -z $1 ]]; then
|
||||||
|
menu_items+=("Other (Custom IPSW)")
|
||||||
|
fi
|
||||||
|
;;
|
||||||
esac
|
esac
|
||||||
menu_items+=("Other (Use SHSH blobs)" "Go Back")
|
menu_items+=("Other (Use SHSH Blobs)")
|
||||||
|
if (( device_proc < 7 )); then
|
||||||
|
menu_items+=("DFU IPSW")
|
||||||
|
fi
|
||||||
|
menu_items+=("Go Back")
|
||||||
menu_print_info
|
menu_print_info
|
||||||
if [[ $1 == "ipsw" ]]; then
|
if [[ $1 == "ipsw" ]]; then
|
||||||
print " > Main Menu > Other Utilities > Create Custom IPSW"
|
print " > Main Menu > Other Utilities > Create Custom IPSW"
|
||||||
@ -3486,6 +3502,7 @@ menu_restore() {
|
|||||||
"" ) :;;
|
"" ) :;;
|
||||||
"Go Back" ) back=1;;
|
"Go Back" ) back=1;;
|
||||||
"Other (Custom IPSW)" ) mode="customipsw";;
|
"Other (Custom IPSW)" ) mode="customipsw";;
|
||||||
|
"DFU IPSW" ) mode="dfuipsw${1}";;
|
||||||
* ) menu_ipsw "$selected" "$1";;
|
* ) menu_ipsw "$selected" "$1";;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
@ -3588,7 +3605,7 @@ menu_ipsw() {
|
|||||||
ipsw_custom_set $newpath
|
ipsw_custom_set $newpath
|
||||||
newpath+="_Restore"
|
newpath+="_Restore"
|
||||||
fi
|
fi
|
||||||
if [[ $1 == "Other (Use SHSH blobs)" ]]; then
|
if [[ $1 == "Other (Use SHSH Blobs)" ]]; then
|
||||||
device_target_other=1
|
device_target_other=1
|
||||||
elif [[ $1 == *"powdersn0w"* ]]; then
|
elif [[ $1 == *"powdersn0w"* ]]; then
|
||||||
device_target_powder=1
|
device_target_powder=1
|
||||||
@ -3920,6 +3937,9 @@ menu_other() {
|
|||||||
menu_items+=("Dump Baseband")
|
menu_items+=("Dump Baseband")
|
||||||
fi
|
fi
|
||||||
menu_items+=("Activation Records" "SSH Ramdisk" "Clear NVRAM")
|
menu_items+=("Activation Records" "SSH Ramdisk" "Clear NVRAM")
|
||||||
|
if [[ $device_type != "iPod2,1" ]]; then
|
||||||
|
menu_items+=("Just Boot")
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
menu_items+=("Enter pwnDFU Mode")
|
menu_items+=("Enter pwnDFU Mode")
|
||||||
fi
|
fi
|
||||||
@ -3961,6 +3981,7 @@ menu_other() {
|
|||||||
"Enter Recovery Mode" ) mode="enterreccovery";;
|
"Enter Recovery Mode" ) mode="enterreccovery";;
|
||||||
"Exit Recovery Mode" ) mode="exitrecovery";;
|
"Exit Recovery Mode" ) mode="exitrecovery";;
|
||||||
"Enter DFU Mode" ) mode="enterdfu";;
|
"Enter DFU Mode" ) mode="enterdfu";;
|
||||||
|
"Just Boot" ) mode="justboot";;
|
||||||
"Go Back" ) back=1;;
|
"Go Back" ) back=1;;
|
||||||
esac
|
esac
|
||||||
done
|
done
|
||||||
@ -4077,6 +4098,63 @@ restore_customipsw() {
|
|||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
|
restore_dfuipsw() {
|
||||||
|
# the only change done to the "dfu ipsw" is just applelogo copied and renamed to llb
|
||||||
|
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 "* All device data will be wiped! Only proceed if you have backed up your data."
|
||||||
|
print "* Expect the restore to fail and the device to be stuck in DFU mode."
|
||||||
|
pause
|
||||||
|
device_target_vers="$device_latest_vers"
|
||||||
|
device_target_build="$device_latest_build"
|
||||||
|
local ipsw_p="../${device_type}_${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
|
||||||
|
ipsw_verify "$ipsw_path" "$device_target_build"
|
||||||
|
elif [[ ! -e "$ipsw_path.ipsw" ]]; then
|
||||||
|
ipsw_download "$ipsw_path"
|
||||||
|
fi
|
||||||
|
if [[ -s "$ipsw_dfuipsw.ipsw" ]]; then
|
||||||
|
log "Found existing DFU IPSW. Skipping IPSW creation."
|
||||||
|
else
|
||||||
|
cp $ipsw_path.ipsw temp.ipsw
|
||||||
|
device_fw_key_check
|
||||||
|
local applelogo=$(echo $device_fw_key | $jq -j '.keys[] | select(.image | startswith("AppleLogo")) | .filename')
|
||||||
|
local llb=$(echo $device_fw_key | $jq -j '.keys[] | select(.image | startswith("LLB")) | .filename')
|
||||||
|
local all="Firmware/all_flash/all_flash.${device_model}ap.production"
|
||||||
|
mkdir -p $all
|
||||||
|
unzip -o -j temp.ipsw $all/$applelogo -d .
|
||||||
|
mv $applelogo $all/$llb
|
||||||
|
zip -r0 temp.ipsw $all/*
|
||||||
|
mv temp.ipsw $ipsw_dfuipsw.ipsw
|
||||||
|
fi
|
||||||
|
if [[ $1 == "ipsw" ]]; then
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
ipsw_path="$ipsw_dfuipsw"
|
||||||
|
ipsw_extract
|
||||||
|
log "Running idevicerestore with command: $idevicerestore -e \"$ipsw_path.ipsw\""
|
||||||
|
$idevicerestore -e "$ipsw_path.ipsw"
|
||||||
|
log "Restoring done! Device should now be in DFU mode"
|
||||||
|
}
|
||||||
|
|
||||||
|
device_justboot() {
|
||||||
|
print "* You are about to do a tethered verbose boot."
|
||||||
|
print "* Enter the build version of the iOS version to use. This supports iOS 5 and newer only."
|
||||||
|
read -p "$(input 'Enter build version (eg. 9B206): ')" device_ramdisk_build
|
||||||
|
case $device_ramdisk_build in
|
||||||
|
"7"* | "8"* ) error "Tethered verbose boot is supported for iOS 5 and newer only."
|
||||||
|
esac
|
||||||
|
device_verbose_boot=1
|
||||||
|
if [[ $device_proc == 4 ]]; then
|
||||||
|
device_enter_mode pwnDFU
|
||||||
|
else
|
||||||
|
device_enter_mode kDFU
|
||||||
|
fi
|
||||||
|
device_ramdisk justboot
|
||||||
|
}
|
||||||
|
|
||||||
main() {
|
main() {
|
||||||
clear
|
clear
|
||||||
print " *** Legacy iOS Kit ***"
|
print " *** Legacy iOS Kit ***"
|
||||||
@ -4155,6 +4233,9 @@ main() {
|
|||||||
"enterrecovery" ) device_enter_mode Recovery;;
|
"enterrecovery" ) device_enter_mode Recovery;;
|
||||||
"exitrecovery" ) $irecovery -n;;
|
"exitrecovery" ) $irecovery -n;;
|
||||||
"enterdfu" ) device_enter_mode DFU;;
|
"enterdfu" ) device_enter_mode DFU;;
|
||||||
|
"dfuipsw" ) restore_dfuipsw;;
|
||||||
|
"dfuipswipsw" ) restore_dfuipsw ipsw;;
|
||||||
|
"justboot" ) device_justboot;;
|
||||||
* ) :;;
|
* ) :;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user