Files
AXP-Resurection/specs/009-axp-los23-port/plan.md
T
sunfish-admin 12d2179c20 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.
2026-09-16 21:56:22 +00:00

6.6 KiB
Raw Blame History

Implementation Plan: AXP LOS22 feature port to LOS23 (resurrection)

Branch: 009-axp-los23-port | Date: 2026-09-16 | Spec: 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)

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

# 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.