Add select IPSW in just boot, also more fixes for limd/linux arm64

arm64 bins mostly untested.
select ipsw in just boot addresses #623
This commit is contained in:
LukeeGD 2024-11-18 12:19:12 +08:00
parent 7a9f728718
commit 15cf6c9774
7 changed files with 24 additions and 17 deletions

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -198,7 +198,7 @@ set_tool_paths() {
pause pause
fi fi
bspatch="$dir/bspatch" bspatch="$dir/bspatch"
if [[ $platform_arch == "x86_64" ]]; then if [[ $platform_arch != "armhf" ]]; then
dir_env="env LD_LIBRARY_PATH=$dir/lib " dir_env="env LD_LIBRARY_PATH=$dir/lib "
ideviceactivation="$dir_env" ideviceactivation="$dir_env"
idevicediagnostics="$dir_env" idevicediagnostics="$dir_env"
@ -381,13 +381,6 @@ set_tool_paths() {
ssh2+=" -F ./ssh_config" ssh2+=" -F ./ssh_config"
} }
fedora_warning() {
if [[ $platform_arch != "x86_64" ]] && (( fedora_ver >= 41 )); then
warn "Users on non-x86_64 Fedora 41 (and newer) may have issues connecting to iOS devices for activation/data."
print "* Workaround for now is to run this command: sudo update-crypto-policies --set DEFAULT:SHA1"
fi
}
prepare_udev_rules() { prepare_udev_rules() {
local owner="$1" local owner="$1"
local group="$2" local group="$2"
@ -5481,9 +5474,9 @@ device_ramdisk() {
device_rd_build= device_rd_build=
fi fi
build_id=$device_target_build build_id=$device_target_build
ramdisk_path="../saved/$device_type/ramdisk_$build_id"
device_fw_key_check device_fw_key_check
ipsw_get_url $build_id ipsw_get_url $build_id
ramdisk_path="../saved/$device_type/ramdisk_$build_id"
mkdir $ramdisk_path 2>/dev/null mkdir $ramdisk_path 2>/dev/null
for getcomp in "${comps[@]}"; do for getcomp in "${comps[@]}"; do
name=$(echo $device_fw_key | $jq -j '.keys[] | select(.image == "'$getcomp'") | .filename') name=$(echo $device_fw_key | $jq -j '.keys[] | select(.image == "'$getcomp'") | .filename')
@ -5520,7 +5513,9 @@ device_ramdisk() {
fi fi
log "$getcomp" log "$getcomp"
if [[ -e $ramdisk_path/$name ]]; then if [[ -n $ipsw_justboot_path ]]; then
unzip -o -j "$ipsw_justboot_path.ipsw" "${path}$name" -d .
elif [[ -e $ramdisk_path/$name ]]; then
cp $ramdisk_path/$name . cp $ramdisk_path/$name .
else else
"$dir/pzb" -g "${path}$name" -o "$name" "$ipsw_url" "$dir/pzb" -g "${path}$name" -o "$name" "$ipsw_url"
@ -6403,7 +6398,6 @@ menu_appmanage() {
local back local back
menu_print_info menu_print_info
fedora_warning
while [[ -z "$mode" && -z "$back" ]]; do while [[ -z "$mode" && -z "$back" ]]; do
menu_items=("Install IPA (AppSync)" "List User Apps" "List System Apps" "List All Apps" "Go Back") menu_items=("Install IPA (AppSync)" "List User Apps" "List System Apps" "List All Apps" "Go Back")
print " > Main Menu > App Management" print " > Main Menu > App Management"
@ -6428,7 +6422,6 @@ menu_datamanage() {
local back local back
menu_print_info menu_print_info
fedora_warning
print "* Note: For \"Raw File System\" your device must be jailbroken and have AFC2" print "* Note: For \"Raw File System\" your device must be jailbroken and have AFC2"
print "* For most jailbreaks, install \"Apple File Conduit 2\" in Cydia/Zebra/Sileo" print "* For most jailbreaks, install \"Apple File Conduit 2\" in Cydia/Zebra/Sileo"
print "* Note 2: The \"Erase All Content and Settings\" option works on iOS 9+ only" print "* Note 2: The \"Erase All Content and Settings\" option works on iOS 9+ only"
@ -8026,7 +8019,6 @@ menu_power() {
while [[ -z "$mode" && -z "$back" ]]; do while [[ -z "$mode" && -z "$back" ]]; do
menu_items=("Shutdown Device" "Restart Device" "Enter Recovery Mode" "Go Back") menu_items=("Shutdown Device" "Restart Device" "Enter Recovery Mode" "Go Back")
menu_print_info menu_print_info
fedora_warning
print " > Main Menu > Other Utilities > Power Options" print " > Main Menu > Other Utilities > Power Options"
input "Select an option:" input "Select an option:"
select opt in "${menu_items[@]}"; do select opt in "${menu_items[@]}"; do
@ -8504,7 +8496,6 @@ device_activate() {
iPhone1* ) print "* For hacktivation, go to \"Restore/Downgrade\" instead.";; iPhone1* ) print "* For hacktivation, go to \"Restore/Downgrade\" instead.";;
esac esac
fi fi
fedora_warning
$ideviceactivation activate $ideviceactivation activate
if [[ $device_type == "iPod"* ]] && (( device_det <= 3 )); then if [[ $device_type == "iPod"* ]] && (( device_det <= 3 )); then
$ideviceactivation itunes $ideviceactivation itunes
@ -8694,7 +8685,7 @@ menu_justboot() {
local vers local vers
while [[ -z "$mode" && -z "$back" ]]; do while [[ -z "$mode" && -z "$back" ]]; do
menu_items=("Enter Build Version" "Custom Bootargs") menu_items=("Enter Build Version" "Select IPSW" "Custom Bootargs")
if [[ -n $vers ]]; then if [[ -n $vers ]]; then
menu_items+=("Just Boot") menu_items+=("Just Boot")
fi fi
@ -8706,15 +8697,18 @@ menu_justboot() {
echo echo
if [[ -n $vers ]]; then if [[ -n $vers ]]; then
print "* Build Version entered: $vers" print "* Build Version entered: $vers"
elif [[ -n $ipsw_justboot_path ]]; then
print "* Selected IPSW: $ipsw_justboot_path"
print "* IPSW Version: $device_target_vers-$device_target_build"
else else
print "* Enter build version to continue" print "* Enter build version or select IPSW to continue"
fi fi
echo echo
if [[ -n $device_justboot_bootargs ]]; then if [[ -n $device_justboot_bootargs ]]; then
print "* Custom Bootargs: $device_justboot_bootargs" print "* Custom Bootargs: $device_justboot_bootargs"
else else
print "* You may enter custom bootargs (optional, experimental option)"
print "* Default Bootargs: -v pio-error=0" print "* Default Bootargs: -v pio-error=0"
print "* You may enter custom bootargs (optional, advanced option)"
fi fi
echo echo
input "Select an option:" input "Select an option:"
@ -8726,8 +8720,21 @@ menu_justboot() {
"Enter Build Version" ) "Enter Build Version" )
print "* Enter the build version of your device's current iOS version to boot." print "* Enter the build version of your device's current iOS version to boot."
device_enter_build device_enter_build
case $device_rd_build in
*[bcdefgkmpquv] )
log "iOS beta detected. Entering build version is not supported. Select the IPSW instead."
pause
continue
;;
esac
ipsw_justboot_path=
vers="$device_rd_build" vers="$device_rd_build"
;; ;;
"Select IPSW" )
menu_ipsw_browse
ipsw_justboot_path="$ipsw_path"
vers="$device_target_build"
;;
"Custom Bootargs" ) read -p "$(input 'Enter custom bootargs: ')" device_justboot_bootargs;; "Custom Bootargs" ) read -p "$(input 'Enter custom bootargs: ')" device_justboot_bootargs;;
"Just Boot" ) mode="device_justboot";; "Just Boot" ) mode="device_justboot";;
"Go Back" ) back=1;; "Go Back" ) back=1;;