mirror of
https://github.com/LukeZGD/Legacy-iOS-Kit.git
synced 2025-01-11 15:59:08 +01:00
Custom IPSW restore option, optional Linux args
- add restore custom ipsw option for 3gs and touch 2. there is also a warning to proceed with caution when doing so since legacy ios kit will never add support for tethered boots, downgrades, and jailbreaks (everything in legacy ios kit has to be untethered) - add optional arguments `--disable-sudoloop` and `--disable-usbmuxd` for linux. (i dont recommend enabling any of these since default behavior should work fine in most cases, maybe only `--disable-usbmuxd` will be useful in case, idk) - by default, legacy ios kit stops the usbmuxd service and starts up `sudo usbmuxd -pz`. `--disable-usbmuxd` disables this - by default, legacy ios kit runs some tools as root like irecovery and idevicerestore among others. `--disable-sudoloop` disables this
This commit is contained in:
parent
88402c2847
commit
f1247bbf21
69
restore.sh
69
restore.sh
@ -34,7 +34,9 @@ clean() {
|
||||
rm -rf "$(dirname "$0")/tmp/"* "$(dirname "$0")/iP"*/ "$(dirname "$0")/tmp/"
|
||||
if [[ $device_sudoloop == 1 ]]; then
|
||||
sudo rm -rf /tmp/futurerestore /tmp/*.json "$(dirname "$0")/tmp/"* "$(dirname "$0")/iP"*/ "$(dirname "$0")/tmp/"
|
||||
sudo systemctl restart usbmuxd
|
||||
if [[ -z $device_disable_usbmuxd ]]; then
|
||||
sudo systemctl restart usbmuxd
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
@ -61,6 +63,8 @@ Usage: ./restore.sh [Options]
|
||||
List of options:
|
||||
--debug For script debugging (set -x and debug mode)
|
||||
--disable-bbupdate Disable baseband update
|
||||
--disable-sudoloop Disable running tools as root for Linux
|
||||
--disable-usbmuxd Disable running usbmuxd as root for Linux
|
||||
--entry-device Enable manual device and ECID entry
|
||||
--help Display this help message
|
||||
--no-color Disable colors for script output
|
||||
@ -179,7 +183,9 @@ set_tool_paths() {
|
||||
fi
|
||||
fi
|
||||
|
||||
device_sudoloop=1 # Run some tools as root for device detection if set to 1. (for Linux)
|
||||
if [[ -z $device_disable_sudoloop ]]; then
|
||||
device_sudoloop=1 # Run some tools as root for device detection if set to 1. (for Linux)
|
||||
fi
|
||||
# sudoloop check
|
||||
if [[ $(uname -m) == "x86_64" && -e ../resources/sudoloop && $device_sudoloop != 1 ]]; then
|
||||
local opt
|
||||
@ -205,9 +211,11 @@ set_tool_paths() {
|
||||
irecovery="sudo "
|
||||
irecovery2="sudo "
|
||||
sudo chmod +x $dir/*
|
||||
sudo systemctl stop usbmuxd
|
||||
sudo usbmuxd -pz
|
||||
usbmuxd_pid=$!
|
||||
if [[ -z $device_disable_usbmuxd ]]; then
|
||||
sudo systemctl stop usbmuxd
|
||||
sudo usbmuxd -pz
|
||||
usbmuxd_pid=$!
|
||||
fi
|
||||
fi
|
||||
|
||||
elif [[ $OSTYPE == "darwin"* ]]; then
|
||||
@ -2294,8 +2302,9 @@ restore_idevicerestore() {
|
||||
print "* Windows users may encounter errors like \"Unable to send APTicket\" or \"Unable to send iBEC\" in the restore process."
|
||||
print "* Follow the troubleshoting link for steps to attempt fixing this issue."
|
||||
print "* Troubleshooting link: https://github.com/LukeZGD/Legacy-iOS-Kit/wiki/Troubleshooting#windows"
|
||||
elif [[ $platform == "linux" && $device_target_vers == "4"* ]]; then
|
||||
print "* For device activation on Linux, go to: Other Utilities -> Attempt Activation"
|
||||
fi
|
||||
if [[ $device_target_vers == "4"* ]]; then
|
||||
print "* For device activation, go to: Other Utilities -> Attempt Activation"
|
||||
fi
|
||||
print "* Please read the \"Troubleshooting\" wiki page in GitHub before opening any issue!"
|
||||
print "* Your problem may have already been addressed within the wiki page."
|
||||
@ -2390,8 +2399,8 @@ restore_latest() {
|
||||
print "* Your problem may have already been addressed within the wiki page."
|
||||
print "* If opening an issue in GitHub, please provide a FULL log/output. Otherwise, your issue may be dismissed."
|
||||
fi
|
||||
if [[ $platform == "linux" && $device_target_vers == "4"* ]]; then
|
||||
print "* For device activation on Linux, go to: Other Utilities -> Attempt Activation"
|
||||
if [[ $device_target_vers == "4"* ]]; then
|
||||
print "* For device activation, go to: Other Utilities -> Attempt Activation"
|
||||
fi
|
||||
}
|
||||
|
||||
@ -2475,7 +2484,7 @@ restore_prepare() {
|
||||
print "* Go to: Other Utilities -> Install alloc8 Exploit"
|
||||
fi
|
||||
if [[ $device_target_vers == "3"* ]]; then
|
||||
print "* For device activation on Linux, go to: Other Utilities -> Attempt Activation"
|
||||
print "* For device activation, go to: Other Utilities -> Attempt Activation"
|
||||
fi
|
||||
fi
|
||||
;;
|
||||
@ -3149,6 +3158,9 @@ menu_restore() {
|
||||
menu_items+=("iPhoneOS 3.1.3")
|
||||
;;
|
||||
esac
|
||||
case $device_type in
|
||||
iPhone2,1 | iPod2,1 ) menu_items+=("Other (Custom IPSW)");;
|
||||
esac
|
||||
menu_items+=("Latest iOS ($device_latest_vers)" "Other (use SHSH blobs)" "Go Back")
|
||||
menu_print_info
|
||||
if [[ $1 == "ipsw" ]]; then
|
||||
@ -3164,6 +3176,7 @@ menu_restore() {
|
||||
case $selected in
|
||||
"" ) :;;
|
||||
"Go Back" ) back=1;;
|
||||
"Other (Custom IPSW)" ) mode="customipsw";;
|
||||
* ) menu_ipsw "$selected" "$1";;
|
||||
esac
|
||||
done
|
||||
@ -3478,9 +3491,11 @@ menu_ipsw_browse() {
|
||||
pause
|
||||
return
|
||||
fi
|
||||
ipsw_verify "$newpath" "$device_target_build"
|
||||
if [[ -n $versionc && $? != 0 ]]; then
|
||||
return
|
||||
if [[ $1 != "custom" ]]; then
|
||||
ipsw_verify "$newpath" "$device_target_build"
|
||||
if [[ -n $versionc && $? != 0 ]]; then
|
||||
return
|
||||
fi
|
||||
fi
|
||||
ipsw_path="$newpath"
|
||||
}
|
||||
@ -3623,6 +3638,31 @@ device_dumpbaseband() {
|
||||
log "Dumping baseband done: $baseband"
|
||||
}
|
||||
|
||||
restore_customipsw() {
|
||||
print "* You are about to restore with a custom IPSW."
|
||||
print "* Note that this might only work on old bootrom devices."
|
||||
print "* Also note that Legacy iOS Kit does not support tethered booting."
|
||||
print "* Legacy iOS Kit will not support tethered boots, downgrades, and jailbreaks."
|
||||
print "* Proceed with caution when restoring to custom IPSWs not made with Legacy iOS Kit."
|
||||
if [[ $device_newbr == 1 ]]; then
|
||||
warn "Your device is a new bootrom model and custom IPSWs might not be compatible."
|
||||
print "* For iPhone 3GS, after restoring you will need to go to Other Utilities -> Install alloc8 Exploit"
|
||||
fi
|
||||
pause
|
||||
menu_ipsw_browse custom
|
||||
if [[ -z $ipsw_path ]]; then
|
||||
error "No IPSW selected, cannot continue."
|
||||
fi
|
||||
device_enter_mode pwnDFU
|
||||
ipsw_extract
|
||||
log "Running idevicerestore with command: $idevicerestore -ce \"$ipsw_path.ipsw\""
|
||||
$idevicerestore -ce "$ipsw_path.ipsw"
|
||||
log "Restoring done!"
|
||||
if [[ $device_target_vers == "4"* ]]; then
|
||||
print "* For device activation, go to: Other Utilities -> Attempt Activation"
|
||||
fi
|
||||
}
|
||||
|
||||
main() {
|
||||
clear
|
||||
print " *** Legacy iOS Kit ***"
|
||||
@ -3689,6 +3729,7 @@ main() {
|
||||
"alloc8" ) device_alloc8;;
|
||||
"jailbreak" ) device_jailbreakrd;;
|
||||
"baseband" ) device_dumpbaseband;;
|
||||
"customipsw" ) restore_customipsw;;
|
||||
* ) :;;
|
||||
esac
|
||||
|
||||
@ -3713,6 +3754,8 @@ for i in "$@"; do
|
||||
"--jailbreak" ) ipsw_jailbreak=1;;
|
||||
"--memory" ) ipsw_memory=1;;
|
||||
"--disable-bbupdate" ) de_bbupdate=1; device_disable_bbupdate=1;;
|
||||
"--disable-sudoloop" ) device_disable_sudoloop=1;;
|
||||
"--disable-usbmuxd" ) device_disable_usbmuxd=1;;
|
||||
esac
|
||||
done
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user