Remove logging and some changes

Terminal output is more useful than those logs
This commit is contained in:
LukeeGD 2020-04-16 18:29:11 +08:00
parent 51c34b9b93
commit 81d8d43b07
2 changed files with 19 additions and 34 deletions

View File

@ -40,7 +40,7 @@
- [Lubuntu 18.04](http://cdimage.ubuntu.com/lubuntu/releases/18.04/release/) live USB - [Lubuntu 18.04](http://cdimage.ubuntu.com/lubuntu/releases/18.04/release/) live USB
- [Arch Linux](https://www.archlinux.org/) full install - [Arch Linux](https://www.archlinux.org/) full install
- [Manjaro](https://manjaro.org/) live USB and full install - [Manjaro](https://manjaro.org/) live USB and full install
- macOS 10.14.6 Mojave - macOS 10.13.6 High Sierra and 10.14.6 Mojave (Catalina is not supported)
## Tools and other stuff used by this script: ## Tools and other stuff used by this script:
- cURL - cURL

View File

@ -24,17 +24,16 @@ function BasebandDetect {
} }
function Clean { function Clean {
# Clean up files (called on MainMenu and trap dependency)
rm -rf iP*/ tmp/ $(ls ${UniqueChipID}_${ProductType}_${DowngradeVer}-*.shsh2 2>/dev/null) $(ls *.bbfw 2>/dev/null) BuildManifest.plist rm -rf iP*/ tmp/ $(ls ${UniqueChipID}_${ProductType}_${DowngradeVer}-*.shsh2 2>/dev/null) $(ls *.bbfw 2>/dev/null) BuildManifest.plist
} }
function Log { function Log {
echo "[Log] $1" | tee -a restore_log.txt echo "[Log] $1"
} }
function Error { function Error {
echo "[Error] $1" | tee -a restore_log.txt echo "[Error] $1"
[[ ! -z $2 ]] && echo $2 | tee -a restore_log.txt [[ ! -z $2 ]] && echo $2
exit exit
} }
@ -59,8 +58,8 @@ function MainMenu {
echo "Main Menu" echo "Main Menu"
echo echo
echo "HardwareModel: ${HWModel}ap" echo "HardwareModel: ${HWModel}ap"
echo "ProductType: $ProductType" | tee -a restore_log.txt echo "ProductType: $ProductType"
echo "ProductVersion: $ProductVer" | tee -a restore_log.txt echo "ProductVersion: $ProductVer"
echo "UniqueChipID (ECID): $UniqueChipID" echo "UniqueChipID (ECID): $UniqueChipID"
echo echo
echo "[Input] Select an option:" echo "[Input] Select an option:"
@ -100,7 +99,7 @@ function SelectVersion {
} }
function Select841 { function Select841 {
echo "iOS 8.4.1 $Mode" | tee -a restore_log.txt echo "iOS 8.4.1 $Mode"
iBSS="iBSS.$HWModel.RELEASE" iBSS="iBSS.$HWModel.RELEASE"
DowngradeVer="8.4.1" DowngradeVer="8.4.1"
DowngradeBuildVer="12H321" DowngradeBuildVer="12H321"
@ -108,7 +107,7 @@ function Select841 {
} }
function Select613 { function Select613 {
echo "iOS 6.1.3 $Mode" | tee -a restore_log.txt echo "iOS 6.1.3 $Mode"
iBSS="iBSS.${HWModel}ap.RELEASE" iBSS="iBSS.${HWModel}ap.RELEASE"
DowngradeVer="6.1.3" DowngradeVer="6.1.3"
DowngradeBuildVer="10B329" DowngradeBuildVer="10B329"
@ -116,7 +115,7 @@ function Select613 {
} }
function SelectOther { function SelectOther {
echo "Other $Mode" | tee -a restore_log.txt echo "Other $Mode"
iBSS="iBSS.$HWModel.RELEASE" iBSS="iBSS.$HWModel.RELEASE"
DowngradeBuildVer="12H321" DowngradeBuildVer="12H321"
NotOTA=1 NotOTA=1
@ -146,9 +145,7 @@ function SaveOTABlobs {
Log "Saving $DowngradeVer blobs with tsschecker..." Log "Saving $DowngradeVer blobs with tsschecker..."
env "LD_PRELOAD=libcurl.so.3" resources/tools/tsschecker_$platform -d $ProductType -i $DowngradeVer -o -s -e $UniqueChipID -m $BuildManifest env "LD_PRELOAD=libcurl.so.3" resources/tools/tsschecker_$platform -d $ProductType -i $DowngradeVer -o -s -e $UniqueChipID -m $BuildManifest
SHSH=$(ls ${UniqueChipID}_${ProductType}_${DowngradeVer}-*.shsh2) SHSH=$(ls ${UniqueChipID}_${ProductType}_${DowngradeVer}-*.shsh2)
if [ ! -e "$SHSH" ]; then [ ! -e "$SHSH" ] && Error "Saving $DowngradeVer blobs failed. Please run the script again" "It is also possible that $DowngradeVer for $ProductType is no longer signed"
Error "Saving $DowngradeVer blobs failed. Please run the script again" "It is also possible that $DowngradeVer for $ProductType is no longer signed"
fi
mkdir -p saved/shsh 2>/dev/null mkdir -p saved/shsh 2>/dev/null
cp "$SHSH" saved/shsh cp "$SHSH" saved/shsh
Log "Successfully saved $DowngradeVer blobs." Log "Successfully saved $DowngradeVer blobs."
@ -157,7 +154,6 @@ function SaveOTABlobs {
function kDFU { function kDFU {
if [ ! -e saved/$ProductType/$iBSS.dfu ]; then if [ ! -e saved/$ProductType/$iBSS.dfu ]; then
# Downloading 8.4.1 iBSS for "other" downgrades # Downloading 8.4.1 iBSS for "other" downgrades
# This is because this script only provides 8.4.1 iBSS IV and Keys
Log "Downloading iBSS..." Log "Downloading iBSS..."
resources/tools/pzb_$platform -g Firmware/dfu/${iBSS}.dfu -o $iBSS.dfu $(cat $Firmware/url) resources/tools/pzb_$platform -g Firmware/dfu/${iBSS}.dfu -o $iBSS.dfu $(cat $Firmware/url)
mkdir -p saved/$ProductType 2>/dev/null mkdir -p saved/$ProductType 2>/dev/null
@ -181,11 +177,8 @@ function kDFU {
fi fi
if [[ $VersionDetect == 1 ]]; then if [[ $VersionDetect == 1 ]]; then
# SSH is unreliable/not working on iOS 10 devices, so ifuse+MTerminal is used instead # ifuse+MTerminal is used instead of SSH for devices on iOS 10
# It's less convenient, but it should work every time [ ! $(which ifuse) ] && Error "ifuse not found. Please re-install dependencies and try again" "For macOS systems, install osxfuse and ifuse with brew"
if [ ! $(which ifuse) ]; then
Error "ifuse not found. Please re-install dependencies and try again" "For macOS systems, install osxfuse and ifuse with brew"
fi
WifiAddr=$(ideviceinfo -s | grep 'WiFiAddress' | cut -c 14-) WifiAddr=$(ideviceinfo -s | grep 'WiFiAddress' | cut -c 14-)
WifiAddrDecr=$(echo $(printf "%x\n" $(expr $(printf "%d\n" 0x$(echo "${WifiAddr}" | tr -d ':')) - 1)) | sed 's/\(..\)/\1:/g;s/:$//') WifiAddrDecr=$(echo $(printf "%x\n" $(expr $(printf "%d\n" 0x$(echo "${WifiAddr}" | tr -d ':')) - 1)) | sed 's/\(..\)/\1:/g;s/:$//')
echo '#!/bin/bash' > tmp/pwn.sh echo '#!/bin/bash' > tmp/pwn.sh
@ -208,16 +201,14 @@ function kDFU {
echo "# chmod +x pwn.sh" echo "# chmod +x pwn.sh"
echo "# ./pwn.sh" echo "# ./pwn.sh"
else else
# SSH: Send kloader and pwnediBSS to device root and run kloader as root # SSH kloader and pwnediBSS
echo "Make sure SSH is installed and working on the device!" echo "Make sure SSH is installed and working on the device!"
echo "Please enter Wi-Fi IP address of device for SSH connection" echo "Please enter Wi-Fi IP address of device for SSH connection"
read -p "[Input] IP Address: " IPAddress read -p "[Input] IP Address: " IPAddress
Log "Coonecting to device via SSH... Please enter root password when prompted (default is 'alpine')" Log "Coonecting to device via SSH... Please enter root password when prompted (default is 'alpine')"
Log "Copying stuff to device..." Log "Copying stuff to device..."
scp resources/tools/$kloader tmp/pwnediBSS root@$IPAddress:/ scp resources/tools/$kloader tmp/pwnediBSS root@$IPAddress:/
if [ $? == 1 ]; then [ $? == 1 ] && Error "Cannot connect to device via SSH." "Please check your ~/.ssh/known_hosts file and try again"
Error "Cannot connect to device via SSH." "Please check your ~/.ssh/known_hosts file and try again"
fi
Log "Entering kDFU mode..." Log "Entering kDFU mode..."
ssh root@$IPAddress "chmod 755 /$kloader && /$kloader /pwnediBSS" & ssh root@$IPAddress "chmod 755 /$kloader && /$kloader /pwnediBSS" &
fi fi
@ -247,9 +238,7 @@ function Downgrade {
Log "Verifying IPSW..." Log "Verifying IPSW..."
SHA1IPSW=$(cat $Firmware/sha1sum) SHA1IPSW=$(cat $Firmware/sha1sum)
SHA1IPSWL=$(sha1sum "$IPSW.ipsw" | awk '{print $1}') SHA1IPSWL=$(sha1sum "$IPSW.ipsw" | awk '{print $1}')
if [ $SHA1IPSW != $SHA1IPSWL ]; then [ $SHA1IPSW != $SHA1IPSWL ] && Error "SHA1 of IPSW does not match. Please run the script again"
Error "SHA1 of IPSW does not match. Please run the script again"
fi
if [ ! $kDFUManual ]; then if [ ! $kDFUManual ]; then
Log "Extracting iBSS from IPSW..." Log "Extracting iBSS from IPSW..."
mkdir -p saved/$ProductType 2>/dev/null mkdir -p saved/$ProductType 2>/dev/null
@ -372,8 +361,8 @@ function Ubuntu1804 {
trap 'Clean; exit' INT TERM EXIT trap 'Clean; exit' INT TERM EXIT
clear clear
echo "******* 32bit-OTA-Downgrader *******" | tee restore_log.txt echo "******* 32bit-OTA-Downgrader *******"
echo " Downgrade script by LukeZGD " | tee -a restore_log.txt echo " Downgrade script by LukeZGD "
echo echo
if [[ $OSTYPE == "linux-gnu" ]]; then if [[ $OSTYPE == "linux-gnu" ]]; then
platform='linux' platform='linux'
@ -382,12 +371,8 @@ elif [[ $OSTYPE == "darwin"* ]]; then
else else
Error "OSTYPE unknown/not supported" "Supports Linux and macOS only" Error "OSTYPE unknown/not supported" "Supports Linux and macOS only"
fi fi
if [[ ! $(ping -c1 google.com 2>/dev/null) ]]; then [[ ! $(ping -c1 google.com 2>/dev/null) ]] && Error "Please check your Internet connection before proceeding"
Error "Please check your Internet connection before proceeding" [[ $(uname -m) != 'x86_64' ]] && Error "Only x86_64 distributions are supported. Use a 64-bit distro and try again"
fi
if [[ $(uname -m) != 'x86_64' ]]; then
Error "Only x86_64 distributions are supported. Use a 64-bit distro and try again"
fi
HWModel=$(ideviceinfo -s | grep 'HardwareModel' | cut -c 16- | tr '[:upper:]' '[:lower:]' | sed 's/.\{2\}$//') HWModel=$(ideviceinfo -s | grep 'HardwareModel' | cut -c 16- | tr '[:upper:]' '[:lower:]' | sed 's/.\{2\}$//')
ProductType=$(ideviceinfo -s | grep 'ProductType' | cut -c 14-) ProductType=$(ideviceinfo -s | grep 'ProductType' | cut -c 14-)