
Research tooling to boot Linux on iPad mini 1 via checkm8, patched iBSS/iBEC, and custom bare-metal payloads, including device tree port, kernel build, and boot scripts.
Research and tooling to boot Linux on iPad mini 1 (P105AP / iPad2,5, Apple A5) via checkm8, patched iBSS/iBEC, and custom bare-metal payloads — without writing to the iOS install.
This repo combines:
bootxCritical addresses: see docs/ADDRESSES.md.
Target: iPad2,5, board P105AP, SoC S5L8942X (dual Cortex-A9, 512 MiB).
make all # ADT → JSON → DTS → DTB, validate
make kernel # cross-compile armhf zImage
bash scripts/build-ibec.sh # patched iBSS/iBEC (needs IPSW)
bash scripts/deploy-flashdrive.sh
Copy flashdrive/ to your boot machine, enter pwned DFU, then:
# ACE path (staging-bundle + autogo iBEC)
./scripts/run-linux-ace.sh
# LIK path (ramdisk + bootx; needs Legacy-iOS-Kit saved IPSW)
./scripts/run-linux-lik.sh
Scripts resolve paths from the repo / flashdrive directory — no hardcoded home paths.
Optional remote deploy: copy scripts/laptop.env.example → scripts/laptop.env and set LAPTOP=user@host.
bash scripts/build-ram-boot.shtools/gaster.exepowershell -ExecutionPolicy Bypass -File scripts\host-boot-checkm8.ps1See docs/boot.md for full procedure.
Research tooling — use at your own risk on hardware you own.
| Variable | Default | Purpose |
|---|
KERNELCACHE | kernelcache/kernelcache.p105.raw | Decrypted XNU for RE |
IPSW / IPSW_DIR | ~/ipsw/ | Restore IPSW for iBEC build |
LIK_SAVED | ~/Legacy-iOS-Kit/saved/iPad2,5 | LIK boot artifacts |
FLASHDRIVE | ./flashdrive | Boot bundle directory |
FLASHDRIVE_DEST | ~/flashdrive | Remote USB host path |
| Doc | Topic |
|---|
docs/ADDRESSES.md | DRAM, MMIO, PMGR, Linux layout |
docs/boot-strategy.md | ACE vs LIK vs bare-metal |
docs/p105-touch-clock-re.md | Multitouch clocks, Cmwp RE |
docs/p105-gpio.md | GPIO map |
docs/memory-probe.md | Recovery memory layout |
| Phase | State |
|---|
| ADT → DTB | done |
| Kernel build | builds; hardware boot in progress |
| iBEC autogo chain | works on hardware |
| Linux ACE boot | staging path implemented |
| Touch bare-metal | PMGR/iBEC clocks OK; SPI MMIO blocked without XNU Cmwp |
| pongoOS | not applicable (AArch64 only; A5 is ARMv7) |
| Path | Description |
|---|
dts/apple-p105ap-raw.json | Normalised ADT |
dtb/p105ap.dtb | Boot DTB (A9 timers disabled first) |
build/out/zImage | Patched Linux kernel |
ibec/iBEC.patched.autogo.direct.dfu | Recovery boot iBEC |
flashdrive/staging-bundle.bin | Linux + loader bundle |
pongo/touch_cursor.c | Touch probe payload |