Files
AXP-Resurection/docs/axp-pro-parity.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

96 lines
8.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AXP.OS Pro feature parity matrix
Living tracker for how `sunfish-a16-rom` relates to **AXP.OS Pro** functionality.
**Non-normative.** This file is a product/backlog tracker. A row becomes a
requirement only when promoted into a feature `spec.md`. For an active feature,
constitution + that feature's `spec.md` are authoritative if they conflict with
this matrix.
**Goal (constitution):** reproduce AXP.OS Pro functionality except where a
feature is obsolete, incompatible with LineageOS 23.2 / Android 16 / sunfish, or
deliberately substituted (documented in this table).
**Do not** treat this as a blind copy list. Every row must state our target and
implementation source. Update status as features land.
Status values: `todo` | `decide` | `substitute` | `wont` | `partial` | `done` |
`los-provides` | `later`
The parity matrix **spans the whole project (`004`–`013`)**. Feature `010` owns
only accepted AXP **usability/privacy** items not already assigned to another
feature. Signing/AVB, userspace hardening, and kernel hardening remain `011`–
`013` even though they also appear here as AXP Pro concerns.
| Feature | AXP Pro | Our objective | Status | Source / implementation |
|---------|---------|---------------|--------|-------------------------|
| Base ROM | AXP (LOS-derived) | LineageOS 23.2 / Android 16 sunfish | todo | LOS official `lineage-23.2`; `003` |
| On-device release testing | Yes (pre-release device QA) | Yes — stage checklists + known-good builds | todo | `003` smoke; later release gate; `011` |
| ASB patch integration / backports | Yes | Prefer LOS merges; backport missing applicable patches; document non-applicable | todo | LOS first; gaps → `012`/`013` |
| SELinux enforcing | Yes | Expect **Enforcing**; measure on vanilla then keep | todo | Verify in `003`; then likely `los-provides` |
| Data encryption enforced | Yes | Expect encryption enabled; no silent weaken | todo | `003` PIN/encrypt smoke; then likely `los-provides` |
| Project signing | Yes | Own keys for release builds | todo | `011` |
| Strong signing / AVB key policy | Yes (AVB/APK/dm-verity hardening) | Project AVB + release signing policy | todo | `011` |
| Reproducible builds | Yes | Traceable builds; push toward reproducibility | todo | metadata from day one; harden in `011` |
| Privacy-focused system defaults | Yes | Decide defaults beyond LOS stock | decide | `010` |
| microG + GSF | Yes | Yes — working Self-Check / push | done | `004` packaging + `005` LAB US6 (`23.2-20260915`) |
| Patched Phonesky / Play | Yes | Yes — priv-app, updatable | done | Play 52.9.22-24 + exact-alarm; installs OK on LAB (`005`) |
| Signature spoofing | Advanced / configured | Restricted LOS + Phonesky JKS + DO toggle | done | `005` runbook; `allow_signature_fake` + `FAKE_PACKAGE` |
| Magisk / preroot | Magisk (**Magia** UI on GOLDEN, 29.0) | **Substitute:** KernelSU-Next (+ SusFS) / evaluate ReSukiSU | substitute | Captured in `002`; do **not** fix GOLDEN; project root = `007` on LAB |
| DenyList / umount for banks | Magia DenyList (pkg list in `docs/002-golden-inventory.md`) | KernelSU app profiles + verified umount | todo | `007` re-runs `006`; GOLDEN DenyList captured `002` |
| Insular work profile | AXP docs say Insular; **GOLDEN measures Island** (`com.oasisfeng.island.fdroid` 6.4.2) | Banking workflow parity (Island or equivalent) | todo | `006`; capture in `002` |
| Yuh in Insular/Island | Historically worked; **FAIL since ~weeks** (HA / “certificate invalid”; KeyMint/TEE errors in `002` logs) | Hard-gate Compatibility MVP (rootless in `006`); **Revolut not a hard-gate** | partial | `002` evidence; LAB may need SusFS+TrickyStore-class stack (`reference-sources.md` §8); never GOLDEN |
| Swissquote in Insular/Island | **PASS** on GOLDEN (owner report, DenyList) | Hard-gate Compatibility MVP (rootless in `006`) | partial | `002`; re-test in `006`/`007`/`011` |
| Unrestricted call recording | Yes | Yes — native ROM on Android 16 | todo | AXP/EXTENDROM/iodé as references only; re-validate on LOS 23.2; `008` |
| DNS blocker / privacy DNS | Yes | Wanted; exact UX TBD | decide | `010` |
| Hosts / tracker blocking | Yes | Wanted | decide | `010` |
| hardened_malloc | Yes | Wanted if cleanly portable | decide | Graphene/AXP; `012`; see hardening backlog |
| Hardened / CVE-patched kernel | Yes | LOS 23.2 kernel + Graphene/AXP/Divest backports | todo | `013` (+ selective work with `007`) |
| Deblobbing | Yes | Case-by-case; don't break HW | decide | `010` / `013` |
| AOSmium WebView | Yes | Ship usable WebView; allow installing alternate WebView providers and selecting the active one in **Developer options → WebView implementation** | decide | `010`; stock/AOSmium/Vanadium/etc. as candidates |
| WireGuard in kernel | Yes | Check if LOS 23.2 already sufficient | decide | Baseline in `003`; else `010`/`013` |
| eSIM support | Documented on AXP | sunfish support TBD; verify vanilla first | decide | Baseline in `003`; else `010` |
| F-Droid + extra repos | Yes | Decide default ship set | decide | `010` |
| Aurora Store | Used in golden banking flow | Document/capture; may remain user app | decide | `002` flow; `010` |
| NeoLauncher | Default on AXP | Decide LOS launcher vs NeoLauncher | decide | `010` |
| Fossify Gallery / bundled app set | Part of AXP usability set | Decide which extras to ship | decide | `010` |
| Boot debug | Available | Useful for bring-up | decide | `010` or early debug docs |
| Relock / custom AVB | AXP path | Project keys + AVB after stable ROM | todo | `011` |
| Widevine (basic) | Yes | Don't regress vs vanilla LOS if possible | decide | Measure in `003`; track in `010`/`011` |
| App/data backup | AXP tooling | Not a project gate (two devices: GOLDEN stays; LAB is disposable). Optional personal NeoBackup only; no custom ROM/recovery backup | substitute | See `docs/device-roles.md` |
| Extra bundled packages | Various | Only if justified | decide | `010` |
| Auto-reboot / radio timers | Privacy extras | Wanted where practical | decide | `010` |
## Mapping rules
| AXP mechanism | Our default approach |
|---------------|----------------------|
| Magisk | KernelSU-Next (`007`); Magisk only as A/B diagnostic if needed |
| AXP signature spoofing stack | LOS restricted spoofing + controlled Phonesky extension (`005`) |
| AXP hardened kernel tree | LOS sunfish kernel + selective backports |
| AXP Phonesky | Keep functionality; reproducible patch/sign pipeline |
| AXP call-recording toggles (older Android) | Re-validate on Android 16; do not blind-port XML |
| AXP backup/restore tooling | NeoBackup (external); no project-owned backup feature |
| AXP AOSmium / extras | Explicit decide rows above — not silent omissions |
| WebView provider | Keep Android multi-provider path: install other WebViews + choose in Developer options |
## Project-specific additions
Not AXP Pro catalog features. Tracked here so they are not confused with parity.
| Feature | Origin | Objective | Status | Feature # |
|---------|--------|-----------|--------|-----------|
| FLAG_SECURE override | Project requirement | Native control: Android default remains default; **global** DO override only (no per-app); screenshots + screen capture; no LSPosed/Zygisk/root module | todo | `009` / `008-call-rec-flag-secure` |
| Optional root-unavailable boot mode | Project / msg-GrapheneOS inspiration | Diagnostic/fallback boot without root | later | after daily-driver MVP |
| Upstream deprecation / Kotlin warning hygiene | Build log noise on LOS 23.2 | **Last steps before final ROM freeze:** triage remaining compile warnings; migrate call sites API-by-API (or inherit LOS fixes); keep our patches warning-clean. Not a gate for `005`–`010` MVPs. | later | after `010` / with `011` freeze; see `docs/hardening-backlog.md` |
## Ownership
- Matrix maintained in this file (`docs/axp-pro-parity.md`).
- Rows may map to `004`–`013`; **`010` is not “all of AXP Pro parity”** — only
remaining usability/privacy items not owned elsewhere.
- `002` captures what the **current device** actually runs; this matrix is the
**product intent** relative to AXP Pro docs + that capture.
- Compatibility MVP ends at `006` (rootless); Daily-driver MVP ends at `010`
(constitution). Hardening candidates: `docs/hardening-backlog.md`.