Spelling and grammar corrections ;)

This commit is contained in:
itsnotrin 2023-09-27 19:58:15 +01:00 committed by GitHub
parent dbe306f42f
commit 6f2303eba5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 38 additions and 35 deletions

View file

@ -1,20 +1,22 @@
# downr1n # downr1n
Downr1n enables tethered downgrades of checkm8 iOS devices to iOS 14 and 15. Downr1n enables tethered downgrades of checkm8 compatible iOS devices to iOS 14 and 15.
NOTE: iOS 16 is NOT SUPPORTED. NOTE: If your **MAIN** iOS is 16 or 17, YOU WILL **NOT** BE ABLE TO USE THIS SCRIPT.
In general, dual booting is a better option than downgrading if you have the necessary storage. if you activate the localboot path it would be ultra better believe me xd. In general, you should aim to dual boot as oppoosed to dual booting. It's a far better option if you have the storage space.
# Usage # Usage
1: Download the IPSW file and place it in the ipsw/ directory. 1: Download an IPSW file for the version you want and put it in the IPSW/ directory. You can find IPSW links [here](https://ipsw.me/).
2: Execute the script without using 'sudo' on Linux. if it doesn't work please use sudo then. 2a: If you are on linux, run the script without sudo. However, if you run into issues, give sudo a try.
2b: Run ./downr1n.sh --downgrade [YOURVERSIONHERE]
Example: ./downr1n.sh --downgrade 14.3 Example: ./downr1n.sh --downgrade 14.3
The various command-line options are as follows: The various command-line options are as follows:
--downgrade : Downgrade your device to iOS 14 tethered. --downgrade : Downgrade your device to iOS 14/15 tethered.
--dfuhelper : A helper tool to transition A11 devices from recovery mode to DFU mode. --dfuhelper : A helper tool to transition A11 devices from recovery mode to DFU mode.
@ -22,13 +24,13 @@ The various command-line options are as follows:
--taurine : Jailbreak with taurine. Usage: `./downr1n.sh --jailbreak 14.3 --taurine`. --taurine : Jailbreak with taurine. Usage: `./downr1n.sh --jailbreak 14.3 --taurine`.
--boot : Boot the device. --boot : Boots the device.
--dont-restore : Avoids using futurerestore, this can be used to only create boot files. Example: `--downgrade 14.3 --dont-restore`. --dont-restore : Avoids using futurerestore, this can be used to only create boot files as opposed to restoring to that version. Example: `--downgrade 14.3 --dont-restore`.
--fixBoot : Boots the device using fsboot. --fixBoot : Boots the device using fsboot.
--debug : Debug the script. --debug : Runs the script in Debug Mode.
--- ---
@ -41,9 +43,9 @@ The various command-line options are as follows:
# Issues Putting Device in PwnDFU Mode # Issues Putting Device in PwnDFU Mode
- A DFU mode exists where the device's screen is black. However, when downgrading the device, recovery mode also turns black. To put the device into PwnDFU mode, you need to put it into real DFU mode by pressing poweroff+(volume down or home button). Look for a tutorial on YouTube to understand how. Once in PwnDFU mode, execute ./binaries/$(uname)/gaster pwn to succeed. If the device is not in DFU mode, it will loop. - A DFU mode exists where the device's screen is black. However, when downgrading the device, recovery mode also turns black. To put the device into PwnDFU mode, you need to put it into real DFU mode by pressing poweroff+(volume down or home button). Look for a tutorial on YouTube to understand how. Once in PwnDFU mode, execute ./binaries/$(uname)/gaster pwn to succeed. If the device is not in DFU mode, it will boot loop.
- If you want to fix recovery mode, try copying the firmware/all_flash/* from an IPSW of the version you are or were on before the downgrade to the IPSW for the iOS that you want to downgrade. This should restore recovery mode. - If you want to fix recovery mode, try copying the firmware/all_flash/* from an IPSW of the version you are or were on before the downgrade to the IPSW for the iOS that you want to downgrade. This should restore recovery mode to a working state.
# Warnings # Warnings
- I am **NOT** responsible for any data loss. The user of this program accepts responsibility should something happen to their device. - I am **NOT** responsible for any data loss. The user of this program accepts responsibility should something happen to their device.
@ -56,7 +58,7 @@ The various command-line options are as follows:
- If you encounter issues with futurerestore, try manually executing: ./binaries/$(uname)/futurerestore -t blobs/(oneoftheblobs) --use-pwndfu --skip-blob --rdsk work/rdsk.im4p --rkrn work/krnl.im4p --latest-sep (if your device has a baseband, use --latest-baseband, if not, use --no-baseband') ipsw/*.ipsw. - If you encounter issues with futurerestore, try manually executing: ./binaries/$(uname)/futurerestore -t blobs/(oneoftheblobs) --use-pwndfu --skip-blob --rdsk work/rdsk.im4p --rkrn work/krnl.im4p --latest-sep (if your device has a baseband, use --latest-baseband, if not, use --no-baseband') ipsw/*.ipsw.
- remember if you will use the next command or will activate localboot it is better that you first downgrade and when you success you can use --jailbreak to jailbreak the device and it will ask you to activate localboot path. why do this because the localboot need to be executed after --jailbreak - Remember, if you use the next command or activate localboot, it would be better to downgrade normally first and then use --jailbreak to jailbreak the device and activate the localboot path. The localboot path sometimes needs to be activated **after** --jailbreak.
- Sometimes, issues such as deep sleep or iOS not booting occur. To mitigate this, two options --localboot and --fsboot were added. Both are patches by the palera1n team meant to fix boot problems. You should use them when creating boot files, for example --downgrade () --dont-restore (--localboot) or (--fsboot). After finishing, boot with --boot (--localboot) or (--fsboot). It's not necessary to use them, but if you encounter problems, you can. - Sometimes, issues such as deep sleep or iOS not booting occur. To mitigate this, two options --localboot and --fsboot were added. Both are patches by the palera1n team meant to fix boot problems. You should use them when creating boot files, for example --downgrade () --dont-restore (--localboot) or (--fsboot). After finishing, boot with --boot (--localboot) or (--fsboot). It's not necessary to use them, but if you encounter problems, you can.
# Need Help? # Need Help?
@ -65,7 +67,7 @@ The various command-line options are as follows:
# How to Jailbreak? # How to Jailbreak?
- Jailbreak with dualra1n-loader: ./downr1n --jailbreak (YourVer = 14.3). Note: this does not actually jailbreak the device. When I say "jailbreak," I'm referring to the process of installing Sileo and bootstrapping the device. Dualra1n-loader only installs Sileo and bootstraps with the kernel patch. - Jailbreak with dualra1n-loader: ./downr1n --jailbreak (YourVer = 14.3). Note: this does not actually jailbreak the device. When I say "jailbreak," I'm referring to the process of installing Sileo and bootstrapping the device. Dualra1n-loader only installs Sileo and bootstraps with the kernel patch.
- Taurine: ./downr1n --jailbreak (YourVer = 14.3) --taurine. Note: this is not recommended. - Taurine: ./downr1n --jailbreak (YourVer = 14.3) --taurine. Note: this is **not** recommended.
# This project was created with love by Edwin :) # This project was created with love by Edwin :)

View file

@ -68,13 +68,14 @@ Usage: $0 [Options] [ subcommand | iOS version which are you]. put your ipsw in
iOS 15 - 14.0 downgrade tool ./downr1n --downgrade 15.7 (the ios of your device) ipsw iOS 15 - 14.0 downgrade tool ./downr1n --downgrade 15.7 (the ios of your device) ipsw
Options: Options:
--downgrade downgrade tethered your device to ios 14. you can use --localboot or --fsboot in order to fix some problems if you had them --downgrade Downgrade your device to iOS 14/15 tethered.
--dfuhelper A helper to help get A11 devices into DFU mode from recovery mode --dfuhelper A helper tool to transition A11 devices from recovery mode to DFU mode.
--jailbreak jailbreak with pogo. usage ./downr1n --jailbreak 14.8 --jailbreak Jailbreak with pogo. Usage: ./downr1n.sh --jailbreak 14.8.
--taurine jailbreak with taurine. usage ./downr1n --jailbreak 14.3 --taurine --taurine Jailbreak with taurine. Usage: './downr1n.sh --jailbreak 14.3 --taurine'.
--boot this boot the device. --boot Boots the device.
--dont-restore this will avoid the restore using futurerestore, this can be used if you wanted only create the boot files --dont-restore Avoids using futurerestore, this can be used to only create boot files as opposed to restoring to that version. Example: '--downgrade 14.3 --dont-restore'.
--debug Debug the script --fixBoot Boots the device using fsboot.
--debug Runs the script in Debug Mode.
Subcommands: Subcommands:
clean clean the downgrade tool in order to downgrade again. clean clean the downgrade tool in order to downgrade again.
@ -320,7 +321,7 @@ _kill_if_running() {
_runFuturerestore() { _runFuturerestore() {
read -p "Press ENTER to continue with futurerestore, your device will start to restoring <-" read -p "Press ENTER to continue with futurerestore, your device will start restoring <-"
rm -rf /tmp/futurerestore/ rm -rf /tmp/futurerestore/
"$dir"/futurerestore -t blobs/"$deviceid"-"$version".shsh2 --use-pwndfu --skip-blob \ "$dir"/futurerestore -t blobs/"$deviceid"-"$version".shsh2 --use-pwndfu --skip-blob \
--rdsk work/rdsk.im4p --rkrn work/krnl.im4p \ --rdsk work/rdsk.im4p --rkrn work/krnl.im4p \
@ -396,7 +397,7 @@ _boot() {
if [ "$local" = "1" ]; then if [ "$local" = "1" ]; then
echo "booting ..." echo "booting ..."
echo "your devicd should be booting into the ios using localboot:)" echo "Your device should now be booting into the iOS using localboot! :)"
exit; exit;
fi fi
@ -521,7 +522,7 @@ chmod +x "$dir"/*
# ============ # ============
echo "downr1n | Version 3.0" echo "downr1n | Version 3.0"
echo "Created by edwin, thanks palera1, and all people creator of path file boot" echo "Created by edwin, thanks palera1n, and all people creator of path file boot"
echo "" echo ""
parse_cmdline "$@" parse_cmdline "$@"
@ -574,14 +575,14 @@ if [ "$(get_device_mode)" = "normal" ]; then
version=${version:-$(_info normal ProductVersion)} version=${version:-$(_info normal ProductVersion)}
arch=$(_info normal CPUArchitecture) arch=$(_info normal CPUArchitecture)
if [ "$arch" = "arm64e" ]; then if [ "$arch" = "arm64e" ]; then
echo "[-] downgrade doesn't, and never will, work on non-checkm8 devices" echo "[-] Downgrade does not, and will not ever work on non-checkm8 devices."
exit exit
fi fi
echo "Hello, $(_info normal ProductType) on $version!" echo "Hello, $(_info normal ProductType) on $version!"
echo "[*] Switching device into recovery mode..." echo "[*] Switching device into recovery mode..."
if [ ! $("$dir"/ideviceenterrecovery $(_info normal UniqueDeviceID)) ]; then if [ ! $("$dir"/ideviceenterrecovery $(_info normal UniqueDeviceID)) ]; then
echo "[/] if your device can't enter into recovery mode please try to force reboot and put it on recovery mode" echo "[/] If your device can't enter into recovery mode, please try to force reboot it and put it into recovery mode."
fi fi
_wait recovery _wait recovery
fi fi
@ -611,7 +612,7 @@ ipswurl=$(curl -sL "https://api.ipsw.me/v4/device/$deviceid?type=ipsw" | "$dir"/
if [ "$(get_device_mode)" != "dfu" ]; then if [ "$(get_device_mode)" != "dfu" ]; then
recovery_fix_auto_boot; recovery_fix_auto_boot;
_dfuhelper "$cpid" || { _dfuhelper "$cpid" || {
echo "[-] failed to enter DFU mode, run downr1n.sh again" echo "[-] Failed to enter DFU mode, run downr1n.sh again"
exit -1 exit -1
} }
fi fi
@ -657,7 +658,7 @@ if [ ! $(ls ipsw/*.ipsw) ]; then
cd ipsw/ cd ipsw/
ipsw_files=(*.ipsw) ipsw_files=(*.ipsw)
if [[ ${#ipsw_files[@]} -gt 1 ]]; then if [[ ${#ipsw_files[@]} -gt 1 ]]; then
echo "in ipsw/ directory there is more than one ipsw so delete one and try again please" echo "There is more than one IPSW file in the IPSW directory. Please make sure there is only one and then try again!"
cd .. cd ..
exit; exit;
fi fi
@ -674,7 +675,7 @@ if [ "$downgrade" = "1" ] || [ "$jailbreak" = "1" ]; then
echo "[*] Extracting ipsw, hang on please ..." # this will extract the ipsw into ipsw/extracted echo "[*] Extracting ipsw, hang on please ..." # this will extract the ipsw into ipsw/extracted
unzip -n $ipsw -d "ipsw/extracted" >/dev/null unzip -n $ipsw -d "ipsw/extracted" >/dev/null
cp -v "$extractedIpsw/BuildManifest.plist" work/ cp -v "$extractedIpsw/BuildManifest.plist" work/
echo "[*] Got extract the IPSW successfully" echo "[*] The IPSW has been successfully extracted."
fi fi
if [ "$jailbreak" = "1" ]; then if [ "$jailbreak" = "1" ]; then
@ -794,7 +795,7 @@ if [ true ]; then
#"$dir"/img4 -i work/"$(awk "/""${model}""/{x=1}x&&/kernelcache.release/{print;exit}" work/BuildManifest.plist | grep '<string>' |cut -d\> -f2 |cut -d\< -f1)" -o work/kernelcache.img4 -M work/IM4M -T rkrn -P work/kc.bpatch `if [ "$os" = 'Linux' ]; then echo "-J"; fi` #"$dir"/img4 -i work/"$(awk "/""${model}""/{x=1}x&&/kernelcache.release/{print;exit}" work/BuildManifest.plist | grep '<string>' |cut -d\> -f2 |cut -d\< -f1)" -o work/kernelcache.img4 -M work/IM4M -T rkrn -P work/kc.bpatch `if [ "$os" = 'Linux' ]; then echo "-J"; fi`
#remote_cp root@localhost:/mnt6/$active/System/Library/Caches/com.apple.kernelcaches/kernelcachd work/kernelcache.img4 #remote_cp root@localhost:/mnt6/$active/System/Library/Caches/com.apple.kernelcaches/kernelcachd work/kernelcache.img4
cp -v "work/kernelcache.img4" "boot/${deviceid}" cp -v "work/kernelcache.img4" "boot/${deviceid}"
echo "[*] Finished of patching the kernel" echo "[*] Finished patching the kernel"
echo "[*] installing dualra1n-loader" echo "[*] installing dualra1n-loader"
unzip other/dualra1n-loader.ipa -d other/ unzip other/dualra1n-loader.ipa -d other/
@ -804,11 +805,11 @@ if [ true ]; then
echo "[*] Saving snapshot" echo "[*] Saving snapshot"
if [ ! "$(remote_cmd "/usr/bin/snaputil -c orig-fs /mnt1")" ]; then if [ ! "$(remote_cmd "/usr/bin/snaputil -c orig-fs /mnt1")" ]; then
echo "[-] the snapshot are already created, SKIPPING ..." echo "[-] The snapshot is already created, SKIPPING ..."
fi fi
if [ ! $(remote_cmd "trollstoreinstaller TV") ]; then if [ ! $(remote_cmd "trollstoreinstaller TV") ]; then
echo "[/] error installing trollstore on TV app" echo "[/] An error occured while installing TrollStore to the TV app."
fi fi
echo "[*] Fixing dualra1n-loader" echo "[*] Fixing dualra1n-loader"
@ -817,7 +818,7 @@ if [ true ]; then
fi fi
if [ "$taurine" = 1 ]; then if [ "$taurine" = 1 ]; then
echo "installing taurine" echo "Installing taurine"
remote_cp other/taurine/* root@localhost:/mnt1/ remote_cp other/taurine/* root@localhost:/mnt1/
echo "[*] Finished, now your downgrade is jailbroken, you can boot it" echo "[*] Finished, now your downgrade is jailbroken, you can boot it"
remote_cmd "/sbin/reboot" remote_cmd "/sbin/reboot"
@ -914,8 +915,8 @@ if [ true ]; then
sleep 10 sleep 10
if [ "$(get_device_mode)" = "dfu" ]; then if [ "$(get_device_mode)" = "dfu" ]; then
echo "device in false dfu mode. please force reboot and try to put it on dfu mode by precing the button." echo "The device is in a false dfu mode. Please force reboot and try to put it on dfu mode by pressing the buttons"
read -p "click enter if you got dfu mode on the iphone" read -p "Press enter if you got dfu mode on the iphone"
"$dir"/gaster pwn "$dir"/gaster pwn
else else
_wait recovery _wait recovery
@ -1086,7 +1087,7 @@ if [ true ]; then
cp -v work/*.img4 "boot/${deviceid}" # copying all file img4 to boot cp -v work/*.img4 "boot/${deviceid}" # copying all file img4 to boot
echo "[*] Sucess Patching the boot files" echo "[*] Successfully patched the boot files"
sleep 1 sleep 1
set +e set +e