diff --git a/README.md b/README.md index fce02d9..36e62a0 100644 --- a/README.md +++ b/README.md @@ -123,8 +123,6 @@ - **macOS** 10.11 and newer (10.12 and newer recommended for full support) - [**Ubuntu**](https://ubuntu.com/) 22.04 and newer, and Ubuntu-based distros like [Linux Mint](https://www.linuxmint.com/) - [**Fedora**](https://getfedora.org/) 37 and newer, Fedora Atomic (Silverblue, Kinoite, etc.) also supported - - Users on Fedora 41 (or newer) may have issues connecting to older iOS devices. This applies to devices on lower than iOS 4. - - Workaround for now is to run this command: `sudo update-crypto-policies --set DEFAULT:SHA1` - [**Debian**](https://www.debian.org/) 12 Bookworm and newer, Sid, and Debian-based distros - [**Arch Linux**](https://www.archlinux.org/) and Arch-based distros like [EndeavourOS](https://endeavouros.com/) - Less tested distros: [**openSUSE Tumbleweed**](https://get.opensuse.org/tumbleweed/), [**Gentoo**](https://www.gentoo.org/), [**Void Linux**](https://voidlinux.org/) @@ -148,6 +146,8 @@ - [libideviceactivation](https://github.com/LukeeGD/libideviceactivation) - libimobiledevice - [ideviceinstaller](https://github.com/LukeeGD/ideviceinstaller) - libimobiledevice - [ifuse](https://github.com/LukeeGD/ifuse) - libimobiledevice +- [static-cross-openssh](https://github.com/binary-manu/static-cross-openssh) - scp and ssh binaries (used on Linux only) +- [usbmuxd2](https://github.com/LukeZGD/usbmuxd2) - tihmstar; LukeZGD fork (used on Linux only) - [anisette-server](https://github.com/Dadoum/Provision) from Provision - Dadoum (used for sideloading on Linux) - [AltServer-Linux](https://github.com/NyaMisty/AltServer-Linux) - NyaMisty (used for sideloading on Linux) - [Sideloader](https://github.com/Dadoum/Sideloader) - Dadoum (used for sideloading on Linux) diff --git a/bin/linux/arm64/ideviceactivation b/bin/linux/arm64/ideviceactivation index 918390f..fb89e54 100755 Binary files a/bin/linux/arm64/ideviceactivation and b/bin/linux/arm64/ideviceactivation differ diff --git a/bin/linux/arm64/idevicebackup2 b/bin/linux/arm64/idevicebackup2 index 1628ee3..6ebb35d 100755 Binary files a/bin/linux/arm64/idevicebackup2 and b/bin/linux/arm64/idevicebackup2 differ diff --git a/bin/linux/arm64/idevicediagnostics b/bin/linux/arm64/idevicediagnostics index 3dafba4..018eb6f 100755 Binary files a/bin/linux/arm64/idevicediagnostics and b/bin/linux/arm64/idevicediagnostics differ diff --git a/bin/linux/arm64/ideviceenterrecovery b/bin/linux/arm64/ideviceenterrecovery index b353f34..02ef531 100755 Binary files a/bin/linux/arm64/ideviceenterrecovery and b/bin/linux/arm64/ideviceenterrecovery differ diff --git a/bin/linux/arm64/ideviceinfo b/bin/linux/arm64/ideviceinfo index e704701..e1a0bba 100755 Binary files a/bin/linux/arm64/ideviceinfo and b/bin/linux/arm64/ideviceinfo differ diff --git a/bin/linux/arm64/ideviceinstaller b/bin/linux/arm64/ideviceinstaller index c10f97a..4cd8cab 100755 Binary files a/bin/linux/arm64/ideviceinstaller and b/bin/linux/arm64/ideviceinstaller differ diff --git a/bin/linux/arm64/idevicepair b/bin/linux/arm64/idevicepair index 5ebcf04..38c88d4 100755 Binary files a/bin/linux/arm64/idevicepair and b/bin/linux/arm64/idevicepair differ diff --git a/bin/linux/arm64/usbmuxd b/bin/linux/arm64/usbmuxd deleted file mode 100755 index b7bf349..0000000 Binary files a/bin/linux/arm64/usbmuxd and /dev/null differ diff --git a/bin/linux/arm64/usbmuxd2 b/bin/linux/arm64/usbmuxd2 new file mode 100755 index 0000000..8327db6 Binary files /dev/null and b/bin/linux/arm64/usbmuxd2 differ diff --git a/bin/linux/x86_64/ideviceactivation b/bin/linux/x86_64/ideviceactivation index 24f7569..067a138 100755 Binary files a/bin/linux/x86_64/ideviceactivation and b/bin/linux/x86_64/ideviceactivation differ diff --git a/bin/linux/x86_64/idevicebackup2 b/bin/linux/x86_64/idevicebackup2 index 75e7fbb..b7b7161 100755 Binary files a/bin/linux/x86_64/idevicebackup2 and b/bin/linux/x86_64/idevicebackup2 differ diff --git a/bin/linux/x86_64/idevicediagnostics b/bin/linux/x86_64/idevicediagnostics index 93dd84e..f143a3d 100755 Binary files a/bin/linux/x86_64/idevicediagnostics and b/bin/linux/x86_64/idevicediagnostics differ diff --git a/bin/linux/x86_64/ideviceenterrecovery b/bin/linux/x86_64/ideviceenterrecovery index e2faeec..34ad3f3 100755 Binary files a/bin/linux/x86_64/ideviceenterrecovery and b/bin/linux/x86_64/ideviceenterrecovery differ diff --git a/bin/linux/x86_64/ideviceinfo b/bin/linux/x86_64/ideviceinfo index 0db14cf..2bad85b 100755 Binary files a/bin/linux/x86_64/ideviceinfo and b/bin/linux/x86_64/ideviceinfo differ diff --git a/bin/linux/x86_64/ideviceinstaller b/bin/linux/x86_64/ideviceinstaller index d66b6ad..05d32fb 100755 Binary files a/bin/linux/x86_64/ideviceinstaller and b/bin/linux/x86_64/ideviceinstaller differ diff --git a/bin/linux/x86_64/idevicepair b/bin/linux/x86_64/idevicepair index b960e24..c3aad31 100755 Binary files a/bin/linux/x86_64/idevicepair and b/bin/linux/x86_64/idevicepair differ diff --git a/bin/linux/x86_64/lib/libcrypto.so.1.1 b/bin/linux/x86_64/lib/libcrypto.so.1.1 new file mode 100644 index 0000000..2caf7aa Binary files /dev/null and b/bin/linux/x86_64/lib/libcrypto.so.1.1 differ diff --git a/bin/linux/x86_64/lib/libssl.so.1.1 b/bin/linux/x86_64/lib/libssl.so.1.1 new file mode 100644 index 0000000..0fb2394 Binary files /dev/null and b/bin/linux/x86_64/lib/libssl.so.1.1 differ diff --git a/bin/linux/x86_64/usbmuxd b/bin/linux/x86_64/usbmuxd deleted file mode 100755 index 791e3a2..0000000 Binary files a/bin/linux/x86_64/usbmuxd and /dev/null differ diff --git a/bin/linux/x86_64/usbmuxd2 b/bin/linux/x86_64/usbmuxd2 new file mode 100755 index 0000000..5618975 Binary files /dev/null and b/bin/linux/x86_64/usbmuxd2 differ diff --git a/restore.sh b/restore.sh index e1e2806..f21b57f 100755 --- a/restore.sh +++ b/restore.sh @@ -83,7 +83,6 @@ List of options: --debug For script debugging (set -x and debug mode) --dfuhelper Launch to DFU Mode Helper only --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 --exit-recovery Attempt to exit recovery mode --help Display this help message @@ -155,6 +154,7 @@ set_tool_paths() { "jammy" | "kinetic" ) ubuntu_ver=22;; "lunar" | "mantic" ) ubuntu_ver=23;; "noble" | "oracular" ) ubuntu_ver=24;; + "plucky" ) ubuntu_ver=25;; esac if [[ -z $ubuntu_ver ]]; then source /etc/upstream-release/lsb-release 2>/dev/null @@ -183,10 +183,6 @@ set_tool_paths() { if [[ $(command -v rpm-ostree) ]]; then distro="fedora-atomic" fi - if (( fedora_ver >= 41 )); then - warn "Users on Fedora 41 (or newer) may have issues connecting to older iOS devices. This applies to devices on lower than iOS 4." - print "* Workaround for now is to run this command: sudo update-crypto-policies --set FEDORA40" - fi elif [[ $ID == "opensuse-tumbleweed" ]]; then distro="opensuse" elif [[ $ID == "gentoo" || $ID_LIKE == "gentoo" || $ID == "pentoo" ]]; then @@ -259,17 +255,20 @@ set_tool_paths() { error "Failed to find bin directory for $platform_arch, found $(ls -x ../bin/linux) instead." \ "* Download the \"linux_$platform_arch\" or \"complete\" version to continue (or do a git clone)" fi - if [[ -z $device_disable_usbmuxd ]]; then - trap "clean_usbmuxd" EXIT - fi - if [[ -z $device_disable_usbmuxd && $othertmp == 0 ]]; then + trap "clean_usbmuxd" EXIT + if [[ $othertmp == 0 ]]; then if [[ $(command -v systemctl 2>/dev/null) ]]; then sudo systemctl stop usbmuxd fi #sudo killall usbmuxd 2>/dev/null #sleep 1 - log "Running usbmuxd" - sudo -b $dir/usbmuxd -pf &>../saved/usbmuxd.log + if [[ $platform_arch == "armhf" ]]; then + log "Running usbmuxd" + sudo -b $dir/usbmuxd -pf &>../saved/usbmuxd.log + else + log "Running usbmuxd2" + sudo -b $dir/usbmuxd2 &>../saved/usbmuxd.log + fi elif [[ $othertmp != 0 ]]; then log "Detected existing tmp folder(s), there might be other Legacy iOS Kit instance(s) running" log "Not running usbmuxd" @@ -1651,8 +1650,9 @@ device_enter_mode() { tool_pwned=$? log "gaster reset" $gaster reset - elif [[ $device_type == "iPod2,1" || $2 == "alloc8" ]]; then + elif [[ $device_type == "iPod2,1" || $mode == "device_alloc8" ]]; then # touch 2 uses ipwndfu + # also installing alloc8 requires pwning with ipwndfu device_ipwndfu pwn tool_pwned=$? elif [[ $device_proc == 4 ]] || [[ $device_proc == 6 && $platform == "macos" && $platform_arch == "x86_64" ]]; then @@ -1683,7 +1683,7 @@ device_enter_mode() { device_ipwndfu pwn tool_pwned=$? elif [[ $device_proc == 6 ]]; then - # A6 mac uses ipwnder_lite + # A6 asi mac uses ipwnder_lite log "Placing device to pwnDFU mode using ipwnder_lite" $ipwnder -d tool_pwned=$? @@ -7587,15 +7587,15 @@ menu_ipsw_browse() { local text="Target" local picker - local menu_items=($(ls ../$device_type*.ipsw 2>/dev/null)) + local menu_items=($(ls ../$device_type*Restore.ipsw 2>/dev/null)) if [[ $1 == "base" ]]; then text="Base" menu_items=() case $device_type in - iPhone3,[13] ) menu_items=($(ls ../${device_type}_7.1.2*.ipsw 2>/dev/null));; - iPad1,1 | iPod3,1 ) menu_items=($(ls ../${device_type}_5.1.1*.ipsw 2>/dev/null));; - iPhone5* ) menu_items=($(ls ../${device_type}_7*.ipsw 2>/dev/null));; - * ) menu_items=($(ls ../${device_type}_7.1*.ipsw 2>/dev/null));; + iPhone3,[13] ) menu_items=($(ls ../${device_type}_7.1.2*Restore.ipsw 2>/dev/null));; + iPad1,1 | iPod3,1 ) menu_items=($(ls ../${device_type}_5.1.1*Restore.ipsw 2>/dev/null));; + iPhone5* ) menu_items=($(ls ../${device_type}_7*Restore.ipsw 2>/dev/null));; + * ) menu_items=($(ls ../${device_type}_7.1*Restore.ipsw 2>/dev/null));; esac fi case $1 in @@ -7608,7 +7608,7 @@ menu_ipsw_browse() { if [[ $versionc == "$device_latest_vers" ]]; then menu_items=() elif [[ -n $versionc ]]; then - menu_items=($(ls ../${device_type}_${versionc}*.ipsw 2>/dev/null)) + menu_items=($(ls ../${device_type}_${versionc}*Restore.ipsw 2>/dev/null)) fi menu_items+=("Open File Picker" "Enter Path" "Go Back") @@ -7637,7 +7637,7 @@ menu_ipsw_browse() { newpath="$($cocoadialog fileselect --with-extensions ipsw)" else menu_zenity_check - newpath="$($zenity --file-selection --file-filter='IPSW | *.ipsw' --title="Select $text IPSW file")" + newpath="$($zenity --file-selection --file-filter='IPSW | *Restore.ipsw' --title="Select $text IPSW file")" fi fi if [[ ! -s "$newpath" ]]; then @@ -8144,7 +8144,7 @@ device_ssh() { } device_alloc8() { - device_enter_mode pwnDFU alloc8 + device_enter_mode pwnDFU device_ipwndfu alloc8 log "Done!" print "* This may take several tries. It can fail a lot with \"Operation timed out\" error." @@ -8474,7 +8474,15 @@ device_activate() { print "* For hacktivation, go to \"Restore/Downgrade\" instead." fi fi - "$dir/ideviceactivation" activate + if [[ $platform_arch != "x86_64" ]] && (( fedora_ver >= 41 )); then + warn "Users on Fedora 41 (or newer) may have issues connecting to older iOS devices. This applies to devices on lower than iOS 4." + print "* Workaround for now is to run this command: sudo update-crypto-policies --set DEFAULT:SHA1" + fi + if [[ $platform == "linux" && $platform_arch == "x86_64" ]]; then + LD_LIBRARY_PATH=$dir/lib "$dir/ideviceactivation" activate + else + "$dir/ideviceactivation" activate + fi case $device_type in iPod[123],1 ) if (( device_det <= 3 )); then @@ -9143,7 +9151,6 @@ for i in "$@"; do "--memory" ) ipsw_memory=1;; "--disable-bbupdate" ) device_disable_bbupdate=1;; "--disable-sudoloop" ) device_disable_sudoloop=1;; - "--disable-usbmuxd" ) device_disable_usbmuxd=1;; "--activation-records" ) device_actrec=1;; "--ipsw-hacktivate" ) ipsw_hacktivate=1;; "--skip-ibss" ) device_skip_ibss=1;;