Clone this repo:
  1. c3e1772 minijail: Add support for pre-compiled BPF programs by Luis Hector Chavez · 8 weeks ago master nougat-iot-release oreo-mr1-iot-release android-n-iot-release-ihome-igv1 android-o-mr1-iot-release-1.0.7 android-o-mr1-iot-release-smart-display-r4 android-wear-8.0.0_r2
  2. 466f231 minijail: Introduce the ~ unary operator and parenthesized constants by Luis Hector Chavez · 6 weeks ago
  3. f7b2018 dump_constants: Add a tool to generate a JSON file with all constants by Luis Hector Chavez · 7 weeks ago
  4. d81f47f Merge pie-platform-release to aosp-master - DO NOT MERGE by Bill Yi · 7 weeks ago
  5. 4b6ce5c minijail: Document the @include syntax by Luis Hector Chavez · 8 weeks ago

Minijail

The Minijail homepage and main repo is https://android.googlesource.com/platform/external/minijail/.

There might be other copies floating around, but this is the official one!

What is it?

Minijail is a sandboxing and containment tool used in Chrome OS and Android. It provides an executable that can be used to launch and sandbox other programs, and a library that can be used by code to sandbox itself.

Getting the code

You're one git clone away from happiness.

$ git clone https://android.googlesource.com/platform/external/minijail
$ cd minijail

Releases are tagged as linux-vXX: https://android.googlesource.com/platform/external/minijail/+refs

Building

See the HACKING.md document for more details.

Release process

See the RELEASE.md document for more details.

Contact

We've got a couple of contact points.

Talks and presentations

The following talk serves as a good introduction to Minijail and how it can be used.

Video, slides.

Example usage

The Chromium OS project has a comprehensive sandboxing document that is largely based on Minijail.

After you play with the simple examples below, you should check that out.

Change root to any user

# id
uid=0(root) gid=0(root) groups=0(root),128(pkcs11)
# minijail0 -u jorgelo -g 5000 /usr/bin/id
uid=72178(jorgelo) gid=5000(eng) groups=5000(eng)

Drop root while keeping some capabilities

# minijail0 -u jorgelo -c 3000 -- /bin/cat /proc/self/status
Name: cat
...
CapInh: 0000000000003000
CapPrm: 0000000000003000
CapEff: 0000000000003000
CapBnd: 0000000000003000