Installation
From source (the only supported method today)
BoxKernel is a single-crate Rust workspace with one dependency
(libc). There is nothing to configure and no system libraries to
install beyond Rust itself.
$ git clone https://github.com/BoxOSLab/BoxKernel.git
$ cd BoxKernel
$ cargo build --release
$ ./target/release/proot --version
BoxKernel 5.1.0
Requirements:
- Linux. BoxKernel instruments
ptrace(2),seccomp,process_vm_readv/writev, and/proc/<pid>/fd. It does not run on macOS or Windows; Android works the same way it does for the C implementation (through Termux). - Rust 1.85 or newer.
rust-toolchain.tomlpinsstableand pulls inrustfmt+clippyautomatically. Edition 2024 is in use. - Kernel: any reasonably modern Linux.
process_vm_*(≥ 3.2) is preferred for tracee memory access; thePTRACE_PEEK/POKEfallback covers older kernels. Seccomp acceleration needsseccompfiltering support (≥ 3.5 realistically, withSECCOMP_MODE_FILTER).
Installing the binary
$ cargo install --path . # installs `proot` into ~/.cargo/bin
# or
$ install -Dm755 target/release/proot ~/.local/bin/proot
The binary is deliberately named proot — it is a drop-in replacement
for the C implementation. If you already have C proot installed, pick
a different destination or rename (e.g. proot-rs).
Installing the manual page
$ install -Dm644 doc/proot.1 ~/.local/share/man/man1/proot.1
$ man proot
Verifying the install
$ proot -0 /usr/bin/id -u
0
$ proot -b /etc/hostname /bin/cat /etc/hostname
<your hostname>
$ proot -v 1 /bin/true # verbose banner, one line
Cross-compiling / Android
For Android/Termux use the same build inside the Termux Rust package;
all Termux-specific options (-0, -l, --sysvipc, -p, -L,
-H, --kill-on-exit) are implemented except --ashmem-memfd, which
is Android-Bionic-specific and not yet ported — see
Compatibility.