Ship Magisk like GOLDEN; KernelSU optional recycle only; parallel to sunfish-a16-rom standby.
3.7 KiB
003 — Build notes (LOS 23.2 sunfish vanilla)
Host: rom-dev01 as android-build
Tree: /srv/rom/src/lineage
Artifacts: /srv/rom/artifacts/003-…
Logs: /srv/rom/logs/003-…
ccache: CCACHE_DIR=/srv/rom/ccache (export in build shell)
Parallelism — squeeze the HW
Guest is 8 vCPU / ~62 GiB. Policy for this host:
| Job | Default | Notes |
|---|---|---|
mka bacon / Soong ninja |
-j8 |
Match nproc; do not leave -j4 idle |
repo sync |
-j8 OK |
Network-bound; -j4 fine if flaky |
| OOM during link | try -j6 |
Only then; document why |
Do not pass -j to brunch (it eats extra args as variant). Use
breakfast + mka bacon -j8, or /srv/rom/logs/003-build/run-brunch.sh.
If mpstat shows high %steal, the Proxmox host is oversubscribed — fix
outside this repo (pin/dedicate vCPUs); guest governors usually unavailable.
Manifest (wiki-verified 2026-09-13)
mkdir -p /srv/rom/src/lineage && cd /srv/rom/src/lineage
repo init -u https://github.com/LineageOS/android.git -b lineage-23.2 --git-lfs --no-clone-bundle
repo sync -c -j8
Primary: https://wiki.lineageos.org/devices/sunfish/build/
Branch lineage-23.2 listed for sunfish.
Build (after sync + proprietary blobs)
export CCACHE_DIR=/srv/rom/ccache
export USE_CCACHE=1
cd /srv/rom/src/lineage
source build/envsetup.sh
breakfast sunfish userdebug
# extract proprietary blobs: TheMuppets lineage-23.2 → vendor/google/sunfish
mka bacon -j8 # do NOT pass -j to brunch; wrapper: /srv/rom/logs/003-build/run-brunch.sh
Target expected: lineage_sunfish-userdebug (confirm after breakfast).
Metadata to capture on success
repo manifest -r→ artifacts dir- SHA-256 of zip/images
- compressed build log
-jused, wall time, hostnproc/RAM note
Status
- repo init (
/srv/rom/src/lineage,lineage-23.2, 2026-09-13) - repo sync (
finished 2026-09-13T21:27:26Z exit=0; ~180G; log/srv/rom/logs/003-sync/sync.log) - proprietary blobs policy documented (factory base + AXP/GOS diffs later)
- TheMuppets
lineage-23.2synced →vendor/google/sunfish - first successful build —
#### build completed successfully/END … exit=0(2026-09-14T13:52:46Z); j8 segment 06:45:43 - artifacts +
repo manifest -r+ SHA-256 +brunch.log.gz→/srv/rom/artifacts/003-vanilla/20260914-lineage-23.2-sunfish/(rsync →.local-artifacts/…on laptop) - flash LAB + smoke (
docs/003-flash-lab.md) — done 2026-09-14; gate →004(docs/003-gate-handoff.md)
R7 note (vanilla 003)
For the first vanilla build: factory-equivalent blobs only. AXP/Graphene diffs land in later hardening/compat features — not in the clean baseline.
Proprietary blobs (qué son)
Android open source no incluye todo lo que el Pixel necesita para radio,
cámara, firmware, etc. Esos binarios cerrados de Google/Qualcomm se llaman
proprietary blobs (o “vendor blobs”). Sin ellos, brunch sunfish no
arranca hardware real.
Decision (owner 2026-09-13) — no overthink
| Layer | Approach |
|---|---|
| Base blobs | Factory Google / Lineage-equivalent extract (e.g. TheMuppets or extract-files from factory) — same hardware binaries stock uses |
| AXP diffs | Only sunfish-relevant proprietary/packaging diffs from AXP A15 reference |
| GrapheneOS diffs | Historical sunfish A13 where still applicable; plus ideas from a currently supported Pixel when code is shared and still relevant (sunfish is EOL — do not assume every modern GOS change ports) |
Do not chase exotic blob sets for location quality; NLP/services matter more than swapping vendor GPS blobs.