DocumentationBUILD THE IMAGE

BUILD THE IMAGE

From source to a flashable bundle.

One terminal session. Ninety minutes on a modern workstation. The same hash we publish — or an alarm.

01

Prerequisites

An Ubuntu 22.04 LTS or 24.04 LTS workstation with 64 GB of RAM, 400 GB of free disk, a recent JDK 17, the latest Android repo tool, and Git. Any modern Linux works — these are the versions we test against.

Why so much disk?
An AOSP checkout is roughly 250 GB. The build artifacts add another 80–100 GB. Keep this on an SSD — spinning rust will not finish in any reasonable time.
02

Clone the public manifest

shellgit clone --depth 1 \
  https://git.lydos.ailydian.com/lydos/lydos-phone-manifest \
  -b husky-2026.06.r1
cd lydos-phone-manifest
repo init -u . -b husky-2026.06.r1
repo sync -j8 -c --no-clone-bundle --no-tags

repo sync takes roughly 30–60 minutes the first time. Subsequent syncs are quick.

03

Build the image

shell. build/envsetup.sh
lunch lydos_husky-user
m -j$(nproc) target-files-package

lunch sets up the build environment for the target device. m target-files-package produces the bundle that will be flashed and the matching reproducibility receipt.

Long-running step
The first build takes 60–120 minutes depending on hardware. Subsequent builds are incremental and much shorter.
04

Verify against the published hash

shell./verify-bundle.sh out/dist/lydos_husky-target_files-*.zip
# expects:
#   build_sha256 == published_release_sha256
#   manifest_signatures_valid == 3 / 3
Match
When the hash matches and the three signatures verify, you can be confident the image on this machine is bit-for-bit identical to the one we ship.
Mismatch
If either check fails, do not flash. Open an issue with the diff of thebuild.prop files and the output of verify-bundle.sh. A mismatch is interesting — investigate it before assuming it is harmless.
05

What to do next

The output is a flashable target_files.zip. Pair it with the public release manifest, then either flash it directly with lyd-flasher or host it on your own mirror for an organization.

Continue to Verify a release to see the same flow from the consumer side, or Run a federation node to participate in cross-device immunity.