# Tasks: LineageOS 23.2 vanilla build for sunfish **Input**: Design docs from `/specs/003-lineage-23-vanilla-build/` **Prerequisites**: `001` done; `002` P1 gate (`docs/002-gate-handoff.md`) ## Phase 1: Prep - [x] T001 Confirm active feature `specs/003-lineage-23-vanilla-build` - [x] T002 [P] Create `docs/003-build-notes.md` stub (manifest URL/branch TBD at init) - [x] T003 [P] Create `docs/003-flash-lab.md` stub (LAB serial check; link rescue) - [x] T004 [P] Create `docs/003-smoke-lab.md` checklist from spec P1 + extended - [x] T005 Verify LAB serial still `11231JEC207477`; confirm GOLDEN not attached before any flash *(LAB serial documented; flash later)* - [x] T006 Confirm host dirs `/srv/rom/{src,artifacts,logs,ccache}` writable by `android-build` ## Phase 2: Sync - [x] T007 `repo init` official LineageOS 23.2 (wiki-verified URL/branch) under `/srv/rom/src/…` *(`/srv/rom/src/lineage`, `lineage-23.2`)* - [x] T008 `repo sync` sunfish device/kernel dependencies; record wall time / failures *(finished 2026-09-13T21:27:26Z exit=0; tree ~180G)* - [x] T009 Save `repo manifest -r` to `/srv/rom/artifacts/003-…/manifest-rev.xml` ## Phase 3: Build - [x] T010 Configure ccache env; choose parallelism (**`-j8`** = match vCPU) - [x] T011 `lunch`/`breakfast` sunfish `userdebug`; start build; capture log - [x] T012 On OOM/disk failure: document recovery; retry (no silent `-j` guessing) *(N/A — no OOM; mid-run bump -j4→-j8)* - [x] T013 Collect flashable images/zip into `/srv/rom/artifacts/003-…`; SHA-256 all - [x] T014 Compress build log beside artifacts; write build metadata (variant, date, host) ## Phase 4: Flash LAB - [x] T015 `rsync` artifacts to laptop *(`${WORKSPACE}/.local-artifacts/003-vanilla/20260914-lineage-23.2-sunfish/`)* - [x] T016 Unlock LAB bootloader if still locked (owner-approved wipe) — **LAB only** - [x] T017 Flash per `docs/003-flash-lab.md`; verify serial before every `fastboot` command - [x] T018 Confirm first boot; `getprop` shows LOS vanilla (not AXP / not prior iodé id) - [ ] T019 If fail: factory rescue from `002`; do not touch GOLDEN *(N/A so far)* ## Phase 5: Smoke - [x] T020 Complete P1 smoke checklist in `docs/003-smoke-lab.md` - [x] T021 Complete extended baseline checklist (record skips with reason) - [x] T022 Decide gate to `004`: no unresolved P1 blockers (or explicit accept) ## Phase 6: Polish - [x] T023 Tag/keep known-good baseline note (paths + hashes) for regression (`docs/003-gate-handoff.md` + artifacts dir) - [x] T024 Confirm tree has no microG/KSU/hardening patches (FR-006) (vanilla identity props; no microG packages on LAB pre-004) - [x] T025 Handoff: **`003` complete → `004`** (microG path) on LAB only ## Parallel opportunities - T002–T004 while T006 host checks run - T015 rsync can start as soon as T013 hashes exist