AXP Magisk resurrection track: Speckit 009 port AXP/LOS22 to LOS23.
Ship Magisk like GOLDEN; KernelSU optional recycle only; parallel to sunfish-a16-rom standby.
This commit is contained in:
commit
12d2179c20
150 files changed
+26263
No files matched your search
@@ -0,0 +1,130 @@
|
||||
# Implementation Plan: AXP LOS22 feature port to LOS23 (resurrection)
|
||||
|
||||
**Branch**: `009-axp-los23-port` | **Date**: 2026-09-16 | **Spec**: [spec.md](./spec.md)
|
||||
|
||||
**Input**: Feature specification from `/specs/009-axp-los23-port/spec.md`
|
||||
|
||||
## Summary
|
||||
|
||||
Resurrect **AXP.OS Pro on LOS22 / GOLDEN** as a single shippable LineageOS
|
||||
23.2 / Android 16 `sunfish` ROM on **LAB**: vanilla `003` base + full AXP
|
||||
capability set (Google stack, selectable spoofing, Island banking workflow,
|
||||
selectable call-recording unlock, Magisk like GOLDEN, bundled usability apps,
|
||||
GOLDEN-class hardening/signing/AVB posture).
|
||||
|
||||
**Explicit exceptions:** LOS23 WebView default (Aosmium EOL) with unlocked
|
||||
provider chooser; Phonesky = project's recent patched artifact (reconsider if
|
||||
GOLDEN-class fixes missing); KernelSU (`007`) out of ship for now with optional
|
||||
recycle of existing functional kernels (FR-016).
|
||||
|
||||
**Approach:** reuse proven `004`/`005`/`008` runbooks and `vendor/sunfish-a16`
|
||||
packaging where they already match; replace the KernelSU ship path with
|
||||
AXP-style Magisk preinstall (newest Magisk); pin newest stable microG and
|
||||
bundled apps; keep Phonesky on the existing host pipeline; measure Magisk
|
||||
“preinstalled but not fully activated” behaviour on GOLDEN before freezing LAB
|
||||
setup docs.
|
||||
|
||||
## Technical Context
|
||||
|
||||
**Language/Version**: Android product makefiles / Soong; Java/Kotlin Settings +
|
||||
Dialer + frameworks patches; bash runbooks on `rom-dev01`
|
||||
**Primary Dependencies**: LOS 23.2 sunfish tree; microG + GSF releases; project
|
||||
patched Phonesky host artifacts; Magisk (newest stable that works on this
|
||||
stack); Island; AXP/GOLDEN inventory (`002`); EXTENDROM call-rec reference;
|
||||
existing `vendor/sunfish-a16` overlays/patches from `004`/`005`/`008`
|
||||
**Storage**: Host `/srv/rom/prebuilts/`, `/srv/rom/secrets/`,
|
||||
`/srv/rom/artifacts/009-axp-los23-port/`; meta-repo docs + `vendor/sunfish-a16`
|
||||
scripts (no proprietary APKs in Git)
|
||||
**Testing**: LAB flash/`adb`; microG Self-Check; Play install; Island +
|
||||
Swissquote/Yuh; Magisk DenyList-class; DO toggles; version-pin record
|
||||
**Target Platform**: Pixel 4a LAB `11231JEC207477`; Android 16 / LOS 23.2
|
||||
**Project Type**: Android custom ROM (product overlay + attributable patches)
|
||||
**Performance Goals**: N/A (daily-driver correctness / parity)
|
||||
**Constraints**: LAB only; no GOLDEN flash; no Phonesky bytes in Git; Magisk
|
||||
ship root (not KernelSU); newest stables except Phonesky artifact rule;
|
||||
attributable reversible changes; long builds detached on `rom-dev01`
|
||||
**Scale/Scope**: Full AXP resurrection surface in one feature (Google stack,
|
||||
toggles, Magisk, bundled apps, hardening/signing class); **parallel track**
|
||||
to the standby KernelSU / split roadmap (`004`–`008`/`007`), reusing their
|
||||
artifacts without deleting that track
|
||||
|
||||
## Constitution Check
|
||||
|
||||
*GATE: Must pass before Phase 0 research. Re-check after Phase 1 design.*
|
||||
|
||||
| Gate | Status |
|
||||
|------|--------|
|
||||
| LAB only; never GOLDEN | pass |
|
||||
| Spec-as-source for active feature requirements | pass (`009` normative for ship) |
|
||||
| Functionality first; AXP compatibility oracle | pass (resurrection goal) |
|
||||
| No proprietary Google APKs / secrets in Git | pass (host paths) |
|
||||
| Phonesky priv-app; no FakeStore primary | pass |
|
||||
| Restricted selectable spoofing (not open platform) | pass (reuse `005` class) |
|
||||
| Native call-rec unlock; re-validate A16 | pass (reuse `008` / EXTENDROM) |
|
||||
| Prefer native over LSPosed/Zygisk modules for ROM features | pass |
|
||||
| Small attributable reversible changes | pass (staged integrate; known-good images) |
|
||||
| Base = LOS 23.2 sunfish stack (no unrelated prebuilt kernel) | pass |
|
||||
| Constitution default root = KernelSU; no Magisk production stage | **variance** — see Complexity Tracking (owner ship decision in `009`) |
|
||||
| Signing/AVB historically `011` | **variance** — GOLDEN-class signing/AVB posture pulled into `009` acceptance (may stage inside feature) |
|
||||
|
||||
**Post-design**: Magisk ship + signing/AVB-in-`009` remain justified variances;
|
||||
KernelSU recycle stays optional (FR-016). Recommend a later constitution
|
||||
amendment to align Root architecture text with Magisk resurrection — not
|
||||
blocking this plan.
|
||||
|
||||
## Project Structure
|
||||
|
||||
### Documentation (this feature)
|
||||
|
||||
```text
|
||||
specs/009-axp-los23-port/
|
||||
├── plan.md # this file
|
||||
├── research.md # Phase 0
|
||||
├── data-model.md # Phase 1
|
||||
├── quickstart.md # Phase 1
|
||||
├── contracts/
|
||||
│ ├── packages.md
|
||||
│ ├── toggles-surface.md
|
||||
│ ├── magisk-preinstall.md
|
||||
│ ├── webview-surface.md
|
||||
│ └── acceptance-gates.md
|
||||
└── tasks.md # /speckit-tasks (not this command)
|
||||
```
|
||||
|
||||
### Host + tree
|
||||
|
||||
```text
|
||||
# Meta-repo
|
||||
vendor/sunfish-a16/ # product mk, permissions, patch apply
|
||||
docs/002-golden-inventory.md
|
||||
docs/004-phonesky-runbook.md
|
||||
docs/005-spoofing-runbook.md
|
||||
docs/008-call-rec-flag-secure-runbook.md
|
||||
docs/axp-pro-parity.md # non-normative; remap rows → 009 after tasks
|
||||
|
||||
# rom-dev01
|
||||
/srv/rom/src/lineage/ # LOS 23.2 sunfish tree
|
||||
/srv/rom/prebuilts/microg/ # newest microG + GSF
|
||||
/srv/rom/prebuilts/phonesky/ # project patched Phonesky (+ XMLs)
|
||||
/srv/rom/prebuilts/magisk/ # Magisk artifacts for AXP-like preinstall
|
||||
/srv/rom/prebuilts/axp-apps/ # bundled usability apps (newest stables)
|
||||
/srv/rom/secrets/ # Phonesky / later release keys (never Git)
|
||||
/srv/rom/artifacts/009-axp-los23-port/ # images, hashes, version pins, LAB evidence
|
||||
/srv/rom/artifacts/007-…/ # optional KSU kernels (recycle only)
|
||||
```
|
||||
|
||||
**Structure Decision**: Same meta-repo pattern as `004`/`005`/`008` —
|
||||
attributable packaging and patches via `vendor/sunfish-a16`; heavy tree and
|
||||
proprietary blobs only on `rom-dev01`. No megapatch dumps in Git.
|
||||
|
||||
## Complexity Tracking
|
||||
|
||||
| Violation | Why Needed | Simpler Alternative Rejected Because |
|
||||
|-----------|------------|--------------------------------------|
|
||||
| Magisk as ship root (constitution prefers KernelSU; forbids Magisk production stage) | Owner chose **AXP resurrection** = Magisk like GOLDEN (`009` FR-010); KSU out of ship for now | Keeping KernelSU abandons “todo igual que AXP”; Magisk A/B-only diagnostic does not meet ship parity |
|
||||
| GOLDEN-class hardening/signing/AVB inside `009` (was split `011`–`013`) | Owner Q2 = full resurrection, not apps-only | Deferring signing/hardening recreates the decide-scatter `009` was meant to end |
|
||||
| Single Magisk-resurrection feature owns large surface | Simplifies current ship without deleting standby KSU track | Re-merging both tracks into one ambiguous roadmap recreates decide-scatter |
|
||||
|
||||
## Phase 0 / Phase 1
|
||||
|
||||
See `research.md`, `data-model.md`, `contracts/*`, `quickstart.md`.
|
||||
Reference in new issue
Block a user