Skip to content
A build system for AOSP based roms optimized for determinisim, customization, and automation.
Python Shell Dockerfile Makefile
Branch: master
Clone or download
Type Name Latest commit message Commit time
Failed to load latest commit information.
manifests first successful build Sep 14, 2019
overlay/external/chromium include chromium overlay Aug 6, 2019
scripts first successful build Sep 14, 2019
.dockerignore include chromium overlay Aug 6, 2019
Dockerfile add python-six now required by upstream build scripts Sep 10, 2019 relicense as MIT Dec 13, 2018
Makefile update per review feedback Sep 11, 2019 refactor fetch as standalone and optional Sep 10, 2019
config.yml first successful build Sep 14, 2019

AOSP Build


A build system for AOSP and AOSP-based ROMs that allows for easy customization, and automation while optimizing for reproducible builds.

By default this repo will build latest vanilla AOSP as a baseline, which also serves as the baseline E2E test.

Any third party rom project need only include their own customized version of the Makefile and config.yml from this repo, along with any desired patches.


Please join us on IRC: ircs://!os



  • 100% Open Source and auditable
    • Except for mandatory vendor blobs hash verified from Google Servers
  • Automated build system:
    • Completely run inside Docker for portability
    • Customize builds from central config file.
    • Automatically pin hashes from upstreams for reproducibility
    • Automated patching/inclusion of upstream Android Sources


Device Codename Tested Verifiable Secure Boot Download
Pixel 3 XL Crosshatch TRUE FALSE AVB 2.0 Soon™
Pixel 3 Blueline FALSE FALSE AVB 2.0 Soon™
Pixel 2 XL Taimen TRUE FALSE AVB 1.0 Soon™
Pixel 2 Walleye FALSE FALSE AVB 1.0 Soon™
Pixel XL Marlin TRUE FALSE dm-verity Soon™
Pixel Sailfish TRUE FALSE dm-verity Soon™




cd crosshatch-PQ1A.181205.006/


  1. Unlock "Developer Settings" by tapping "About -> Build" several times
  2. Ensure "Enable OEM Unlocking" is enabled under "Developer Settings".
  3. Unlock the bootloader.
adb reboot bootloader
fastboot flashing unlock
  1. Repeat steps #1 and #2
  2. Flash new factory images



  • Linux host system
  • Docker
  • x86_64 CPU
  • 10GB+ available memory
  • 350GB+ available disk

Download sources

make DEVICE=crosshatch fetch

Generate Signing Keys

Each device needs its own set of keys:

make DEVICE=crosshatch keys

Build Factory Image

Build flashable images for desired device:

make DEVICE=crosshatch build release



Do basic cleaning without deleting cached artifacts/sources:

make clean

Clean everything but keys

make mrproper


  • Build a given device twice from scratch and compare with diffoscope
  • Future: Run Android Compatibility Test Suite
make test


Create a shell inside the docker environment:

make shell


Output all untracked changes in android sources to a patchfile:

make diff > patches/my-feature.patch


make install


Build latest config from upstream sources:

make DEVICE=crosshatch config manifest


Use at your own risk. You might be eaten by a grue.

You can’t perform that action at this time.