Compare commits

..
69 Commits
Author SHA1 Message Date
Tom E ff3c7998e5 bump to 1.4.2 2023-02-16 17:16:40 -05:00
Tom E 34b57f8ab3 palera1n 1.4.2 changelog 2023-02-16 17:16:28 -05:00
Tom E 5d4f0065a1 fix ios 16.4 beta 1 2023-02-16 17:12:40 -05:00
Moritz Tim W 286e5d27ef Correct file name (#358) 2023-02-11 12:12:03 -05:00
alexia 1c5e13d644 Update my credit (#357) 2023-02-11 11:13:20 -05:00
flower 5e718b2929 readme improvements (#356)
* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md

* Update README.md
2023-02-11 11:07:32 -05:00
BananaOnGitHub ee8dd9f02d COMMONISSUES.md full update (#354) 2023-02-10 16:25:18 -05:00
Tom E f171c76093 fix this 1 stupid string 2023-02-09 18:45:07 -05:00
Tom E 84bb033350 looks like the plush needs to go touch grass! 2023-02-09 17:24:54 -05:00
Tom E 64c67e3c01 looks like the plush didnt look at the arm docs! 2023-02-09 17:21:23 -05:00
alexia 294732e99b Prevent Finder from popping up while palera1n is running (#352)
* Prevent Finder from popping up while palera1n is running

* Make sure Finder resets after a reboot if the exit handler doesn't run

* Make killall non-fatal
2023-02-09 19:06:17 +01:00
alexia 0be469d16a Use curl to check for connection instead of ping (#353)
Some people seem to have issues with ping.
2023-02-08 19:11:56 -05:00
BigBoiMan123 ec829371c9 update readme (#349)
* Update README.md

* Update README.md
2023-02-07 19:26:33 -05:00
BananaOnGitHubandalexia 7df5d5028a Update COMMONISSUES.md and fix some restorerootfs things (#350)
* Update COMMONISSUES.md and fix some restorerootfs things

* Update COMMONISSUES.md

thanks alexia

Co-authored-by: alexia <[email protected]>

* rocketbootstrap update

---------

Co-authored-by: alexia <[email protected]>
2023-02-07 19:26:12 -05:00
alexia 28c6fb02d8 Fix dfuhelper slowness (mainly on macOS) (#351)
system_profiler takes ~0.2s on my MacBook Air M1 and it was being called
twice per second. I made it so it's only called once per second and also
put the whole check on a background thread to ensure the countdown
doesn't get slowed down.
2023-02-07 19:22:19 -05:00
Nebula 315de66663 Revert "Add WSL/VM detection (improved) (#332)"
This reverts commit 11fe6f84df.
2023-02-06 22:08:03 -05:00
alexia 11fe6f84df Add WSL/VM detection (improved) (#332) 2023-02-06 21:14:09 -05:00
alexia cad049dd41 ensure fs is always set (#331) 2023-02-06 21:13:44 -05:00
alexia 228d4e9146 dfuhelper: fail early if device rebooted to normal/recovery mode (#333) 2023-02-06 21:13:31 -05:00
guacaplushy cd529b6216 Update submodules 2023-02-07 01:00:30 +00:00
guacaplushy 3677c3e4c3 Update submodules 2023-02-07 00:56:11 +00:00
guacaplushy 81ffa1bc24 Update submodules 2023-02-07 00:54:10 +00:00
guacaplushy d5dc274aa2 Update submodules 2023-02-07 00:49:20 +00:00
guacaplushy b8a94458c9 Update submodules 2023-02-06 22:41:12 +00:00
guacaplushy d8ec510665 kpf fixes & killed: 9 fix 2023-02-05 17:44:37 -05:00
Jade b227524d1d fixed the common issues link (#328)
Now the common issues link actually goes to the right document
2023-02-05 14:42:43 -05:00
alexia b4fd3f4ae5 dfuhelper: check if device is already in DFU mode (#348)
If the user runs it manually, or in some cases while running the script,
the device may be already in DFU, so don't wait around in that case.
2023-02-05 14:41:47 -05:00
alexia 7e1c40b6cc Add --ipsw option (#347)
* Add --ipsw option

No more need to manually edit the script to specify an IPSW URL,
now people can use `--ipsw URL` or `--ipsw=URL` instead.

* Add --ipsw to help
2023-02-05 09:34:39 -05:00
BananaOnGitHub c5ec80436d fix COMMONISSUES.md stuff (#345)
* Update COMMONISSUES.md

* fix vscode being unusually annoying + some fixing

* make end better

* i forgor

* update reclone command

* update reclone cmd again
2023-02-04 23:30:31 -05:00
alexia 797192191a Hide non-error messages from iproxy (#346)
This reduces unnecessary messages and makes the message that says
creating fakefs may take up to 10 minutes easier to notice.
2023-02-04 20:05:56 -05:00
Tom E 2485235978 directly download loader from artifacts 2023-02-04 18:50:49 -05:00
azreal 77eed6a93b Update COMMONISSUES.md (#342)
* Update COMMONISSUES.md

* Update COMMONISSUES.md

* Update COMMONISSUES.md
2023-02-04 00:22:22 +08:00
Nick Chan d4ad4c2809 never mind if commit+branch parsing did not work 2023-02-01 00:16:40 +08:00
Nick Chan 33c4702b6d add china workaround 2023-02-01 00:00:12 +08:00
itsnebulalol 27d9e6fa40 Update submodules 2023-01-31 00:23:14 +00:00
BananaOnGitHub 2b76a9d8f1 Update COMMONISSUES.md (#338)
* Update COMMONISSUES.md

* fix vscode being unusually annoying + some fixing
2023-01-30 06:39:14 +01:00
junepark678 20c4bb8145 Revert "Update submodules" (#337)
This reverts commit 1fbc971b84.
2023-01-29 23:44:36 -05:00
guacaplushy 1fbc971b84 Update submodules 2023-01-30 00:31:10 +00:00
Tom E 0a441ba889 RATIO 2023-01-29 19:30:29 -05:00
Tom E c1c4821e60 fix submodule action 2023-01-29 19:27:09 -05:00
Tom E b24a3bd19e fix: dumb typo 2023-01-28 11:44:38 -05:00
azreal 53a300851a Update COMMONISSUES.md (#335)
chore: some clarification for some stuff i guess?
2023-01-28 11:34:46 -05:00
azreal 19637412f9 frbouncereallyfast (#334)
chore: fix commonissues link

~ m00nl1ghts
2023-01-28 11:34:20 -05:00
Nebula a6af28aa8d Update README.md 2023-01-25 14:03:42 -05:00
Nebula 693aaa192c Update README.md 2023-01-25 13:57:42 -05:00
Nebula e4f0b8a11c bruh 2023-01-25 13:39:34 -05:00
Nebula b8bd6e9522 Update README.md 2023-01-25 13:39:14 -05:00
mineek 6e4c7d623c frbouncefast 2023-01-24 13:12:53 +01:00
mineek 98f5230408 16.3 my beloved 2023-01-24 13:11:20 +01:00
Nebula 404a43a82e Revert "add wsl/vm checks (#326)"
This reverts commit 785c3a515f.
2023-01-23 21:31:18 -05:00
junepark678 785c3a515f add wsl/vm checks (#326) 2023-01-23 21:07:18 -05:00
BananaOnGitHub efb5ce48c3 Make the readme better and port the common issues from the Discord Server to a md doc (#324)
* port common issues and make readme better

* thanks alexia for the small update for amd

* make table of contents link to actual problems

* Rename commonissues.md to COMMONISSUES.md (per nebula's request)
2023-01-22 21:45:16 -05:00
Nebula a9a1f775cb Update palera1n.sh 2023-01-22 13:40:03 -05:00
Nebula 8291ac6d79 Update palera1n.sh 2023-01-21 23:24:17 -05:00
Vadim A. Yegorov 6580820616 Increasing stability (#322)
* Suppressing unneeded cmds

* Parse cmdline and enable debug before downloads

* Check network connection and wait for network

* Rerun entering DFU stage after fail

* Fix tabs

* Creds

* Added DNS check, limited checks count

* ifconfig.co

* static.palera.in
2023-01-21 23:22:18 -05:00
alexia ee256722d1 fix _kill_if_running for root processes (#321)
`-f` means match full command line, so it never matched for iproxy,
causing errors when trying to kill the root process as normal user
2023-01-18 07:50:37 -05:00
Nick Chan 49ce775f36 Update payload (#315) 2023-01-11 06:18:18 -05:00
alexia 5d588a2709 add note about force reboot after restore rootfs (#312) 2023-01-10 10:04:14 -05:00
alexia e1c0e31687 Add check for arm64e devices when started from recovery/DFU (#310) 2023-01-05 19:19:51 -05:00
mineek 9ad1fbfc9b jbinit 2023-01-05 09:26:11 +01:00
junepark678 b4ba4de2dc Make palera1n.sh not directory dependant (#308)
* Make $dir not working directory dependent

* Change all occurrences of $(pwd) and change git

$(pwd) -> $(dirname "$0")
git -> git -C $(dirname "$0")

* Update palera1n.sh
2023-01-03 09:20:11 -05:00
Nebula 4b4502884a update 2022-12-30 22:20:51 -05:00
Nebula 0b53c98b44 update 2022-12-30 18:41:58 -05:00
Nebula dd00072f8c update submodule 2022-12-30 18:32:18 -05:00
Nebula 40b08c4117 add new patreons 2022-12-25 11:26:42 -05:00
alexia 712d66514d static linux binaries (#299)
* static linux binaries

using real musl static binaries instead of staticx this time

removed PlistBuddy because it's not used in palera1n.sh
and ramdisk submodule has its own binaries

* remove unused img4tool binary

also only used in ramdisk which has its own copy
2022-12-23 20:12:01 +01:00
Nebula 8e18f202c4 oop 2022-12-22 20:36:29 -05:00
Nebula af25b17c8f nightly.link moment 2022-12-22 20:25:01 -05:00
Nebula 99f4a37b00 no more port 2222 2022-12-18 21:02:25 -05:00
22 changed files with 630 additions and 226 deletions

No files matched your search

+1 -3
View File
@@ -19,9 +19,7 @@ jobs:
- name: Update submodules
run: |
cd ramdisk
git pull origin main
cd ..
git submodule update --remote
- name: Commit changes
uses: stefanzweifel/git-auto-commit-action@v4
+4
View File
@@ -1,5 +1,9 @@
# Changelog
## 1.4.2
- Add iOS 16.4 support
- Various fixes
## 1.4.1
- ibot.patched fix
- Use payload on the X
+306
View File
@@ -0,0 +1,306 @@
# Common Issues
## Table of Contents
1. ["Booted device" but not booted](#booted-device-but-not-booted)
2. [NewTerm not launching](#newterm-not-launching)
3. [palera1n/mineek repo not working](#palera1nmineek-repo-not-working)
4. [Procursus "killed 9"](#procursus-killed-9)
5. [App crashes on open](#app-crashes-on-open)
6. ["Killed" issue (*not* "Killed: 9")](#killed-issue-not-killed-9)
7. [Please reinstall Sileo via SSH](#please-reinstall-sileo-via-ssh)
8. [Loader app not appearing](#loader-app-not-appearing)
9. [Your local changes would be overwritten by checkout](#your-local-changes-would-be-overwritten-by-checkout)
10. [Could not connect to lockdownd](#could-not-connect-to-lockdownd)
11. [Package is in a very bad inconsistent state](#package-is-in-a-very-bad-inconsistent-state)
12. [Error installing bootstrap. Status: -1](#error-installing-bootstrap-status--1)
13. [jbinit DIED!](#jbinit-died)
14. [Daemons crashing on iOS 16.2+](#daemons-crashing-on-ios-162)
15. [Panics making loader not appear](#panics-making-loader-not-appear)
16. [libhooker wants to install?](#libhooker-wants-to-install)
17. [Pressing "install" on each jb](#pressing-install-on-each-jb)
18. [--restorerootfs still keeps app icons??](#--restorerootfs-still-keeps-app-icons)
19. [Device boots out of DFU](#device-boots-out-of-dfu)
20. [How to fix RocketBootstrap](#how-to-fix-rocketbootstrap)
21. [SEP Panic: :skg /skgs](#sep-panic-skg-skgs)
22. [Cannot download apps from the App Store](#cannot-download-apps-from-the-app-store)
23. [Snowboard theming incorrectly](#snowboard-theming-incorrectly)
24. [End-of-central-directory signature not found](#end-of-central-directory-signature-not-found)
25. [Filza crashing on launch](#filza-crashing-on-launch)
26. [dpkg error: Read-only file system](#dpkg-error-read-only-file-system)
27. [Library not loaded: /usr/lib/libSystem.B.dylib](#library-not-loaded-usrliblibsystembdylib)
28. [Stuck at waiting for network](#stuck-at-waiting-for-network)
29. [No space left on device](#no-space-left-on-device)
30. [Found the USB handle followed by an error occurred](#found-the-usb-handle-followed-by-an-error-occurred)
31. [pip error: legacy-install-failure](#pip-error-legacy-install-failure)
## \"Booted device\" but not booted
This may happen when the downloading and patching process is interrupted. Please run `./palera1n.sh clean` (use with `sudo` if on Linux), then try again.
If that doesn't fix it, it may be caused by an update from the Procursus repo. The quickest way to fix it is to [restore rootfs](https://ios.cfw.guide/removing-palera1n/). Alternatively, you can manually restore `/usr/libexec/dirs_cleaner` from the rootfs snapshot using the SSHRD script.
## NewTerm not launching
Install NewTerm 2 from [https://apt.itsnebula.net/](https://apt.itsnebula.net/ "https://apt.itsnebula.net/") or get NewTerm3 beta.
## palera1n\/mineek repo not working
[https://repo.palera.in/](https://repo.palera.in/ "https://repo.palera.in/") and [https://mineek.github.io/repo](https://mineek.github.io/repo "https://mineek.github.io/repo") are supposed to be used on rootless jailbreaks, not with any rootful jailbreaks with fakefs or tethered that have root access.
## Procursus \"killed 9\"
Binaries will need to be resigned by the Procursus Team to fix Killed: 9. In the meantime, use the palera1n strap repo. you can install it from [nebula’s repo](https://apt.itsnebula.net).
## App crashes on open
Refer to [this](#how-to-fix-rocketbootstrap) first.
Otherwise, run this in NewTerm or SSH
- `ldid -s /Applications/<appname>.app`
- Don't include the <>
## \"Killed\" issue \(*not* \"Killed: 9\"\)
You ran out of RAM on the Linux Live CD.
Ways to fix the issue, ordered by which to try first:
1. Close some apps, like Discord
2. Attempt a shallow clone, `git clone --depth=1` in place of `git clone`
3. Clone palera1n onto persistent storage[note 1]
4. Install Linux onto your computer.
**Note 1: How to use persistent storage from Linux Live, with terminal**
1. If you have already cloned palera1n, please delete it! Usually this can be done with `sudo rm -rf ~/palera1n` (assuming palera1n cloned into home directory)
2. You may want to install ntfs-3g first, on Ubuntu this can be done by running `sudo apt install ntfs-3g`
3. Run `sudo lsblk` to list your disks
4. Locate the persistent storage you want to use, for example a Windows C: drive would be of type "ntfs" and at least 10 GB in size, take a note of the device name, which starts with /dev
5. Mount disk onto `/mnt` *(example, please don’t paste as is)*: `sudo mount -t ntfs /dev/sda3 /mnt`
6. Change the working directory into `/mnt`: `cd /mnt`
7. Try to clone palera1n again
**Note 2: Most Linux Installers will set up swap areas automatically during the install if you use guided partitioning (if such option exists)**
In order to create a 2GB swap area as root:
1. Run `dd if=/dev/zero of=/swapfile bs=1M count=2048`
2. Run `chmod 600 /swapfile`
3. Format by running `mkswap /swapfile`
4. Open /etc/fstab in an editor like `nano`, then add a line that is `/swapfile none swap sw 0 0`
5. Run `swapon /swapfile`
## Please reinstall Sileo via SSH
If you have AutoSign installed and you reinstall/update Sileo, you'll get the error message shown in the screenshot. Here's how to fix it.
1. Get access to a terminal by either using SSH or NewTerm
2. Run `sudo apt remove autosign`. Unless you changed it, the password is `alpine`
3. Once it's done, run `sudo apt reinstall org.coolstar.sileo`
4. Try running Sileo again. Feel free to upgrade it if that was what you were planning to do.
5. Install AutoSign again
It should be fixed after these steps.
Example image:
![image with an error onscreen stating: "Sileo was unable to acquire root permissions. Please reinstall Sileo using SSH."](https://media.discordapp.net/attachments/1028693596469207191/1051879461093650442/1F92489D-5CA5-4E0C-A1FE-CED814FB0089.png?width=244&height=434)
**Note**: Some tweaks (e.g. Watusi) are known to not work with this method.
## Loader app not appearing
Try these steps:
1. Check if [this shortcut](https://www.icloud.com/shortcuts/8cd5f489c8854ee0ab9ee38f2e62f87d) opens it
2. Check for any panic logs by going to
1. Settings
2. Privacy
3. Analytics & Improvements
4. Analytics Data
- If there are any, send the **latest** one that starts with `panic-full`
- **Please do not send any other device log**
3. If these steps above don't work, [restore rootfs](https://ios.cfw.guide/removing-palera1n/) and rejailbreak
If none of these help, make sure you're waiting enough time [for the respring] (15-30 seconds).
On iPads, if other apps don’t appear along side the loader, try installing TrollStore Helper from the [Havoc repo](https://havoc.app) and use it to install TrollStore.
## Your local changes would be overwritten by checkout
Run the following commands, and then try again:
- `cd ramdisk`
- `git stash`
- `git stash drop`
- `cd ..`
## Could not connect to lockdownd
**Mux error (-8)**
- Unplug and plug your device back in
**Pairing dialog response pending (-19)**
- Accept the prompt to trust the computer on your device.
**Invalid HostID (-21)**
1. Run `idevicepair pair` (use `sudo` on Linux)
2. Accept the prompt to trust the computer on your device if needed
3. Run `idevicepair pair` again (use `sudo` on Linux)
- Alternatively, try entering [recovery mode manually](https://support.apple.com/en-us/HT201263 "enter recovery mode") before jailbreaking.
## Package is in a very bad inconsistent state
You can fix this by running this command in a terminal:
- `sudo dpkg -r --force-remove-reinstreq <PACKAGE_NAME>`
- Don't include the <>
## Error installing bootstrap. Status: \-1
You're not jailbroken. Sideloading the loader app on its own **will not work**.
Please run the palera1n script on your computer to jailbreak your device.
## jbinit DIED!
Your device may get stuck on a verbose boot screen, and if you look closely you'll see a "jbinit DIED!" error near the top.
The simplest way to fix this is `rm -rf blobs` (use `sudo` if on Linux), then force reboot your device and try to jailbreak again.
**For advanced users**:
You can also try re-copying the `other/rootfs` files manually to the device using SSHRD.
## Daemons crashing on iOS 16.2+
Substitute may cause daemons to crash on iOS 16.2 and above. It's recommended to downgrade to iOS 16.1.2 or below for now.
- If you don't have blobs saved, you can downgrade to 15.6 RC and delay OTA to 16.1.2. This expires in a month.
Or you can try using ElleKit instead, but note that some tweaks don't yet work with it.
<details>
<summary>How to Install ElleKit</summary>
<code>sudo rmdir /usr/lib/TweakInject
sudo ln -s /Library/MobileSubstrate/DynamicLibraries /usr/lib/TweakInject
sudo mv /Library/MobileSubstrate/DynamicLibraries/MobileSafety.dylib{,.disabled}
sudo mkdir -p /Library/Frameworks/CydiaSubstrate.framework
sudo ln -s /usr/lib/libsubstrate.dylib /Library/Frameworks/CydiaSubstrate.framework/CydiaSubstrate
sudo /usr/libexec/ellekit/loader
sudo mkdir -p /etc/rc.d
sudo ln -s /usr/libexec/ellekit/loader /etc/rc.d/ellekit-loader
launchctl reboot userspace</code>
Then launch daemons in loader.
</details>
## Panics making loader not appear
You may be encountering some issue related to panics and the loader “not appearing”, on A10+ make sure you have your passcode **disabled** before jailbreaking.
## libhooker wants to install?
**Remove the Chimera and Odyssey repo immediately!**
These repos are not meant to be used with palera1n and are able to break your jailbreak if you install anything from them.
## Pressing \"install\" on each jb
**DO NOT DO THIS.** It resets your package lists and will likely break your jailbreak install eventually. Instead, press the gear icon, and then press Do All.
If you managed to mess up your jailbreak this way, [restore rootfs](https://ios.cfw.guide/removing-palera1n/).
## --restorerootfs still keeps app icons??
There's an issue with restoring rootfs where it doesn’t uicache. **There is no need to worry**; this happens on a couple of other jailbreaks and serves no harm to the user or device.
Example image:
![image depicting blank icons for apps](https://media.discordapp.net/attachments/1028693596469207191/1065709922207150080/1A4B5107-DCFA-42E6-AC2D-1106CD854FC2.jpg?width=830&height=434)
## Device boots out of DFU
Make sure to use a USB-A cable, and follow one of the methods below to enter DFU.
**Method 1**
1. Make sure your device is in either normal or recovery mode.
2. Connect your device to your computer.
3. Run `./palera1n.sh dfuhelper` (use `sudo` if on Linux).
4. Follow the on-screen instructions.
**Method 2**
1. Power off your device.
2. Connect it to your computer or a charger.
3. As soon as the Apple logo comes on, start doing the [DFU mode sequence](https://help.ifixit.com/article/108-dfu-restore).
## How to fix RocketBootstrap
If you have Ryan Petrich's RocketBootstrap installed on iOS 15 or above, it may cause nearly every app to crash or even respring loops, especially when Cephei is also installed. To fix this, follow the steps below.
1. Uninstall any existing version of RocketBootstrap you have installed
2. Remove the Odyssey repo if you have it
3. Install RocketBootstrap from [this repo](https://rpetri.ch/repo).
4. Install RocketBootstrapFix from [this repo](https://repo.alexia.lol/).
This is an updated fix that should work with more tweaks than the Odyssey version.
## SEP Panic: :skg /skgs
This happens due to having a passcode set on A10-A11 devices when jailbreaking (or having previously set a passcode on iOS 16, even if it's currently turned off).
If you are on A10, use [checkp4le](https://github.com/guacaplushy/checkp4le).
<details>
<summary>Why?</summary>
checkp4le boots with checkra1n using a custom kernel patchfinder, which allows SEP to be re-enabled on A10
</details>
If you are on A11
- iOS 15
- Turn off your passcode and try jailbreaking again.
- iOS 16
1. Turn off your passcode
2. Backup your device
3. Erase from settings or restore from iTunes/Finder
4. Restore the backup.
5. Then try jailbreaking again.
If you don't want to use checkp4le and just want to have a passcode, or if you're on A11, you can use FakePass from [this repo](https://repo.alexia.lol/) to have a passcode. However, this will only work in a jailbroken state (it can be bypassed by simply rebooting the device).
## Cannot download apps from the App Store
Install Choicy from [this repo](https://opa334.github.io) and disable tweak injection into the App Store.
Alternatively, disable tweak injection globally in the Substitute app and respring. You can re-enable it after downloading the apps you wanted.
## Snowboard theming incorrectly
You may be encountering an issue with Snowboard not theming correctly or not theming at all. To fix this, make sure you have Snowboard from [SparkDev's repo](https://sparkdev.me).
Example image:
![image depicting sb issue](https://media.discordapp.net/attachments/1028693596469207191/1070014279639650345/image.png)
## End-of-central-directory signature not found
If the unzip error message it cannot find "`palera1n.zip(.ZIP, period.)`", you are running an outdated version of palera1n and need to update using `git pull`. If this doesn't work, reclone the palera1n repository by running `cd .. && sudo rm -rf palera1n && sudo git clone --recursive --depth=1 --shallow-submodules https://github.com/palera1n/palera1n && cd palera1n`.
Otherwise, this error most likely indicates a problem with your internet connection, and you simply need to try running palera1n again.
## Filza crashing on launch
Install the latest version of Filza from the [TIGI Software repo](https://www.tigisoftware.com/repo). **The version on BigBoss is outdated**. You do not need AutoSign or FilzaFixer anymore.
## dpkg error: Read-only file system
- Open the palera1n loader app
- Press the gear icon
- Remount R/W
Then try again.
## Library not loaded: /usr/lib/libSystem.B.dylib
This usually means the fakefs wasn't created properly. It might be left over from a restore. [Restore rootfs](https://ios.cfw.guide/removing-palera1n/) and try jailbreaking again.
## Stuck at `waiting for network`
This is usually caused by a network issue.
1. Make sure you're on the latest commit (`git pull`)
2. Make sure you can access [this site](https://static.palera.in/)
If you can access it but the script still doesn't work, your network may be unstable or certain outgoing requests may be blocked. If you cannot access it, this may mean that your network is blocking it, or it's currently down.
## No space left on device
This means that either your iDevice or your computer does not have enough storage.
If you're live booting Linux and have a low amount of RAM, follow [this](#killed-issue-not-killed-9).
If you're using semi-tethered and have less than 10GB available on the iDevice, this may be the issue. Please [restore rootfs](https://ios.cfw.guide/removing-palera1n/) and clear some space on your device. Usually if this is the issue, the console is spammed many times with `No space left on device` or `File or directory not found.`
## Found the USB handle followed by an error occurred
This will happen if the device is in a bad DFU state, which could randomly happen, or if you held the 2nd DFU button for too long (volume down on iPhone X, for example).
Reboot the device and rerun the script, and make sure to follow the DFU helper exactly, and let go as soon as it says it found the device in DFU.
## pip error: legacy-install-failure
- **Ubuntu/Debian**
- `sudo apt install python3-dev`
- **Fedora**
- `sudo dnf install python3-devel`
- **openSUSE**
- `sudo zypper install python3-devel`
- **macOS**
- Install the Xcode Command Line Tools by running
- `xcode-select --install`
- If it still doesn't work, try this command:
- `ARCHFLAGS="-arch $(uname -m)" python3 -m pip install --compile pyimg4`
<br>
### If none of these solve your issue, please join the [Discord server](https://dsc.gg/palera1n).
+75 -82
View File
@@ -1,105 +1,98 @@
<h1 align="center">
<img src="https://avatars.githubusercontent.com/u/114239186?s=100&v=4" alt="palera1n logo">
<p>palera1n</p>
</h1>
<h3 align="center">An iOS 15.0-16.2 work-in-progress, (semi-)tethered checkm8 jailbreak.</h3>
<p align="center">
<strong><a href="CHANGELOG.md">Change Log</a></strong>
•
<strong><a href="https://dsc.gg/palera1n">Discord</a></strong>
•
<strong><a href="https://twitter.com/palera1n">Twitter</a></strong>
<img align="left" height="120" src="https://cdn.discordapp.com/attachments/1017854329887129611/1073858292159352862/thing.png" alt="palera1n logo" style="float: left;"/>
<h3 align="right">An iOS 15.0-16.3 work-in-progress, <br>(semi-)tethered checkm8 jailbreak</h3>
<p align="right" >
<strong><a href="https://ios.cfw.guide/installing-palera1n">Guide</a></strong>
•
<strong><a href="COMMONISSUES.md">Common Issues</a></strong>
•
<strong><a href="CHANGELOG.md">Changelog</a></strong>
•
<strong><a href="https://dsc.gg/palera1n">Discord</a></strong>
•
<strong><a href="https://twitter.com/palera1n">Twitter</a></strong>
</p>
<div class="clear"></div>
# How does it work?
It boots the device with multiple patches required. On first run, it'll boot a ramdisk which dumps your onboard blob, creates a fakefs (if using semi tethered), installs the loader app, and patches your kernel.
# Issues
### Need help?
If you need help, **please** join our Discord. We disabled issues due to the flood of spam, and difficulty to respond in general. We are much more comfortable on Discord.
It boots the device with multiple patches required. On first run, it'll boot a ramdisk which dumps your onboard blob, creates a fakefs (if using semi-tethered), installs the loader app, and patches your kernel.
Please, please, please, provide necessary info:
# Warnings
- We are **NOT** responsible for any data loss, or the result of a device being bricked. The user of this program accepts responsibility should something happen to their device. While nothing should happen, jailbreaking has risks in itself. If your device refuses to boot after using palera1n please use `iTunes` or `Finder` to restore iOS (or if you used tethered, use `--restorerootfs` at the end of your palera1n command).
- iOS version and device (eg. iPhone 7+ 15.1, iPhone 6s 15.3.1)
- Computer's OS and version (eg. Ubuntu 22.04, macOS 13.0)
- The command you ran
- **Full log from the logs folder**
- palera1n will never work in VirtualBox, VMware or any virtual machine that doesn't support a PCI passthrough.
**DO NOT** harass tweak devs if tweaks don't work. Refer to [here](https://github.com/itsnebulalol/ios15-tweaks) for compatiblity.
# Requirements
- Needs a checkm8 vulnerable iOS device on iOS 15.x or 16.x (`A8` - `A11`)
- If you want the device to be semi-tethered, **you will need 5-10GB of space** for the fakefs. This means that 16GB devices cannot be semi-tethered
- If you are on `A10(X)`, use [checkp4le](https://github.com/guacaplushy/checkp4le) instead for full SEP functionality (Passcode, TouchID, Apple Pay)
- On `A11`, **you must disable your passcode while in the jailbroken state** (on iOS 16, you need to reset your device before proceeding with palera1n `A11`).
You may join [here](https://dsc.gg/palera1n).
- **USB-A** cables are recommended to use, USB-C may have issues with palera1n and getting into DFU mode.
# Patreons
- A Linux or macOS computer
- Python 3 must be installed.
- AMD CPUs have an issue [with (likely) their USB controllers] that causes them to have a very low success rate with checkm8. It is not recommended that you use them with palera1n.
- If your device does not successfully jailbreak, try a computer with an Intel or other CPU
Thank you so much to our Patreons that make the future development possible! You may sub [here](https://patreon.com/palera1n), if you'd like to.
# Still need help?
<a href="https://github.com/samh06"><img width=64 src="https://user-images.githubusercontent.com/18669106/206333607-881d7ca1-f3bf-4e18-b620-25de0c527315.png"></img></a>
<a href="https://havoc.app"><img width=64 src="https://docs.havoc.app/img/standard_icon.png"></img></a>
<a href="https://twitter.com/yyyyyy_public"><img width=64 src="https://pbs.twimg.com/profile_images/1429332550112079876/dQQgsURc_400x400.jpg"></img></a>
<a href="https://twitter.com/0xSp00kyb0t"><img width=64 src="https://pbs.twimg.com/profile_images/1603601553226620935/1t4yD1bD_400x400.jpg"></img></a>
# Warning
- We are **NOT** responsible for any data loss. The user of this program accepts responsibility should something happen to their device. While nothing should happen, jailbreaking has risks in itself. **If your device is stuck in recovery, please run one of the following:**
- futurerestore --exit-recovery
- irecovery -n
# Prerequisites
- A checkm8 vulnerable iOS device on iOS 15 or 16 (A8-A11)
- The device must be on iOS 15.0-16.2
- Linux or macOS computer
- Python 3 must be installed.
### A10 and A11 devices
- On A10 and A11, **you must disable your passcode while in the jailbroken state**.
- On iOS 16 A10+, if you EVER enabled a passcode on 16, you have to reset through the settings app/restore with a computer
- On A10, this can be fixed in the future by implementing blackbird.
- On A11, we don't have a SEP exploit yet.
# How to use?
A tutorial can be found [here](https://ios.cfw.guide/installing-palera1n).
# Repos
### Tweaks mode
All repos work when using tweaks mode because it uses normal Procursus and not rootless.
### Rootless
Repos need to be updated for rootless, here are some that work currently:
- [Mineek's repo](https://mineek.github.io/repo) contains rootless Procursus packages
- The official [palera1n repo](https://repo.palera.in) contains miscellaneous packages
If you want to make a rootless repo, use the official [palera1n repo](https://github.com/palera1n/repo) for reference. Every deb should use the `iphoneos-arm64` architecture, and *nothing* should be on the rootfs. Everything should be in /var/jb.
Join the [Support Discord](https://dsc.gg/palera1n) if you need help with palera1n :)
# Credits
<details><summary>palera1n Contributors</summary>
<p>
- [Nathan](https://github.com/verygenericname) for part of palera1n's development.
- The ramdisk that dumps blobs, copies files, and duplicates rootfs is a slimmed down version of [SSHRD_Script](https://github.com/verygenericname/SSHRD_Script)
- For modified [restored_external](https://github.com/verygenericname/sshrd_SSHRD_Script)
- Also helped Mineek getting the kernel up and running and with the patches
- Helping with adding multiple device support
- Fixing issues relating to camera.. etc by switching to fsboot
- [iBoot64Patcher fork](https://github.com/verygenericname/iBoot64Patcher)
- [Mineek](https://github.com/mineek) for more part of palera1n's development.
- For the patching and booting commands
- Adding tweak support
- For patchfinders for RELEASE kernels
- [Kernel15Patcher](https://github.com/mineek/PongoOS/tree/iOS15/checkra1n/Kernel15Patcher)
- [Kernel64Patcher](https://github.com/mineek/Kernel64Patcher)
- Work on jbinit, together with [Nick Chan](https://github.com/asdfugil)
- [Tom](https://github.com/guacaplushy) for a couple patches and bugfixes
- For maintaining [Kernel64Patcher](https://github.com/palera1n/Kernel64Patcher)
- [Serena](https://github.com/SerenaKit) for helping with boot ramdisk.
- [Nick Chan](https://github.com/asdfugil) general help with patches and iBoot payload stuff
- [Dora](https://github.com/dora2-iOS) for iBoot payload and iBootpatcher2
- [alexia](https://github.com/0xallie) for the script to help get into DFU
</details>
<details><summary>Other credits for tools used in palera1n</summary>
- [Nathan](https://github.com/verygenericname)
- The ramdisk that dumps blobs, copies files, and duplicates rootfs is a slimmed down version of [SSHRD_Script](https://github.com/verygenericname/SSHRD_Script)
- For modified [restored_external](https://github.com/verygenericname/sshrd_SSHRD_Script)
- Also helped Mineek getting the kernel up and running and with the patches
- Helping with adding multiple device support
- Fixing issues relating to camera.. etc by switching to fsboot
- [iBoot64Patcher fork](https://github.com/verygenericname/iBoot64Patcher)
- [Mineek](https://github.com/mineek)
- For the patching and booting commands
- Adding tweak support
- For patchfinders for RELEASE kernels
- [Kernel15Patcher](https://github.com/mineek/PongoOS/tree/iOS15/checkra1n/Kernel15Patcher)
- [Kernel64Patcher](https://github.com/mineek/Kernel64Patcher)
- [Amy](https://github.com/elihwyma) for the [Pogo](https://github.com/elihwyma/Pogo) app
- [checkra1n](https://github.com/checkra1n) for the base of the kpf
- [nyuszika7h](https://github.com/nyuszika7h) for the script to help get into DFU
- [the Procursus Team](https://github.com/ProcursusTeam) for the amazing [bootstrap](https://github.com/ProcursusTeam/Procursus)
- [F121](https://github.com/F121Live) for helping test
- [m1sta](https://github.com/m1stadev) for [pyimg4](https://github.com/m1stadev/PyIMG4)
- [tihmstar](https://github.com/tihmstar) for [pzb](https://github.com/tihmstar/partialZipBrowser)/original [iBoot64Patcher](https://github.com/tihmstar/iBoot64Patcher)/original [liboffsetfinder64](https://github.com/tihmstar/liboffsetfinder64)/[img4tool](https://github.com/tihmstar/img4tool)
- [Tom](https://github.com/guacaplushy) for a couple patches and bugfixes
- For maintaining [Kernel64Patcher](https://github.com/palera1n/Kernel64Patcher)
- [xerub](https://github.com/xerub) for [img4lib](https://github.com/xerub/img4lib) and [restored_external](https://github.com/xerub/sshrd) in the ramdisk
- [Cryptic](https://github.com/Cryptiiiic) for [iBoot64Patcher](https://github.com/Cryptiiiic/iBoot64Patcher) fork, and [liboffsetfinder64](https://github.com/Cryptiiiic/liboffsetfinder64) fork
- [libimobiledevice](https://github.com/libimobiledevice) for several tools used in this project (irecovery, ideviceenterrecovery etc), and [nikias](https://github.com/nikias) for keeping it up to date
- [Nick Chan](https://github.com/asdfugil) general help with patches and iBoot payload stuff
- [Dora](https://github.com/dora2-iOS) for iBoot payload and iBootpatcher2
- [Sam Bingner](https://github.com/sbingner) for [Substitute](https://github.com/sbingner/substitute)
- [Serena](https://github.com/SerenaKit) for helping with boot ramdisk.
</p>
</details>
<br>
<p align="center">
Thank you so much to our Patreons that make the future development possible! You may sub <a href="https://patreon.com/palera1n">here</a>, if you'd like to.</br>
</p>
<p align="center">
<a href="https://github.com/samh06"><img width=64 style="border-radius: 25%;" src="https://user-images.githubusercontent.com/18669106/206333607-881d7ca1-f3bf-4e18-b620-25de0c527315.png"></img></a>
<a href="https://havoc.app"><img width=64 style="border-radius: 25%;" src="https://docs.havoc.app/img/standard_icon.png"></img></a>
<a href="https://twitter.com/yyyyyy_public"><img width=64 style="border-radius: 25%;" src="https://cdn.discordapp.com/attachments/1054239098006683688/1072587455779328040/image.png?size=400"></img></a>
<a href="https://twitter.com/0xSp00kyb0t"><img width=64 style="border-radius: 25%;" src="https://pbs.twimg.com/profile_images/1603601553226620935/1t4yD1bD_400x400.jpg"></img></a>
<a href="https://chariz.com"><img width=64 src="https://chariz.com/img/favicon.png"></img></a>
<a href="https://twitter.com/stars6220"><img width=64 style="border-radius: 25%;" src="https://pbs.twimg.com/profile_images/1621062976982728706/pWVZQ-NO_400x400.jpg"></img></a>
<a href="https://github.com/beast9265"><img width=64 style="border-radius: 25%;" src="https://avatars.githubusercontent.com/u/79794946?v=4"></img></a>
<a href="https://twitter.com/0x7FF7"><img width=64 style="border-radius: 25%;" src="https://pbs.twimg.com/profile_images/1616888462665306113/AsjJvtyt_400x400.jpg"></img></a>
<a href="https://sideloadly.io/"><img width=64 style="border-radius: 25%;" src="https://sideloadly.io/icon.png"></img></a>
<a href="https://blog.stevesec.com/"><img width=64 style="border-radius: 25%;" src="https://blog.stevesec.com/img/avatar.jpg"></img></a>
</p>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Regular → Executable
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
View File
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+243 -140
View File
@@ -1,5 +1,7 @@
#!/usr/bin/env bash
pushd $(dirname "$0") &> /dev/null
mkdir -p logs
set -e
@@ -15,12 +17,13 @@ echo "[*] Command ran:`if [ $EUID = 0 ]; then echo " sudo"; fi` ./palera1n.sh $@
# =========
# Variables
# =========
ipsw="" # IF YOU WERE TOLD TO PUT A CUSTOM IPSW URL, PUT IT HERE. YOU CAN FIND THEM ON https://appledb.dev
version="1.4.1"
ipsw=""
network_timeout=-1 # seconds; -1 - unlimited
version="1.4.2"
os=$(uname)
dir="$(pwd)/binaries/$os"
commit=$(git rev-parse --short HEAD)
branch=$(git rev-parse --abbrev-ref HEAD)
commit=$(git rev-parse --short HEAD || true)
branch=$(git rev-parse --abbrev-ref HEAD || true)
max_args=1
arg_count=0
disk=8
@@ -30,18 +33,23 @@ fs=disk0s1s$disk
# Functions
# =========
remote_cmd() {
"$dir"/sshpass -p 'alpine' ssh -o StrictHostKeyChecking=no -p2222 root@localhost "$@"
"$dir"/sshpass -p 'alpine' ssh -o StrictHostKeyChecking=no -p6413 root@localhost "$@"
}
remote_cp() {
"$dir"/sshpass -p 'alpine' scp -o StrictHostKeyChecking=no -P2222 $@
"$dir"/sshpass -p 'alpine' scp -o StrictHostKeyChecking=no -P6413 $@
}
step() {
rm -f .entered_dfu
for i in $(seq "$1" -1 0); do
if [ "$(get_device_mode)" = "dfu" ]; then
if [[ -e .entered_dfu ]]; then
rm -f .entered_dfu
break
fi
if [[ $(get_device_mode) == "dfu" || ($1 == "10" && $(get_device_mode) != "none") ]]; then
touch .entered_dfu
fi &
printf '\r\e[K\e[1;36m%s (%d)' "$2" "$i"
sleep 1
done
@@ -51,7 +59,7 @@ step() {
print_help() {
cat << EOF
Usage: $0 [Options] [ subcommand | iOS version ]
iOS 15.0-16.2 jailbreak tool for checkm8 devices
iOS 15.0-16.3 jailbreak tool for checkm8 devices
Options:
--help Print this help
@@ -62,6 +70,8 @@ Options:
--no-baseband Indicate that the device does not have a baseband
--restorerootfs Remove the jailbreak (Actually more than restore rootfs)
--debug Debug the script
--china Enable Mainland China specific workarounds (启用对中国大陆网络环境的替代办法)
--ipsw Specify a custom IPSW to use
--serial Enable serial output on the device (only needed for testing with a serial cable)
Subcommands:
@@ -102,6 +112,15 @@ parse_opt() {
--restorerootfs)
restorerootfs=1
;;
--china)
china=1
;;
--ipsw)
ipsw=$2
;;
--ipsw=*)
ipsw=${1#*=}
;;
--debug)
debug=1
;;
@@ -136,6 +155,8 @@ parse_cmdline() {
parse_opt "$arg";
elif [ "$arg_count" -lt "$max_args" ]; then
parse_arg "$arg";
elif [[ $arg == http* ]]; then
continue
else
echo "[-] Too many arguments. Use $0 --help for help.";
exit 1;
@@ -184,7 +205,8 @@ _reset() {
get_device_mode() {
if [ "$os" = "Darwin" ]; then
apples="$(system_profiler SPUSBDataType 2> /dev/null | grep -B1 'Vendor ID: 0x05ac' | grep 'Product ID:' | cut -dx -f2 | cut -d' ' -f1 | tail -r)"
sp="$(system_profiler SPUSBDataType 2> /dev/null)"
apples="$(printf '%s' "$sp" | grep -B1 'Vendor ID: 0x05ac' | grep 'Product ID:' | cut -dx -f2 | cut -d' ' -f1 | tail -r)"
elif [ "$os" = "Linux" ]; then
apples="$(lsusb | cut -d' ' -f6 | grep '05ac:' | cut -d: -f2)"
fi
@@ -228,7 +250,7 @@ get_device_mode() {
if [ "$os" = "Linux" ]; then
usbserials=$(cat /sys/bus/usb/devices/*/serial)
elif [ "$os" = "Darwin" ]; then
usbserials=$(system_profiler SPUSBDataType 2> /dev/null | grep 'Serial Number' | cut -d: -f2- | sed 's/ //')
usbserials=$(printf '%s' "$sp" | grep 'Serial Number' | cut -d: -f2- | sed 's/ //')
fi
if grep -qE '(ramdisk tool|SSHRD_Script) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{1,2} [0-9]{4} [0-9]{2}:[0-9]{2}:[0-9]{2}' <<< "$usbserials"; then
device_mode=ramdisk
@@ -250,7 +272,13 @@ _wait() {
fi
}
dfuhelper_first_try=true
_dfuhelper() {
if [ "$(get_device_mode)" = "dfu" ]; then
echo "[*] Device is already in DFU"
return
fi
local step_one;
deviceid=$( [ -z "$deviceid" ] && _info normal ProductType || echo $deviceid )
if [[ "$1" = 0x801* && "$deviceid" != *"iPad"* ]]; then
@@ -258,8 +286,11 @@ _dfuhelper() {
else
step_one="Hold home + power button"
fi
echo "[*] Press any key when ready for DFU mode"
read -n 1 -s
if $dfuhelper_first_try; then
echo "[*] Press any key when ready for DFU mode"
read -n 1 -s
dfuhelper_first_try=false
fi
step 3 "Get ready"
step 4 "$step_one" &
sleep 3
@@ -274,24 +305,55 @@ _dfuhelper() {
if [ "$(get_device_mode)" = "dfu" ]; then
echo "[*] Device entered DFU!"
dfuhelper_first_try=true
else
echo "[-] Device did not enter DFU mode, rerun the script and try again"
echo "[-] Device did not enter DFU mode"
return -1
fi
}
function _wait_for() {
timeout=$1
shift 1
until [ $timeout -eq 0 ] || ("$@" &> /dev/null); do
sleep 1
timeout=$(( timeout - 1 ))
done
if [ $timeout -eq 0 ]; then
return -1
fi
}
function _network() {
curl -s -m 1 https://static.palera.in &>/dev/null
}
function _check_network_connection() {
if ! _network; then
echo "[*] Waiting for network"
if ! _wait_for $network_timeout _network; then
echo "[-] Network is unreachable. Check your connection and try again"
exit 1
fi
fi
}
_kill_if_running() {
if (pgrep -u root -xf "$1" &> /dev/null > /dev/null); then
if (pgrep -u root -x "$1" &> /dev/null > /dev/null); then
# yes, it's running as root. kill it
sudo killall $1
sudo killall $1 &> /dev/null
else
if (pgrep -x "$1" &> /dev/null > /dev/null); then
killall $1
killall $1 &> /dev/null
fi
fi
}
_exit_handler() {
if [ "$os" = "Darwin" ]; then
killall -CONT AMPDevicesAgent AMPDeviceDiscoveryAgent MobileDeviceUpdater || true
fi
[ $? -eq 0 ] && exit
echo "[-] An error occurred"
@@ -309,6 +371,21 @@ trap _exit_handler EXIT
# Fixes
# ===========
# ============
# Start
# ============
echo "palera1n | Version $version-$branch-$commit"
echo "Made with ❤ by Nebula, Mineek, Nathan, llsc12, Ploosh, and Nick Chan"
echo ""
version=""
parse_cmdline "$@"
if [ "$debug" = "1" ]; then
set -o xtrace
fi
# ============
# Dependencies
# ============
@@ -334,7 +411,10 @@ if [ -e "$dir"/gaster ]; then
fi
if [ ! -e "$dir"/gaster ]; then
curl -sLO https://nightly.link/palera1n/gaster/workflows/makefile/main/gaster-"$os".zip
echo '[-] gaster not installed. Press any key to install it, or press ctrl + c to cancel'
read -n 1 -s
_check_network_connection
curl -sLO https://static.palera.in/deps/gaster-"$os".zip
unzip gaster-"$os".zip
mv gaster "$dir"/
rm -rf gaster gaster-"$os".zip
@@ -344,6 +424,7 @@ fi
if ! python3 -c 'import pkgutil; exit(not pkgutil.find_loader("pyimg4"))'; then
echo '[-] pyimg4 not installed. Press any key to install it, or press ctrl + c to cancel'
read -n 1 -s
_check_network_connection
python3 -m pip install pyimg4
fi
@@ -352,7 +433,12 @@ fi
# ============
# Update submodules
git submodule update --init --recursive
if [ "$china" != "1" ]; then
git submodule update --init --recursive
elif ! [ -f ramdisk/sshrd.sh ]; then
curl -LO https://static.palera.in/deps/ramdisk.tgz
tar xf ramdisk.tgz
fi
# Re-create work dir if it exists, else, make it
if [ -e work ]; then
@@ -367,19 +453,8 @@ chmod +x "$dir"/*
# xattr -d com.apple.quarantine "$dir"/*
#fi
# ============
# Start
# ============
echo "palera1n | Version $version-$branch-$commit"
echo "Written by Nebula and Mineek | Some code and ramdisk from Nathan"
echo ""
version=""
parse_cmdline "$@"
if [ "$debug" = "1" ]; then
set -o xtrace
if [ "$os" = "Darwin" ]; then
killall -STOP AMPDevicesAgent AMPDeviceDiscoveryAgent MobileDeviceUpdater || true
fi
if [ "$clean" = "1" ]; then
@@ -399,7 +474,7 @@ if [ "$tweaks" = 1 ] && [ ! -e ".tweaksinstalled" ] && [ ! -e ".disclaimeragree"
echo "!!! WARNING WARNING WARNING !!!"
echo "This flag will add tweak support BUT WILL BE TETHERED."
echo "THIS ALSO MEANS THAT YOU'LL NEED A PC EVERY TIME TO BOOT."
echo "THIS WORKS ON 15.0-16.2"
echo "THIS WORKS ON 15.0-16.3"
echo "DO NOT GET ANGRY AT US IF YOUR DEVICE IS BORKED, IT'S YOUR OWN FAULT AND WE WARNED YOU"
echo "DO YOU UNDERSTAND? TYPE 'Yes, do as I say' TO CONTINUE"
read -r answer
@@ -421,100 +496,114 @@ if [ "$tweaks" = 1 ] && [ ! -e ".tweaksinstalled" ] && [ ! -e ".disclaimeragree"
fi
fi
# Get device's iOS version from ideviceinfo if in normal mode
echo "[*] Waiting for devices"
while [ "$(get_device_mode)" = "none" ]; do
sleep 1;
done
echo $(echo "[*] Detected $(get_device_mode) mode device" | sed 's/dfu/DFU/')
function _wait_for_device() {
# Get device's iOS version from ideviceinfo if in normal mode
echo "[*] Waiting for devices"
while [ "$(get_device_mode)" = "none" ]; do
sleep 1;
done
echo $(echo "[*] Detected $(get_device_mode) mode device" | sed 's/dfu/DFU/')
if grep -E 'pongo|checkra1n_stage2|diag' <<< "$(get_device_mode)"; then
echo "[-] Detected device in unsupported mode '$(get_device_mode)'"
exit 1;
fi
if [ "$(get_device_mode)" != "normal" ] && [ -z "$version" ] && [ "$dfuhelper" != "1" ]; then
echo "[-] You must pass the version your device is on when not starting from normal mode"
exit
fi
if [ "$(get_device_mode)" = "ramdisk" ]; then
# If a device is in ramdisk mode, perhaps iproxy is still running?
_kill_if_running iproxy
echo "[*] Rebooting device in SSH Ramdisk"
if [ "$os" = 'Linux' ]; then
sudo "$dir"/iproxy 2222 22 &
else
"$dir"/iproxy 2222 22 &
if grep -E 'pongo|checkra1n_stage2|diag' <<< "$(get_device_mode)"; then
echo "[-] Detected device in unsupported mode '$(get_device_mode)'"
exit 1;
fi
sleep 2
remote_cmd "/usr/sbin/nvram auto-boot=false"
remote_cmd "/sbin/reboot"
_kill_if_running iproxy
_wait recovery
fi
if [ "$(get_device_mode)" = "normal" ]; then
version=${version:-$(_info normal ProductVersion)}
arch=$(_info normal CPUArchitecture)
if [ "$arch" = "arm64e" ]; then
if [ "$(get_device_mode)" != "normal" ] && [ -z "$version" ] && [ "$dfuhelper" != "1" ]; then
echo "[-] You must pass the version your device is on when not starting from normal mode"
exit
fi
if [ "$(get_device_mode)" = "ramdisk" ]; then
# If a device is in ramdisk mode, perhaps iproxy is still running?
_kill_if_running iproxy
echo "[*] Rebooting device in SSH Ramdisk"
if [ "$os" = 'Linux' ]; then
sudo "$dir"/iproxy 6413 22 >/dev/null &
else
"$dir"/iproxy 6413 22 >/dev/null &
fi
sleep 2
remote_cmd "/usr/sbin/nvram auto-boot=false"
remote_cmd "/sbin/reboot"
_kill_if_running iproxy
_wait recovery
fi
if [ "$(get_device_mode)" = "normal" ]; then
version=${version:-$(_info normal ProductVersion)}
arch=$(_info normal CPUArchitecture)
if [ "$arch" = "arm64e" ]; then
echo "[-] palera1n doesn't, and never will, work on non-checkm8 devices"
exit
fi
echo "Hello, $(_info normal ProductType) on $version!"
echo "[*] Switching device into recovery mode..."
"$dir"/ideviceenterrecovery $(_info normal UniqueDeviceID)
_wait recovery
fi
# Grab more info
echo "[*] Getting device info..."
cpid=$(_info recovery CPID)
model=$(_info recovery MODEL)
deviceid=$(_info recovery PRODUCT)
if (( 0x8020 <= cpid )) && (( cpid < 0x8720 )); then
echo "[-] palera1n doesn't, and never will, work on non-checkm8 devices"
exit
fi
echo "Hello, $(_info normal ProductType) on $version!"
echo "[*] Switching device into recovery mode..."
"$dir"/ideviceenterrecovery $(_info normal UniqueDeviceID)
_wait recovery
fi
if [ "$dfuhelper" = "1" ]; then
echo "[*] Running DFU helper"
_dfuhelper "$cpid" || {
echo "[-] Failed to enter DFU mode, trying again"
sleep 3
_wait_for_device
}
exit
fi
# Grab more info
echo "[*] Getting device info..."
cpid=$(_info recovery CPID)
model=$(_info recovery MODEL)
deviceid=$(_info recovery PRODUCT)
if [ "$dfuhelper" = "1" ]; then
echo "[*] Running DFU helper"
_dfuhelper "$cpid"
exit
fi
if [ ! "$ipsw" = "" ]; then
ipswurl=$ipsw
else
#buildid=$(curl -sL https://api.ipsw.me/v4/ipsw/$version | "$dir"/jq '.[0] | .buildid' --raw-output)
if [[ "$deviceid" == *"iPad"* ]]; then
device_os=iPadOS
device=iPad
elif [[ "$deviceid" == *"iPod"* ]]; then
device_os=iOS
device=iPod
if [ ! "$ipsw" = "" ]; then
ipswurl=$ipsw
else
device_os=iOS
device=iPhone
#buildid=$(curl -sL https://api.ipsw.me/v4/ipsw/$version | "$dir"/jq '.[0] | .buildid' --raw-output)
if [[ "$deviceid" == *"iPad"* ]]; then
device_os=iPadOS
device=iPad
elif [[ "$deviceid" == *"iPod"* ]]; then
device_os=iOS
device=iPod
else
device_os=iOS
device=iPhone
fi
_check_network_connection
buildid=$(curl -sL https://api.ipsw.me/v4/ipsw/$version | "$dir"/jq '[.[] | select(.identifier | startswith("'$device'")) | .buildid][0]' --raw-output)
if [ "$buildid" == "19B75" ]; then
buildid=19B74
fi
ipswurl=$(curl -sL https://api.appledb.dev/ios/$device_os\;$buildid.json | "$dir"/jq -r .devices\[\"$deviceid\"\].ipsw)
fi
buildid=$(curl -sL https://api.ipsw.me/v4/ipsw/$version | "$dir"/jq '[.[] | select(.identifier | startswith("'$device'")) | .buildid][0]' --raw-output)
if [ "$buildid" == "19B75" ]; then
buildid=19B74
if [ "$restorerootfs" = "1" ]; then
rm -rf "blobs/"$deviceid"-"$version".der" "boot-$deviceid" work .tweaksinstalled ".fs-$deviceid"
fi
ipswurl=$(curl -sL https://api.appledb.dev/ios/$device_os\;$buildid.json | "$dir"/jq -r .devices\[\"$deviceid\"\].ipsw)
fi
if [ "$restorerootfs" = "1" ]; then
rm -rf "blobs/"$deviceid"-"$version".der" "boot-$deviceid" work .tweaksinstalled ".fs-$deviceid"
fi
# Have the user put the device into DFU
if [ "$(get_device_mode)" != "dfu" ]; then
recovery_fix_auto_boot;
_dfuhelper "$cpid" || {
echo "[-] failed to enter DFU mode, run palera1n.sh again"
exit -1
}
fi
sleep 2
# Have the user put the device into DFU
if [ "$(get_device_mode)" != "dfu" ]; then
recovery_fix_auto_boot;
_dfuhelper "$cpid" || {
echo "[-] Failed to enter DFU mode, trying again"
sleep 3
_wait_for_device
}
fi
sleep 2
}
_wait_for_device
# ============
# Ramdisk
@@ -522,7 +611,7 @@ sleep 2
# Dump blobs, and install pogo if needed
if [ -f blobs/"$deviceid"-"$version".der ]; then
if [ -f .rd_in_progress ]; then
if [ -f .rd_in_progress ] || ! [ -f .fs-"$deviceid" ]; then
rm blobs/"$deviceid"-"$version".der
fi
fi
@@ -552,9 +641,9 @@ if [ ! -f blobs/"$deviceid"-"$version".der ]; then
# Execute the commands once the rd is booted
if [ "$os" = 'Linux' ]; then
sudo "$dir"/iproxy 2222 22 &
sudo "$dir"/iproxy 6413 22 >/dev/null &
else
"$dir"/iproxy 2222 22 &
"$dir"/iproxy 6413 22 >/dev/null &
fi
while ! (remote_cmd "echo connected" &> /dev/null); do
@@ -563,7 +652,7 @@ if [ ! -f blobs/"$deviceid"-"$version".der ]; then
touch .rd_in_progress
if [ "$tweaks" = "1" ]; then
if [ "$tweaks" = "1" ] && [ "$semi_tethered" = "1" ]; then
echo "[*] Testing for baseband presence"
if [ "$(remote_cmd "/usr/bin/mgask HasBaseband | grep -E 'true|false'")" = "true" ] && [[ "${cpid}" == *"0x700"* ]]; then
disk=7
@@ -574,18 +663,16 @@ if [ ! -f blobs/"$deviceid"-"$version".der ]; then
disk=7
fi
fi
else
disk=1
fi
if [ -z "$semi_tethered" ]; then
disk=1
fi
echo "$disk" > .fs-"$deviceid"
if [[ "$version" == *"16"* ]]; then
fs=disk1s$disk
else
fs=disk0s1s$disk
fi
echo "$disk" > .fs-"$deviceid"
if [[ "$version" == *"16"* ]]; then
fs=disk1s$disk
else
fs=disk0s1s$disk
fi
# mount filesystems, no user data partition
@@ -596,7 +683,7 @@ if [ ! -f blobs/"$deviceid"-"$version".der ]; then
echo "[!] Active file does not exist! Please use SSH to create it"
echo " /mnt6/active should contain the name of the UUID in /mnt6"
echo " When done, type reboot in the SSH session, then rerun the script"
echo " ssh root@localhost -p 2222"
echo " ssh root@localhost -p 6413"
exit
fi
active=$(remote_cmd "cat /mnt6/active" 2> /dev/null)
@@ -611,7 +698,7 @@ if [ ! -f blobs/"$deviceid"-"$version".der ]; then
remote_cmd "/bin/sync"
remote_cmd "/usr/sbin/nvram auto-boot=true"
rm -f BuildManifest.plist
echo "[*] Done! Rebooting your device"
echo "[*] Done! Rebooting your device (if it doesn't reboot, you may force reboot)"
remote_cmd "/sbin/reboot"
exit;
fi
@@ -652,11 +739,7 @@ if [ ! -f blobs/"$deviceid"-"$version".der ]; then
# lets actually patch the kernel
echo "[*] Patching the kernel"
remote_cmd "rm -f /mnt6/$active/kpf"
if [[ "$version" == *"16"* ]]; then
remote_cp binaries/Kernel16Patcher.ios root@localhost:/mnt6/$active/kpf
else
remote_cp binaries/Kernel15Patcher.ios root@localhost:/mnt6/$active/kpf
fi
remote_cp binaries/kpf.ios root@localhost:/mnt6/$active/kpf
remote_cmd "/usr/sbin/chown 0 /mnt6/$active/kpf"
remote_cmd "/bin/chmod 755 /mnt6/$active/kpf"
@@ -670,6 +753,9 @@ if [ ! -f blobs/"$deviceid"-"$version".der ]; then
fi
sleep 1
# Checking network connection before downloads
_check_network_connection
# download the kernel
echo "[*] Downloading BuildManifest"
"$dir"/pzb -g BuildManifest.plist "$ipswurl"
@@ -690,7 +776,7 @@ if [ ! -f blobs/"$deviceid"-"$version".der ]; then
remote_cp root@localhost:/mnt6/$active/System/Library/Caches/com.apple.kernelcaches/kcache.patched work/
if [ "$tweaks" = "1" ]; then
if [[ "$version" == *"16"* ]]; then
"$dir"/Kernel64Patcher work/kcache.patched work/kcache.patched2 -e -o -u -l -t -h -d
"$dir"/Kernel64Patcher work/kcache.patched work/kcache.patched2 -e -o -u -l -h -d
else
"$dir"/Kernel64Patcher work/kcache.patched work/kcache.patched2 -e -l
fi
@@ -766,18 +852,22 @@ if [ ! -f blobs/"$deviceid"-"$version".der ]; then
remote_cmd "mkdir -p /mnt$di/jbin/binpack /mnt$di/jbin/loader.app"
sleep 1
# Checking network connection before downloads
_check_network_connection
# download loader
cd other/rootfs/jbin
rm -rf loader.app
curl -LO https://nightly.link/palera1n/loader/workflows/build/main/palera1n.zip
unzip palera1n.zip -d .
echo "[*] Downloading loader"
curl -LO https://static.palera.in/artifacts/loader/rootful/palera1n.ipa
unzip palera1n.ipa -d .
mv Payload/palera1nLoader.app loader.app
rm -rf palera1n.zip loader.zip palera1n.ipa Payload
# download jbinit files
rm -f jb.dylib jbinit jbloader launchd
curl -L https://nightly.link/palera1n/jbinit/workflows/build/main/rootfs.zip -o rfs.zip
echo "[*] Downloading jbinit files"
curl -L https://static.palera.in/deps/rootfs.zip -o rfs.zip
unzip rfs.zip -d .
unzip rootfs.zip -d .
rm rfs.zip rootfs.zip
@@ -785,6 +875,7 @@ if [ ! -f blobs/"$deviceid"-"$version".der ]; then
# download binpack
mkdir -p other/rootfs/jbin/binpack
echo "[*] Downloading binpack"
curl -L https://static.palera.in/binpack.tar -o other/rootfs/jbin/binpack/binpack.tar
sleep 1
@@ -830,7 +921,11 @@ if [ ! -f blobs/"$deviceid"-"$version".der ]; then
"$dir"/ideviceenterrecovery $(_info normal UniqueDeviceID)
fi
_wait recovery
_dfuhelper "$cpid"
_dfuhelper "$cpid" || {
echo "[-] Failed to enter DFU mode, trying again"
sleep 3
_wait_for_device
}
sleep 2
fi
@@ -872,6 +967,9 @@ if [ ! -f boot-"$deviceid"/ibot.img4 ]; then
#"$dir"/img4tool -e -s $(pwd)/blobs/"$deviceid"-"$version".shsh2 -m work/IM4M
cd work
# Checking network connection before downloads
_check_network_connection
# Do payload if on iPhone 7-X
if [[ "$deviceid" == iPhone9,[1-4] ]] || [[ "$deviceid" == "iPhone10,"* ]]; then
if [[ "$version" == "16.0"* ]] || [[ "$version" == "15"* ]]; then
@@ -1007,7 +1105,12 @@ echo "The device should now boot to iOS"
echo "When you unlock the device, it will respring about 30 seconds after"
echo "If this is your first time jailbreaking, open the new palera1n app, then press Install"
echo "Otherwise, press Do All in the settings section of the app"
echo "If you have any issues, please join the Discord server and ask for help: https://dsc.gg/palera1n"
echo "If you have any issues, please first check the COMMONISSUES.md document for common issues"
if [ "$china" != "1" ]; then
echo "If that list doesn't solve your issue, join the Discord server and ask for help: https://dsc.gg/palera1n"
fi
echo "Enjoy!"
} 2>&1 | tee logs/${log}
popd &> /dev/null
+1 -1
Submodule ramdisk updated: a463d164c0...2cff81b1e9.