# 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 | Was FAIL ~weeks (HA); **PASS again 2026-10-02 on GOLDEN** with Vector **bootloader spoofer** (`002`) | Hard-gate Compatibility MVP (rootless in `006`); **Revolut not a hard-gate** | partial | `002`; Gate E on LAB = DenyList + PIF/teesim + Vector BL spoof (sunfish-coherent); never flash 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`.