From 9ab3fd49680f7e1aeb3764546d98f9d7ee0c2302 Mon Sep 17 00:00:00 2001
From: LukeZGD <26163116+LukeZGD@users.noreply.github.com>
Date: Wed, 4 Jan 2023 16:25:18 +0800
Subject: [PATCH] An update
---
README.md | 5 +++--
resources/depends.sh | 5 +++--
resources/device.sh | 4 ++--
restore.sh | 22 ++++++++++++----------
4 files changed, 20 insertions(+), 16 deletions(-)
diff --git a/README.md b/README.md
index 6b5fa55..3c137a3 100644
--- a/README.md
+++ b/README.md
@@ -4,7 +4,7 @@
- **iPhone4Down: Downgrade your iPhone 4 on Linux/Windows (using powdersn0w)**
- **Linux, macOS, and Windows** are supported
- Windows usage is not recommended
- - iPhone4Down focuses on Linux support - use [cherryflowerJB](https://web.archive.org/web/20210701000000*/https://dora2ios.web.app/CFJB/) or [powdersn0w](https://dora2ios.web.app/konayuki/index.html) on macOS instead
+ - iPhone4Down focuses on Linux support - use [cherryflowerJB](https://web.archive.org/web/20210322151509/https://dora2ios.web.app/CFJB/) or [powdersn0w](https://web.archive.org/web/20221213010446/https://dora2ios.web.app/konayuki/index.html) on macOS instead
- **Read the ["How to Use" wiki page](https://github.com/LukeZGD/iOS-OTA-Downgrader/wiki/How-to-Use) for a step-by-step tutorial**
- **Read the ["Troubleshooting" wiki page](https://github.com/LukeZGD/iOS-OTA-Downgrader/wiki/Troubleshooting) for tips, frequent questions, and troubleshooting**
@@ -23,7 +23,7 @@
- iPhone 5C can still be restored to versions that you have SHSH blobs for
- iPhone 4 devices also support restoring with SHSH blobs
- **iPhone4Down supports iPhone 4 GSM and CDMA (iPhone3,1 and iPhone3,3)**
- - iPhone3,3 support is not tested. Use [powdersn0w](https://dora2ios.web.app/konayuki/index.html) on macOS instead
+ - iPhone3,3 support is not tested. Use [powdersn0w](https://web.archive.org/web/20221213010446/https://dora2ios.web.app/konayuki/index.html) on macOS instead
@@ -72,6 +72,7 @@
## Supported OS versions/distros
+#### Supported architectures: x86_64, armhf (Linux), arm64 (macOS only for now)
- [**Ubuntu**](https://ubuntu.com/) 20.04 and newer, and Ubuntu-based distros like [Linux Mint](https://www.linuxmint.com/)
- [**Arch Linux**](https://www.archlinux.org/) and Arch-based distros like [EndeavourOS](https://endeavouros.com/)
- [**Fedora**](https://getfedora.org/) 36 and newer
diff --git a/resources/depends.sh b/resources/depends.sh
index cca9e00..ac75db0 100755
--- a/resources/depends.sh
+++ b/resources/depends.sh
@@ -181,7 +181,7 @@ SaveExternal() {
Name=ch3rryflower
SHA1=790d56db354151b9740c929e52c097ba57f2929d
elif [[ $1 == "powdersn0w" ]]; then
- Link=https://dora2ios.github.io/download/konayuki/powdersn0w_v2.0b3.zip
+ Link=https://web.archive.org/web/20220802230119if_/https://dora2ios.github.io/download/konayuki/powdersn0w_v2.0b3.zip
Name=powdersn0w
SHA1=c733aac4a0833558ef9f5517f2a11ca547110b6e
fi
@@ -252,7 +252,8 @@ InstallDepends() {
(( DebianVer >= 11 )) || [[ $DebianVer == "sid" ]]; then
[[ -n $UBUNTU_CODENAME ]] && sudo add-apt-repository -y universe
sudo apt update
- sudo apt install -y bsdiff curl jq libimobiledevice6 openssh-client python2 python3 unzip usbmuxd usbutils xmlstarlet xxd zenity zip
+ sudo apt install -y bsdiff curl jq libimobiledevice6 openssh-client python3 unzip usbmuxd usbutils xmlstarlet xxd zenity zip
+ [[ $DebianVer != "sid" ]] && sudo apt install -y python2
sudo systemctl enable --now udev systemd-udevd usbmuxd 2>/dev/null
elif [[ $ID == "fedora" || $ID == "nobara" ]] && (( VERSION_ID >= 36 )); then
diff --git a/resources/device.sh b/resources/device.sh
index 4bc478a..c7bbffe 100755
--- a/resources/device.sh
+++ b/resources/device.sh
@@ -229,7 +229,7 @@ EnterPwnDFU() {
local pwnD=1
local Selection=()
- if [[ $DeviceProc == 4 && $platform != "macos" ]]; then
+ if [[ $ProductType == "iPhone3,1" && $platform != "macos" ]]; then
pwnDFUTool="$pwnedDFU"
if [[ $platform == "win" ]]; then
Log "iPhone 4 device detected in DFU mode."
@@ -239,7 +239,7 @@ EnterPwnDFU() {
read -s
return
fi
- elif [[ $DeviceProc == 7 ]]; then
+ elif [[ $DeviceProc == 4 || $DeviceProc == 7 ]]; then
[[ $platform == "macos" ]] && Selection+=("ipwnder_lite" "iPwnder32")
Input "PwnDFU Tool Option"
Echo "* This option selects what tool to use to put your device in pwnDFU mode."
diff --git a/restore.sh b/restore.sh
index 7616c6b..8d81374 100755
--- a/restore.sh
+++ b/restore.sh
@@ -86,7 +86,7 @@ Main() {
fi
if [[ ! $platform ]]; then
- Error "Platform unknown/not supported."
+ Error "Platform is unknown/not supported." "Supported platforms: macOS, Linux, Windows"
fi
if [[ -d .git ]]; then
@@ -137,17 +137,19 @@ Main() {
fi
fi
- if [[ $platform == "macos" && $(uname -m) != "x86_64" ]]; then
- Log "Apple Silicon Mac detected. Support may be limited, proceed at your own risk."
- elif [[ $platform == "linux" && $(uname -m) == "a"* ]]; then
- Log "Linux ARM detected. Support may be limited, proceed at your own risk."
- Echo "* Note that only 32-bit (armhf) is compiled natively for now. For 64-bit, box64 might work."
- if [[ $(getconf LONG_BIT) != 64 ]]; then
- LinuxARM=1
+ if [[ $(uname -m) != "x86_64" && $(uname -m) == "a"* ]]; then
+ if [[ $platform == "macos" ]]; then
+ Log "Apple Silicon Mac detected. Support may be limited, proceed at your own risk."
+ elif [[ $platform == "linux" ]]; then
+ Log "Linux ARM ($(uname -m)) detected. Support may be limited, proceed at your own risk."
+ Echo "* Note that only 32-bit (armhf) is compiled natively for now. For 64-bit, get the x86_64 version and box64 might work."
+ [[ $(getconf LONG_BIT) != 64 ]] && LinuxARM=1
+ elif [[ $platform == "win" ]]; then
+ Log "WARNING - Windows ARM is not tested or supported."
+ Echo "* You must be using Windows 11 on ARM or newer."
fi
-
elif [[ $(uname -m) != "x86_64" ]]; then
- Error "Only 64-bit (x86_64) distributions are supported."
+ Error "Platform architecture ($(uname -m)) is not supported." "Supported architectures: x86_64, armhf (Linux), arm64 (macOS only for now)"
fi
if [[ $1 == "Install" || -z $bspatch || ! -e $ideviceinfo || ! -e $irecoverychk ||