Why did I create this repository? Because nobody provides proper documentation, and more importantly premade/precompiled files!
https://www.youtube.com/shorts/un0yvOCv--g?is=asPFtHepmnCoCIOV
The linux kernel should work for any idevice that requires a 16k page size.
Just change .dtb file for you idevice when you use cat to make final m1n1-linux.bin
Do not forget that .dtb file is device tree of your idevice. This is why you need correct file.
You can use my precompiled bins, but you need make your rootfs via pmbootstrap
https://wiki.postmarketos.org/wiki/Pmbootstrap/Installation
1. pmbootstrap init
2. pmbootstrap export
3. Copy image to netboot path
- Put idevice to DFU mode
- Run exploit and boot to PongoOS
sudo /home/hodak/.local/bin/palera1n -p
- Run pongoterm to send blob
chmod +x pongoterm
sudo ./pongoterm
- In pongoOS shell
/send m1n1-linux.bin
bootm
- Wait some time, when "ip a" will show usb0
- Turn on and set ip
sudo ip link set usb0 up
sudo ip addr add 172.16.42.2/24 dev usb0
- Start netboot server
pmbootstrap netboot serve
-> No further steps are necessary, they are for information purposes only.
(default m1n1-linux.bin is for iPhone 8 GSM model)
for different idevice or global model just use correct idevice dtb
m1n1 bootloader + .dtb + linux kernel + initramfs
cat m1n1.bin \
<(echo 'chosen.bootargs=loglevel=7 pmos.nosplash') \
arch/arm64/boot/dts/apple/t8015-d201.dtb \
arch/arm64/boot/Image.gz \
initramfs.gz \
> m1n1-linux.bin
Your name and password can be different
ssh user@172.16.42.1
Show usb ttys
ls /dev/ttyACM* /dev/ttyUSB* 2>/dev/null
Connect to tty
sudo screen /dev/ttyACM0 115200
On PC
ip route show default
sudo sysctl -w net.ipv4.ip_forward=1
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sudo iptables -A FORWARD -i usb0 -o wlan0 -j ACCEPT
sudo iptables -A FORWARD -i wlan0 -o usb0 -m state --state RELATED,ESTABLISHED -j ACCEPT
On idevice
sudo ip route add default via 172.16.42.2
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
ping -c 3 google.com
On idevice
x11vnc -display :0 -forever -shared -rfbport 5900 -nopw
On PC
vncviewer 127.0.0.1:5900
DISPLAY=:0 xrandr -o left
sudo apk add <package>
sudo apk install chromium
sudo apk add chocolate-doom freedoom
DISPLAY=:0 chocolate-doom -iwad /usr/share/games/doom/freedoom1.wad
This commands can destroy iOS, but you can restore via DFU
This will create 12GB partition for linux, you can set different size
- Jailbreak iOS
- Use terminal app or ssh to terminal access
- Download tools
https://nightly.link/hoolocklinux/docs/workflows/build/master/hoolock-support-iphoneos.zip
- Unpack to var/jb
- If you use ssh set auto lock to never
- Better to run this command in screen or tmux, this will take some few minutes
- In ssh go to var/jb
- ./resize_apfs disk0s1 51999997952
- ./gdisk -l /dev/disk0
- ./gdisk /dev/disk0
- Command: d, Partition number: 1
- Command: n, Partition number: 1, First sector: 6, Last sector: 12695317, Hex code: AF0A
- Command: n, Partition number: 2, First sector: 12695318, Last sector: 15624994, Hex code: 8300
- Command: p (user verify)
- Command: w (write)
- Boot Linux on idevice
- sudo mkfs.ext4 -L hoolocklinux /dev/nvme0n1p2
- sudo mkdir -p /mnt/linux
- (Use only if you need mount) sudo mount /dev/nvme0n1p2 /mnt/linux
More info
https://github.com/HoolockLinux/docs/blob/master/tools/README.md https://github.com/HoolockLinux/docs/blob/master/tutorials/gdisk.md
https://github.com/HoolockLinux/docs/blob/master/tutorials/SETUP.md#building-linux
https://github.com/HoolockLinux/linux/tree/hoolock/arch/arm64/boot/dts/apple
Choose correct dtb: idevice and Global/GSM model
https://github.com/LineageOS/android_device_apple_snowcastle
https://palera.in/
https://github.com/HoolockLinux
https://github.com/checkra1n/PongoOS/blob/master/scripts/pongoterm.c
https://github.com/AsahiLinux/m1n1
https://wiki.postmarketos.org/wiki/Main_Page


