PongoOS

PongoOS a pre-boot execution environment for Apple boards built on top of checkra1n.

Building on macOS

  • Install Xcode + command-line utilities
  • Run make all

Building on Linux

  • Install clang (if in doubt, from apt.llvm.org)
  • Install ld64 and cctools' strip.
    • On Debian/Ubuntu these can be installed from the checkra1n repo:
      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
      
    • On other Linux flavours you'll likely have to build them yourself. Maybe this repo will help you.
  • Run make all

If clang, ld64 or cctools-strip don't have their default names/paths, you'll want to change their invocation. For reference, the default variables are equivalent to:

EMBEDDED_CC=clang EMBEDDED_LDFLAGS=-fuse-ld=/usr/bin/ld64 STRIP=cctools-strip make all

Build artifacts

The Makefile will create four binaries in build/:

  • Pongo - A Mach-O of the main PongoOS
  • Pongo.bin - Same as the above, but as a bare metal binary that can be jumped to
  • checkra1n-kpf-pongo - The checkra1n kernel patchfinder, as a Pongo module (Mach-O/kext)
  • PongoConsolidated.bin - PongoOS and the KPF merged into a single binary

Usage

checkra1n -k Pongo.bin                  # Boots to Pongo shell, KPF not available
checkra1n -k PongoConsolidated.bin      # Auto-runs KPF and boots to XNU
checkra1n -k PongoConsolidated.bin -p   # Loads KPF, but boots to Pongo shell

Download pongoOS

checkra1n/pongoOS
pongoOS. Contribute to checkra1n/pongoOS development by creating an account on GitHub.