- Install checkra1n
git clone https://github.com/konradybcio/pongoOS
cd pongoOS
make -j$(nproc)
/Applications/checkra1n.app/Contents/MacOS/checkra1n -v -V -p -c -k ./build/Pongo.bin
- Install checkra1n
git clone https://github.com/konradybcio/pongoOS
cd pongoOS
- Install
clang
(use your distro's package manager) - Install
ld64
andcctools-strip
echo 'deb https://assets.checkra.in/debian /' | sudo tee /etc/apt/sources.list.d/checkra1n.list
sudo apt-key adv --fetch-keys https://assets.checkra.in/debian/archive.key
sudo apt-get update
sudo apt-get install -y ld64 cctools-strip
ld64
wget https://github.com/Siguza/ld64/releases/download/530-2/ld64.zip
unzip ld64.zip
chmod +x ld64
sudo mv ./ld64 /usr/bin/
rm ./ld64.zip ./ld64_530-2_amd64.deb
cctools-strip
wget https://github.com/Siguza/ld64/releases/download/530-2/cctools-strip.zip
unzip cctools-strip.zip
chmod +x cctools-strip
sudo mv ./cctools-strip /usr/bin/
rm ./cctools-strip.zip ./cctools-strip_949.0.1-2_amd64.deb
- Alternatively build from this repo:
https://github.com/Siguza/ld64
EMBEDDED_CC=clang EMBEDDED_LDFLAGS=-fuse-ld=/usr/bin/ld64 STRIP=cctools-strip make all
/path/to/checkra1n -v -V -p -c -k ./build/Pongo.bin
- Get a Linux machine / VM and follow the instructions below
¯\_(ツ)_/¯
- Install
clang ncurses flex git bison
and whatever build-essential packages from your distro git clone https://github.com/konradybcio/linux-apple
(this like >2 GiB in size)cd linux-apple
- Get a defconfig:
- There's an example one in this repo and copy it as
.config
to the directory you're in. (wget https://raw.githubusercontent.com/SoMainline/linux-apple-resources/master/example.config -O ./.config
) - Alternatively:
- On arm64: Run
make defconfig
- NOT on arm64: Run
make ARCH=arm64 LLVM=1 defconfig
- On arm64: Run
- Make sure
CONFIG_ARCH_APPLE
,CONFIG_FB_SIMPLE
andCONFIG_USB_DWC2
are set to=y
- Adjust your page size:
- On arm64: Run
make menuconfig
- NOT on arm64: Run
make ARCH=arm64 LLVM=1 menuconfig
- Press
/
to search - Type
_PAGES
and press ENTER - Press
1
- Press
ENTER
and select your desired pagesize with arrows (4K for A7-A8X, 16K for A9 and above) - Press
ENTER
to select - Mash
ESC
like a mad dog until you get asked whether you want to save, choose yes
- Compile the kernel:
- On arm64:
make -j$(nproc) Image.lzma dtbs
- Not on arm64:
make ARCH=arm64 LLVM=1 -j$(nproc) Image.lzma dtbs
-
Get the dtbpack script from this repo and put it in your Linux source directory (
wget https://raw.githubusercontent.com/SoMainline/linux-apple-resources/master/dtbpack.sh
) -
make it executable by running
chmod +x dtbpack.sh
-
Run
./dtbpack.sh
-
Verify there is now a ~100KiB (or more) file called
dtbpack
in your directory by runningls -lh dtbpack
- Think back to where your pongoOS directory is
- Find some arm64 ramdisk (you can steal it from any arm64 distro's /boot partition or use one from this repo)
python3 /path/to/pongoOS/scripts/load_linux.py -k arch/arm64/boot/Image.lzma -d dtbpack -r someramdisk.img
- If you see
Waiting for device...
-> unplug and replug the lightning cable