From ea5df0c045a513f349acdcff4264bcf1640035c8 Mon Sep 17 00:00:00 2001 From: LukeZGD Date: Mon, 14 Feb 2022 16:08:57 +0800 Subject: [PATCH] Add ipwnder_lite for pwnDFU option not tested, so not sure if it works --- README.md | 1 + resources/depends.sh | 1 + resources/device.sh | 19 +++++++++++-------- resources/tools/ipwnder_macos | Bin 0 -> 39516 bytes 4 files changed, 13 insertions(+), 8 deletions(-) create mode 100755 resources/tools/ipwnder_macos diff --git a/README.md b/README.md index 4965a0c..64f29be 100644 --- a/README.md +++ b/README.md @@ -66,6 +66,7 @@ - bspatch - [ipwndfu](https://github.com/LukeZGD/ipwndfu) - LukeZGD fork - [iPwnder32](https://github.com/dora2-iOS/iPwnder32) - dora2ios +- [ipwnder_lite](https://github.com/dora2-iOS/ipwnder_lite) - dora2ios - [daibutsuCFW](https://github.com/dora2-iOS/daibutsuCFW) - dora2ios - [libimobiledevice](https://github.com/libimobiledevice/libimobiledevice) - libimobiledevice - [libirecovery](https://github.com/libimobiledevice/libirecovery) - libimobiledevice diff --git a/resources/depends.sh b/resources/depends.sh index 617441c..734f343 100755 --- a/resources/depends.sh +++ b/resources/depends.sh @@ -35,6 +35,7 @@ SetToolPaths() { futurerestore="./resources/tools/futurerestore_macos_$(uname -m)" [[ ! -e $futurerestore ]] && futurerestore="./resources/tools/futurerestore_macos_arm64" ipwnder32="./resources/tools/ipwnder32_macos" + ipwnder_lite="./resources/tools/ipwnder_macos" python="/usr/bin/python" zenity="./resources/tools/zenity_macos" fi diff --git a/resources/device.sh b/resources/device.sh index e1012b1..77ed26a 100755 --- a/resources/device.sh +++ b/resources/device.sh @@ -173,15 +173,18 @@ CheckM8() { local pwnDFUDevice local pwnD=1 - if [[ $platform == "macos" && $(uname -m) != "x86_64" ]]; then - pwnDFUTool="iPwnder32" - elif [[ $platform == "macos" ]]; then - Selection=("iPwnder32" "ipwndfu") - Input "Select pwnDFU tool to use (Select 1 if unsure):" + if [[ $platform == "macos" ]]; then + Selection=("iPwnder32" "ipwnder_lite" "ipwndfu") + Input "PwnDFU Tool Option" + Echo "* This option selects what tool to use to put your device in pwnDFU mode." + Echo "* If unsure, select 1 for Intel Macs, select 2 for Apple Silicon (M1) Macs." + Echo "* This option is set to iPwnder32 by default (1)." + Input "Select your option:" select opt in "${Selection[@]}"; do case $opt in + "ipwnder_lite") pwnDFUTool="$ipwnder_lite"; break;; "ipwndfu" ) pwnDFUTool="ipwndfu"; break;; - *) pwnDFUTool="iPwnder32"; break;; + * ) pwnDFUTool="$ipwnder32"; break;; esac done else @@ -204,8 +207,8 @@ CheckM8() { kDFU iBSS || echo pwnDFUDevice=$? fi - elif [[ $pwnDFUTool == "iPwnder32" ]]; then - $ipwnder32 -p + else + $pwnDFUTool -p pwnDFUDevice=$? fi [[ $DeviceProc == 7 ]] && pwnD=$($irecovery -q | grep -c "PWND") diff --git a/resources/tools/ipwnder_macos b/resources/tools/ipwnder_macos new file mode 100755 index 0000000000000000000000000000000000000000..288704810fe1b2c764e654972ba6d2be51abdadc GIT binary patch literal 39516 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 z zI`x30S8taOgm(H_1X%!}Rsx{(lOS^*+l+d=Ipz-}c0mf_uYCC}T8Zi!#6MKGkQJ{wJ^4V+n_MW{)?CXU# z^fZ8W@-$d(;hpu(Kol|hWdJ3e