Files
AXP-Resurection/docs/003-build-notes.md
T
sunfish-adminandCursor 2d145c2878 009: Polish bacon fixes, OTA host scripts, and migration docs.
Restore disable_configstore, EuiccDisabler and thermal CDEV guards, branding
and rebuild/sync helpers; document device roles, laptop migration, and Gitea.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-10-16 21:06:45 +02:00

4.0 KiB

003 — Build notes (LOS 23.2 sunfish vanilla)

Vanilla bring-up done 2026-09-14. For Magisk ship rebacon after a new LOS sync, use 009-upstream-rebase-ota.md and scripts/009-bacon-axp-stage1-combo4-cve-hi-releasekeys.sh — not a bare mka bacon from this note alone.

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
  • -j used, wall time, host nproc/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.2 synced → 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.