update limd and plistbuddy bins for linux, fix pyenv python2 compile on gcc15, prepare idevicebackup stuff

- most of the stuff here is for fixing things on arch/manjaro especially with the libxml2 update
- as well as gcc 15 failing build of python2 since defaults moved to c23
- limd bins are now compiled with libressl 2.2.7 and the .so libs are included (dynamic instead of static since the file sizes will be too large). this should fix potential lockdownd ssl errors
- added idevicebackup stuff for backup/restore on ios 3. backup works, but restore doesnt seem to work so its still disabled for now
This commit is contained in:
LukeeGD
2025-05-26 16:17:56 +08:00
parent aa93212ada
commit a6cc59e4b5
35 changed files with 34 additions and 19 deletions

Binary file not shown.

Binary file not shown.

BIN
bin/linux/arm64/idevicebackup Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
bin/linux/x86_64/idevicebackup Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
bin/macos/arm64/idevicebackup Executable file

Binary file not shown.

BIN
bin/macos/idevicebackup Executable file

Binary file not shown.

View File

@ -348,10 +348,6 @@ set_tool_paths() {
pause pause
fi fi
bspatch="$dir/bspatch" bspatch="$dir/bspatch"
dir_env="env LD_LIBRARY_PATH=$dir/lib "
ideviceactivation="$dir_env"
idevicediagnostics="$dir_env"
ideviceinstaller="$dir_env"
PlistBuddy="$dir/PlistBuddy" PlistBuddy="$dir/PlistBuddy"
sha1sum="$(command -v sha1sum)" sha1sum="$(command -v sha1sum)"
tsschecker="$dir/tsschecker" tsschecker="$dir/tsschecker"
@ -360,6 +356,7 @@ set_tool_paths() {
ssh2="$dir/ssh" ssh2="$dir/ssh"
cp $ssh2 . cp $ssh2 .
chmod +x ssh chmod +x ssh
export LD_LIBRARY_PATH="$dir/lib"
# live cd/usb check # live cd/usb check
if [[ $(id -u $USER) == 999 || $USER == "liveuser" ]]; then if [[ $(id -u $USER) == 999 || $USER == "liveuser" ]]; then
@ -2170,11 +2167,13 @@ device_ipwndfu() {
print "* You may also install python2 from pyenv if something is wrong with system python2" print "* You may also install python2 from pyenv if something is wrong with system python2"
print "* Install pyenv by running: curl https://pyenv.run | bash" print "* Install pyenv by running: curl https://pyenv.run | bash"
print "* Install python2 from pyenv by running: pyenv install 2.7.18" print "* Install python2 from pyenv by running: pyenv install 2.7.18"
print "* Also run this if it errors on pyenv install: export CFLAGS=\"-std=c17\""
elif [[ -n "$python2" && $device_sudoloop == 1 ]]; then elif [[ -n "$python2" && $device_sudoloop == 1 ]]; then
p2_sudo="sudo" p2_sudo="sudo"
elif [[ -z "$python2" && ! -e "$pyenv2" ]]; then elif [[ -z "$python2" && ! -e "$pyenv2" ]]; then
warn "python2 is not installed. Attempting to install python2 before continuing" warn "python2 is not installed. Attempting to install python2 before continuing"
print "* Install python2 from pyenv by running: pyenv install 2.7.18" print "* Install python2 from pyenv by running: pyenv install 2.7.18"
print "* Also run this if it errors on pyenv install: export CFLAGS=\"-std=c17\""
if [[ -z "$pyenv" ]]; then if [[ -z "$pyenv" ]]; then
warn "pyenv is not installed. Attempting to install pyenv before continuing" warn "pyenv is not installed. Attempting to install pyenv before continuing"
print "* Install pyenv by running: curl https://pyenv.run | bash" print "* Install pyenv by running: curl https://pyenv.run | bash"
@ -2188,7 +2187,7 @@ device_ipwndfu() {
fi fi
log "Installing python2 using pyenv" log "Installing python2 using pyenv"
print "* This step may take some time - Be patient and let it run." print "* This step may take some time - Be patient and let it run."
"$pyenv" install 2.7.18 CFLAGS="-std=c17" "$pyenv" install 2.7.18
if [[ ! -e "$pyenv2" ]]; then if [[ ! -e "$pyenv2" ]]; then
warn "Cannot detect python2 from pyenv, its installation may have failed." warn "Cannot detect python2 from pyenv, its installation may have failed."
print "* Try installing pyenv and/or python2 manually:" print "* Try installing pyenv and/or python2 manually:"
@ -7178,7 +7177,7 @@ menu_datamanage() {
print "* Note 4: Backups do not include apps. Only some app data and settings" print "* Note 4: Backups do not include apps. Only some app data and settings"
print "* For dumping apps, go to: https://www.reddit.com/r/LegacyJailbreak/wiki/guides/crackingapps" print "* For dumping apps, go to: https://www.reddit.com/r/LegacyJailbreak/wiki/guides/crackingapps"
if (( device_det < 4 )) && [[ $device_det != 1 ]]; then if (( device_det < 4 )) && [[ $device_det != 1 ]]; then
warn "Device is on lower than iOS 4. Backup and Restore options are not available." warn "Device is on lower than iOS 4. Backup and Restore options are not available." # remove/enable when ios 3 idevicebackup stuff is fully working
else else
menu_items+=("Backup" "Restore") menu_items+=("Backup" "Restore")
fi fi
@ -7229,7 +7228,11 @@ menu_backup_restore() {
while [[ -z "$mode" && -z "$back" ]]; do while [[ -z "$mode" && -z "$back" ]]; do
menu_print_info menu_print_info
local backupdir="../saved/backups/${device_ecid}_${device_type}" local backups="backups"
if (( device_det <= 3 )); then
backups+="1"
fi
local backupdir="../saved/$backups/${device_ecid}_${device_type}"
if [[ ! -d $backupdir ]]; then if [[ ! -d $backupdir ]]; then
mkdir -p $backupdir mkdir -p $backupdir
fi fi
@ -10040,29 +10043,41 @@ device_fourthree_check() {
} }
device_backup_create() { device_backup_create() {
print "* A backup of your device will be created using idevicebackup2. Please see the notes above." local backups="backups"
local idevicebackup="idevicebackup2"
local args="--full"
if (( device_det <= 3 )); then
backups+="1"
idevicebackup="idevicebackup"
args=
fi
print "* A backup of your device will be created. Please see the notes above."
pause pause
device_backup="../saved/backups/${device_ecid}_${device_type}/$(date +%Y-%m-%d-%H%M)" device_backup="../saved/$backups/${device_ecid}_${device_type}/$(date +%Y-%m-%d-%H%M)"
mkdir -p $device_backup mkdir -p $device_backup
pushd "$(dirname $device_backup)" pushd "$(dirname $device_backup)"
dir="../../$dir" dir="../../$dir"
if [[ -n $dir_env ]]; then export LD_LIBRARY_PATH="$dir/lib"
dir_env="env LD_LIBRARY_PATH=$dir/lib " "$dir/$idevicebackup" backup $args "$(basename $device_backup)"
fi
$dir_env "$dir/idevicebackup2" backup --full "$(basename $device_backup)"
popd popd
} }
device_backup_restore() { device_backup_restore() {
local backups="backups"
local idevicebackup="idevicebackup2"
local args="--system --settings"
if (( device_det <= 3 )); then
backups+="1"
idevicebackup="idevicebackup"
args=
fi
print "* The selected backup $device_backup will be restored to the device." print "* The selected backup $device_backup will be restored to the device."
pause pause
device_backup="../saved/backups/${device_ecid}_${device_type}/$device_backup" device_backup="../saved/$backups/${device_ecid}_${device_type}/$device_backup"
pushd "$(dirname $device_backup)" pushd "$(dirname $device_backup)"
dir="../../$dir" dir="../../$dir"
if [[ -n $dir_env ]]; then export LD_LIBRARY_PATH="$dir/lib"
dir_env="env LD_LIBRARY_PATH=$dir/lib " "$dir/$idevicebackup" restore $args "$(basename $device_backup)"
fi
$dir_env "$dir/idevicebackup2" restore --system --settings "$(basename $device_backup)"
popd popd
} }
@ -10076,7 +10091,7 @@ device_erase() {
error "Not proceeding." error "Not proceeding."
fi fi
log "Proceeding." log "Proceeding."
$dir_env "$dir/idevicebackup2" erase "$dir/idevicebackup2" erase
} }
main() { main() {