mirror of
https://github.com/palera1n/palera1n.git
synced 2026-10-24 02:59:49 +02:00
edits
This commit is contained in:
2 files changed
+77
-46
No files matched your search
@@ -2,15 +2,16 @@
|
||||
iOS 15.0-15.4.1 checkm8 "jailbreak"
|
||||
|
||||
# What does this do?
|
||||
Currently, it just boots the device with AMFI patches. In the future, I'd want this to install the Pogo app automatically when it's public.
|
||||
It boots the device with AMFI patches, and installs Pogo by Amy.
|
||||
|
||||
# How to use
|
||||
1. Install libimobiledevice
|
||||
- It's needed for `ideviceenterrecovery` and `ideviceinfo`
|
||||
2. Clone this repo with `git clone https://github.com/itsnebulalol/palera1n && cd palera1n`
|
||||
3. Prepare your blob for the current version you're on
|
||||
4. Run `./palera1n.sh path/to/blob.shsh2`
|
||||
5. Make sure your device is in normal mode
|
||||
4. Run `./palera1n.sh path/to/blob.shsh2 install`
|
||||
- If you want to start from DFU, run `./palera1n.sh path/to/blob.shsh2 --dfu <your iOS version here> install`
|
||||
5. Make sure your device is in normal mode, if you didn't start from DFY
|
||||
6. Follow the steps
|
||||
- Right now, getting into DFU is steps for A11, please suppliment the steps for your device
|
||||
|
||||
|
||||
+73
-43
@@ -52,39 +52,65 @@ echo "palera1n | Version $version"
|
||||
echo "Written by Nebula | Some code by Nathan | Patching commands by Mineek | Loader app by Amy"
|
||||
echo ""
|
||||
|
||||
# Get device's iOS version from ideviceinfo
|
||||
# Get device's iOS version from ideviceinfo if in normal mode
|
||||
echo "[*] Getting device version..."
|
||||
version=$2
|
||||
if [ "$2" = '--dfu' ]; then
|
||||
if [ -z "$3" ]; then
|
||||
echo "[-] When using --dfu, please pass the version you're device is on"
|
||||
exit
|
||||
else
|
||||
version=$3
|
||||
fi
|
||||
else
|
||||
if [ "$os" = 'Darwin' ]; then
|
||||
if ! (system_profiler SPUSBDataType 2> /dev/null | grep ' iPhone:' >> /dev/null); then
|
||||
echo "[*] Waiting for device in normal mode"
|
||||
fi
|
||||
|
||||
if [ -z "$version" ]; then
|
||||
echo "[-] No version specified"
|
||||
exit
|
||||
while ! (system_profiler SPUSBDataType 2> /dev/null | grep ' iPhone:' >> /dev/null); do
|
||||
sleep 1
|
||||
done
|
||||
|
||||
defaults write -g ignore-devices -bool true
|
||||
defaults write com.apple.AMPDevicesAgent dontAutomaticallySyncIPods -bool true
|
||||
killall Finder
|
||||
else
|
||||
if ! (lsusb 2> /dev/null | grep ' iPhone:' >> /dev/null); then
|
||||
echo "[*] Waiting for device in normal mode"
|
||||
fi
|
||||
|
||||
while ! (lsusb 2> /dev/null | grep ' iPhone:' >> /dev/null); do
|
||||
sleep 1
|
||||
done
|
||||
fi
|
||||
fi
|
||||
|
||||
# Put device into recovery mode, and set auto-boot to true
|
||||
echo "[*] Switching device into recovery mode..."
|
||||
ideviceenterrecovery $(ideviceinfo | grep "UniqueDeviceID: " | sed 's/UniqueDeviceID: //') > /dev/null
|
||||
if [ "$os" = 'Darwin' ]; then
|
||||
if ! (system_profiler SPUSBDataType 2> /dev/null | grep ' Apple Mobile Device (Recovery Mode):' >> /dev/null); then
|
||||
echo "[*] Waiting for device to reconnect in recovery mode"
|
||||
fi
|
||||
if [ ! "$2" = '--dfu' ]; then
|
||||
echo "[*] Switching device into recovery mode..."
|
||||
ideviceenterrecovery $(ideviceinfo | grep "UniqueDeviceID: " | sed 's/UniqueDeviceID: //') > /dev/null
|
||||
if [ "$os" = 'Darwin' ]; then
|
||||
if ! (system_profiler SPUSBDataType 2> /dev/null | grep ' Apple Mobile Device (Recovery Mode):' >> /dev/null); then
|
||||
echo "[*] Waiting for device to reconnect in recovery mode"
|
||||
fi
|
||||
|
||||
while ! (system_profiler SPUSBDataType 2> /dev/null | grep ' Apple Mobile Device (Recovery Mode):' >> /dev/null); do
|
||||
sleep 1
|
||||
done
|
||||
else
|
||||
if ! (lsusb 2> /dev/null | grep ' Apple Mobile Device (Recovery Mode):' >> /dev/null); then
|
||||
echo "[*] Waiting for device to reconnect in recovery mode"
|
||||
fi
|
||||
while ! (system_profiler SPUSBDataType 2> /dev/null | grep ' Apple Mobile Device (Recovery Mode):' >> /dev/null); do
|
||||
sleep 1
|
||||
done
|
||||
else
|
||||
if ! (lsusb 2> /dev/null | grep ' Apple Mobile Device (Recovery Mode):' >> /dev/null); then
|
||||
echo "[*] Waiting for device to reconnect in recovery mode"
|
||||
fi
|
||||
|
||||
while ! (lsusb 2> /dev/null | grep ' Apple Mobile Device (Recovery Mode):' >> /dev/null); do
|
||||
sleep 1
|
||||
done
|
||||
while ! (lsusb 2> /dev/null | grep ' Apple Mobile Device (Recovery Mode):' >> /dev/null); do
|
||||
sleep 1
|
||||
done
|
||||
fi
|
||||
$dir/irecovery -c "setenv auto-boot true"
|
||||
$dir/irecovery -c "saveenv"
|
||||
fi
|
||||
$dir/irecovery -c "setenv auto-boot true"
|
||||
$dir/irecovery -c "saveenv"
|
||||
|
||||
# Grab more info from recovery
|
||||
# Grab more info
|
||||
echo "[*] Getting device info..."
|
||||
cpid=$($dir/irecovery -q | grep CPID | sed 's/CPID: //')
|
||||
model=$($dir/irecovery -q | grep MODEL | sed 's/MODEL: //')
|
||||
@@ -92,29 +118,33 @@ deviceid=$($dir/irecovery -q | grep PRODUCT | sed 's/PRODUCT: //')
|
||||
ipswurl=$(curl -sL "https://api.ipsw.me/v4/device/$deviceid?type=ipsw" | $dir/jq '.firmwares | .[] | select(.version=="'$version'") | .url' --raw-output)
|
||||
|
||||
# Have the user put the device into DFU
|
||||
echo "[*] Press any key when ready for DFU mode"
|
||||
read -n 1 -s
|
||||
step 3 "Get ready"
|
||||
step 4 "Hold volume down + side button" &
|
||||
sleep 3
|
||||
irecovery -c reset
|
||||
step 1 "Keep holding"
|
||||
step 10 'Release side button, but keep holding volume down'
|
||||
sleep 1
|
||||
if [ ! "$2" = '--dfu' ]; then
|
||||
echo "[*] Press any key when ready for DFU mode"
|
||||
read -n 1 -s
|
||||
step 3 "Get ready"
|
||||
step 4 "Hold volume down + side button" &
|
||||
sleep 3
|
||||
irecovery -c reset
|
||||
step 1 "Keep holding"
|
||||
step 10 'Release side button, but keep holding volume down'
|
||||
sleep 1
|
||||
fi
|
||||
|
||||
# Check if device entered dfu
|
||||
if [ "$os" = 'Darwin' ]; then
|
||||
if ! (system_profiler SPUSBDataType 2> /dev/null | grep ' Apple Mobile Device (DFU Mode):' >> /dev/null); then
|
||||
echo "[-] Device didn't go in DFU mode, please rerun the script and try again"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
if ! (lsusb 2> /dev/null | grep ' Apple Mobile Device (DFU Mode):' >> /dev/null); then
|
||||
echo "[-] Device didn't go in DFU mode, please rerun the script and try again"
|
||||
exit 1
|
||||
if [ ! "$2" = '--dfu' ]; then
|
||||
if [ "$os" = 'Darwin' ]; then
|
||||
if ! (system_profiler SPUSBDataType 2> /dev/null | grep ' Apple Mobile Device (DFU Mode):' >> /dev/null); then
|
||||
echo "[-] Device didn't go in DFU mode, please rerun the script and try again"
|
||||
exit
|
||||
fi
|
||||
else
|
||||
if ! (lsusb 2> /dev/null | grep ' Apple Mobile Device (DFU Mode):' >> /dev/null); then
|
||||
echo "[-] Device didn't go in DFU mode, please rerun the script and try again"
|
||||
exit
|
||||
fi
|
||||
fi
|
||||
echo "[*] Device entered DFU!"
|
||||
fi
|
||||
echo "[*] Device entered DFU!"
|
||||
|
||||
sleep 2
|
||||
$dir/gaster pwn > /dev/null
|
||||
|
||||
Reference in new issue
Block a user