MCPcopy Index your code
hub / github.com/checkra1n/PongoOS

github.com/checkra1n/PongoOS @2.6.3

Chat with this repo
repository ↗ · DeepWiki ↗ · release 2.6.3 ↗ · + Follow
1,407 symbols 3,393 edges 183 files 116 documented · 8%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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

Contributions

By submitting a pull request, you agree to license your contributions under the MIT License and you certify that you have the right to do so.
If you want to import third-party code that cannot be licensed as such, that shall be noted prominently for us to evaluate accordingly.

Structure

  • The core PongoOS and drivers are in src/.
  • Build-time helper tools are in tools/.
  • The stdlib used by PongoOS (Newlib) is in aarch64-none-darwin.
  • This includes a custom patch for Newlib to work with the Darwin ABI.
  • An example module exists in example/.
  • Scripts to communicate with the PongoOS shell are in scripts/.
  • This includes pongoterm, an interactive shell client for macOS.
  • The checkra1n kernel patchfinder (KPF) is in checkra1n/kpf.
  • This currently includes the SEP exploit, though that is to be moved into mainline PongoOS in the future.
  • A userland version of the KPF can be built from checkra1n/kpf-test (can only be run on arm64).

Core symbols most depended-on inside this repo

panic
called by 238
src/kernel/panic.c
disable_interrupts
called by 89
src/kernel/lowlevel.c
enable_interrupts
called by 77
src/kernel/lowlevel.c
xnu_pf_maskmatch
called by 53
src/drivers/xnu/xnu.c
reg_write
called by 45
src/drivers/usb/synopsys_otg.c
command_register
called by 40
src/shell/command.c
xnu_ptr_to_va
called by 37
src/drivers/xnu/xnu.c
fdt_appendprop_cell
called by 31
src/modules/linux/libfdt/libfdt.h

Shape

Function 1,044
Class 360
Enum 3

Languages

C79%
C++21%

Modules by API surface

src/drivers/usb/synopsys_otg.c72 symbols
src/drivers/xnu/xnu.c70 symbols
src/kernel/task.c58 symbols
src/drivers/sep/sep.c58 symbols
src/kernel/mm.c56 symbols
checkra1n/kpf/main.c54 symbols
apple-include/mach-o/loader.h51 symbols
src/modules/linux/libfdt/fdt_ro.c44 symbols
src/kernel/lowlevel.c36 symbols
apple-include/architecture/byte_order.h36 symbols
src/dynamic/modload.c30 symbols
src/modules/linux/libfdt/fdt_rw.c28 symbols

For agents

$ claude mcp add PongoOS \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page