Ship Magisk like GOLDEN; KernelSU optional recycle only; parallel to sunfish-a16-rom standby.
3.9 KiB
Implementation Plan: AXP.OS GOLDEN reference capture
Branch: 002-axp-reference-capture | Date: 2026-09-13 | Spec: spec.md
Input: Feature specification from /specs/002-axp-reference-capture/spec.md
Summary
Identify GOLDEN vs LAB sunfish, write LAB Google factory-image emergency
rescue, capture essential live GOLDEN AXP inventory + banking flow (redacted),
and store raw artifacts under /srv/rom/references/axp/ on rom-dev01 while
committing only redacted docs to sunfish-a16-rom. Parallel: rsync existing
laptop AXP archive per docs/axp-sunfish-preservation.md (does not replace
live adb).
Technical Context
Language/Version: Bash + adb/fastboot inventory scripts; Markdown docs
Primary Dependencies: OpenSSH to rom-dev01; Android platform-tools on
laptop; optional wget/curl for factory images on host
Storage: /srv/rom/references/axp/ (raw); Git = redacted summaries only
Testing: Observational checklists (getprop/dumpsys excerpts); no unit suite
Target Platform: Two physical sunfish + rom-dev01 Ubuntu 24.04
Project Type: Device documentation / reference capture
Performance Goals: N/A — correctness and non-invention of device facts
Constraints: Never flash GOLDEN; no secrets/APKs in Git; NeoBackup not a gate; bootloader state measured not assumed; gaps marked “re-query GOLDEN”
Scale/Scope: One developer; essential inventory for 004–006 hard-gates
Constitution Check
GATE: Must pass before Phase 0 research. Re-check after Phase 1 design.
- Independence from SSYSTEMS: yes (Gitea/host paths only)
- GOLDEN do-not-flash: enforced in docs + FR-006
- No Magisk-as-production-path invention: Magisk recorded as GOLDEN oracle only
- Secrets/APKs off Git: FR-005 / SC-005
- Prefer primary sources: Google factory images page; live
adbover blogs
Post-design: Still pass — plan does not invent package versions.
Project Structure
Documentation (this feature)
specs/002-axp-reference-capture/
├── plan.md
├── research.md
├── data-model.md
├── quickstart.md
├── contracts/ # N/A (README only)
└── tasks.md
Source / artifact layout
# In-repo (redacted)
docs/device-roles.md # update serials/labels + lock notes
docs/002-golden-inventory.md # essential inventory + banking flow
docs/002-lab-stock-rescue.md # LAB factory rescue
docs/axp-pro-parity.md # cross-links only (non-normative)
# On rom-dev01 (raw; not Git)
/srv/rom/references/axp/
├── archive/ # rsync from ~/Archives/AXP.OS
├── golden/ # adb pulls, APK copies, dumpsys (restricted)
├── lab/ # factory image zip + checksums
└── logs/ # capture session logs
Complexity Tracking
| Violation | Why Needed | Simpler Alternative Rejected Because |
|---|---|---|
| — | — | — |
Phases
P0 — Docs + archive seed (no phone required)
- Freeze plan/research/tasks.
- Rsync laptop
~/Archives/AXP.OS→/srv/rom/references/axp/archive/. - Draft LAB stock rescue from current Google sunfish factory image listing;
download image+hash to
/srv/rom/references/axp/lab/when network allows.
P1 — Device roles + measured identity (phones required)
- Connect GOLDEN and LAB; record serials/labels;
getprop+ fastboot lock. - Update
docs/device-roles.md+docs/002-golden-inventory.mdstubs with measured facts only.
P2 — Essential GOLDEN inventory + banking flow
- Scripted
adbcollection into/srv/rom/references/axp/golden/(redact before any Git paste). - Write banking install order from GOLDEN observation.
- Cross-link parity matrix rows that become known.
Gate before 003
LAB rescue doc reviewed; GOLDEN explicitly do-not-flash; FR-006 satisfied. No Lineage sync in this feature.