Some changes

This commit is contained in:
LukeZGD 2022-07-07 14:21:53 +08:00
parent d151d71aac
commit 8942de72ea
4 changed files with 44 additions and 26 deletions

View File

@ -79,8 +79,7 @@ SetToolPaths() {
if [[ $platform == "linux" ]]; then
irecovery="env LD_LIBRARY_PATH=./resources/lib $irecovery"
irecovery2="env LD_LIBRARY_PATH=./resources/lib $irecovery2"
# openssl
irecovery2="env LD_LIBRARY_PATH=../lib $irecovery2"
opensslver=$(openssl version | awk '{print $2}' | cut -c -3)
if [[ $opensslver == "3"* ]]; then
cherrybin="env LD_LIBRARY_PATH=../resources/lib $cherrybin"
@ -103,14 +102,26 @@ SetToolPaths() {
}
SaveExternal() {
if [[ -d ./resources/$2 ]]; then
local Link
local Name
local SHA1
if [[ $1 == "ipwndfu" ]]; then
Link=https://github.com/LukeZGD/ipwndfu/archive/6e67c9e28a5f7f63f179dea670f7f858712350a0.zip
Name=ipwndfu
SHA1=61333249eb58faebbb380c4709384034ce0e019a
elif [[ $1 == "ch3rryflower" ]]; then
Link=https://web.archive.org/web/20210529174714if_/https://codeload.github.com/dora2-iOS/ch3rryflower/zip/316d2cdc5351c918e9db9650247b91632af3f11f
Name=ch3rryflower
SHA1=790d56db354151b9740c929e52c097ba57f2929d
fi
if [[ -d ./resources/$Name ]]; then
return
fi
cd tmp
SaveFile $1 $2.zip $3
SaveFile $Link $Name.zip $SHA1
cd ../resources
unzip -q ../tmp/$2.zip -d .
mv $2* $2
unzip -q ../tmp/$Name.zip -d .
mv $Name* $Name
cd ..
}
@ -130,7 +141,7 @@ InstallDepends() {
mkdir resources/lib tmp 2>/dev/null
cd resources
cp lib/*.so.1.1 ../tmp 2>/dev/null
rm -rf ipwndfu lib/*
rm -rf lib/*
cp ../tmp/*.so.1.1 lib/ 2>/dev/null
cd ../tmp
@ -173,9 +184,8 @@ InstallDepends() {
xcode-select --install
libimobiledevice=("https://github.com/LukeZGD/iOS-OTA-Downgrader-Keys/releases/download/tools/libimobiledevice_macos.zip" "66a49e4f69757a3d9dc51109a8e4651020bfacb8")
Echo "* iOS-OTA-Downgrader provides a copy of libimobiledevice and libirecovery by default"
Echo "* In case that problems occur, try installing them from Homebrew"
Echo "* The script will detect this automatically and will use the Homebrew versions of the tools"
Echo "* Install using this command: 'brew install libimobiledevice libirecovery'"
Echo "* In case that problems occur, try installing them from Homebrew or MacPorts"
Echo "* The script will detect this automatically and will use the Homebrew/MacPorts versions of the tools"
elif [[ $platform == "win" ]]; then
pacman -Sy --noconfirm --needed ca-certificates curl openssh unzip zip

View File

@ -137,10 +137,6 @@ GetDeviceValues() {
BasebandURL=$(cat $Firmware/11D257/url)
Baseband="ICE3_04.12.09_BOOT_02.13.Release.bbfw"
BasebandSHA1="007365a5655ac2f9fbd1e5b6dba8f4be0513e364"
if [[ $ProductType == "iPhone3,1" ]]; then
Log "iPhone 4 GSM detected. iPhone4Down functions enabled."
Echo "* This script uses ch3rryflower by dora2iOS"
fi
elif [[ $ProductType == "iPad2"* || $ProductType == "iPad3"* || $ProductType == "iPad4,1" ||
$ProductType == "iPad4,4" || $ProductType == "iPod5,1" ]]; then
@ -151,7 +147,10 @@ GetDeviceValues() {
if [[ $ProductType == "iPhone3"* ]]; then
DeviceProc=4
if [[ $ProductType != "iPhone3,1" ]]; then
if [[ $ProductType == "iPhone3,1" ]]; then
Log "iPhone 4 GSM detected. iPhone4Down functions enabled."
Echo "* This script uses ch3rryflower by dora2iOS"
else
Log "$ProductType detected. Your device is not supported by ch3rryflower."
Echo "* Functions will be limited to entering kDFU and restoring with blobs."
fi
@ -220,7 +219,7 @@ EnterPwnDFU() {
done
else
pwnDFUTool="ipwndfu"
SaveExternal https://github.com/LukeZGD/ipwndfu/archive/6e67c9e28a5f7f63f179dea670f7f858712350a0.zip ipwndfu 61333249eb58faebbb380c4709384034ce0e019a
SaveExternal ipwndfu
fi
Log "Entering pwnDFU mode with: $pwnDFUTool"
@ -232,10 +231,11 @@ EnterPwnDFU() {
Log "Running rmsigchks.py..."
$rmsigchks
pwnDFUDevice=$?
else
SendiBSS=1
fi
cd ../..
else
cd ../..
SendPwnediBSS
fi
else
$pwnDFUTool -p
pwnDFUDevice=$?
@ -268,6 +268,8 @@ EnterPwnDFU() {
Log "Warning - Failed to detect device in pwnDFU mode."
Echo "* If the device entered pwnDFU mode successfully, you may continue"
Echo "* If entering pwnDFU failed, you may have to force restart your device and start over"
Input "Press Enter/Return to continue (or press Ctrl+C to cancel)"
read -s
fi
}
@ -285,7 +287,7 @@ Recovery() {
if [[ $RecoveryDFU == 'N' || $RecoveryDFU == 'n' ]]; then
Log "Exiting recovery mode."
$irecovery -n
exit 0
ExitWin 0
fi
Echo "* Hold TOP and HOME buttons for 10 seconds."
@ -310,7 +312,7 @@ RecoveryExit() {
Log "Exiting recovery mode."
$irecovery -n
fi
exit 0
ExitWin 0
}
PatchiBSS() {
@ -335,7 +337,7 @@ PatchiBSS() {
$bspatch saved/$ProductType/$iBSS.dfu tmp/pwnediBSS resources/patches/$iBSS.patch
}
SendPwnediBSS() {
SendPwnediBSSA5() {
Echo "* Make sure that your device is in pwnDFU mode using an Arduino+USB Host Shield!"
Echo "* This option will not work if your device is not in pwnDFU mode."
Input "Press Enter/Return to continue (or press Ctrl+C to cancel)"
@ -348,12 +350,11 @@ SendPwnediBSS() {
Log "No iBSS option enabled by user."
return
fi
echo
Input "Send iBSS Option"
Echo "* To send pwned iBSS using ipwndfu, select Y. (does not work on ARM Macs)"
Echo "* To let futurerestore send iBSS, select N. (likely does not work)"
Echo "* For macOS >=12.3, install python2 first before selecting ipwndfu."
Echo "* For macOS 12 and newer, install python2 first before selecting ipwndfu."
Echo "* This option is enabled by default (Y)."
read -p "$(Input 'Enable this option? (Y/n):')" SendiBSS
if [[ $SendiBSS == 'N' || $SendiBSS == 'n' ]]; then
@ -361,8 +362,11 @@ SendPwnediBSS() {
SendiBSS=1
return
fi
SendPwnediBSS
}
SaveExternal https://github.com/LukeZGD/ipwndfu/archive/6e67c9e28a5f7f63f179dea670f7f858712350a0.zip ipwndfu 61333249eb58faebbb380c4709384034ce0e019a
SendPwnediBSS() {
SaveExternal ipwndfu
PatchiBSS
cd resources/ipwndfu
Log "Sending iBSS..."

View File

@ -98,6 +98,10 @@ DowngradeOther() {
Log "Getting firmware keys for $ProductType-$BuildVer"
mkdir -p resources/firmware/$ProductType/$BuildVer 2>/dev/null
curl -L https://github.com/LukeZGD/iOS-OTA-Downgrader-Keys/raw/master/$ProductType/$BuildVer/index.html -o tmp/index.html
if [[ $(cat tmp/index.html | grep -c "$BuildVer") != 1 ]]; then
curl -L https://api.m1sta.xyz/wikiproxy/$ProductType/$BuildVer -o tmp/index.html
[[ $(cat tmp/index.html | grep -c "$BuildVer") != 1 ]] && Error "Failed to download firmware keys, cannot proceed."
fi
mv tmp/index.html resources/firmware/$ProductType/$BuildVer
fi

View File

@ -112,7 +112,7 @@ Main() {
mkdir tmp
if [[ $ProductType == "iPhone3,1" ]]; then
SaveExternal https://web.archive.org/web/20210529174714if_/https://codeload.github.com/dora2-iOS/ch3rryflower/zip/316d2cdc5351c918e9db9650247b91632af3f11f ch3rryflower 790d56db354151b9740c929e52c097ba57f2929d
SaveExternal ch3rryflower
fi
if [[ -n $1 && $1 != "NoColor" && $1 != "NoDevice" && $1 != "PwnedDevice" ]]; then
@ -258,7 +258,7 @@ Main() {
case $opt in
"kDFU mode" ) break;;
"DFU mode (A4/A6)" ) EnterPwnDFU; break;;
"pwnDFU mode (A5)" ) SendPwnediBSS; break;;
"pwnDFU mode (A5)" ) SendPwnediBSSA5; break;;
* ) exit 0;;
esac
done