Restore disable_configstore, EuiccDisabler and thermal CDEV guards, branding and rebuild/sync helpers; document device roles, laptop migration, and Gitea. Co-authored-by: Cursor <cursoragent@cursor.com>
101 lines
8.0 KiB
Markdown
101 lines
8.0 KiB
Markdown
# AXP.OS Pro feature parity matrix
|
||
|
||
Living tracker for how **AXP_Resurection** (`009` Magisk track) relates to
|
||
**AXP.OS Pro** functionality.
|
||
|
||
> **2026-10-10:** Ship root is **Magisk** on `009`. KernelSU / ReSukiSU / SusFS
|
||
> (`007`) is a **parallel** track (boot worked; kept for retry on current ROM —
|
||
> [`007-parallel-on-009.md`](007-parallel-on-009.md)). Never in Magisk ship bacon.
|
||
|
||
**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 | partial | LOS `lineage-23.2`; vanilla `003` done; ship = `009` closure |
|
||
| On-device release testing | Yes (pre-release device QA) | LAB smoke + known-good zips | partial | `009` closure; first project OTA → `009-upstream-rebase-ota.md` |
|
||
| ASB patch integration / backports | Yes | Prefer LOS merges; backport missing applicable patches | partial | Stage1/CVE pack in `009`; rebase with upstream |
|
||
| SELinux enforcing | Yes | **Enforcing** on LAB ship | done | measured on Magisk closure |
|
||
| Data encryption enforced | Yes | Encryption enabled; no silent weaken | done | LAB ship |
|
||
| Project signing | Yes | Own keys for release builds | done | `release-keys` on closure zip; custody on host secrets |
|
||
| Strong signing / AVB key policy | Yes (AVB/APK/dm-verity hardening) | Project AVB unlocked (flags 0 ship) | partial | AVB0 landed; bootloader lock wont |
|
||
| Reproducible builds | Yes | Traceable builds; push toward reproducibility | todo | metadata; harden later |
|
||
| Privacy-focused system defaults | Yes | Decide defaults beyond LOS stock | decide | capability matrix / remaining |
|
||
| microG + GSF | Yes | Yes — working Self-Check / push | done | `004`/`005` → shipped in `009` |
|
||
| Patched Phonesky / Play | Yes | Yes — priv-app, updatable | done | project Phonesky + exact-alarm |
|
||
| Signature spoofing | Advanced / configured | Restricted LOS + Phonesky JKS + DO toggle | done | `005` |
|
||
| Magisk / preroot | Magisk (**Magia** UI on GOLDEN, 29.0) | **Ship Magisk** newest stable (LAB 30.7) EXTENDROM preroot | done | `009`; KSU/`007` parallel recycle (FR-016) |
|
||
| DenyList / umount for banks | Magia DenyList | Magisk DenyList + Island workflow | partial | Swissquote PASS LAB; Yuh open |
|
||
| Insular work profile | AXP docs say Insular; **GOLDEN measures Island** | Island on LAB/GOLDEN | done | vehicle for banks |
|
||
| Yuh in Insular/Island | **PASS on GOLDEN** (2026-10-02+) | Usable session on LAB Island | partial | open — install-source / Play A16 filter; see `009-yuh-golden-lab-hypothesis.md` |
|
||
| Swissquote in Insular/Island | **PASS** on GOLDEN | Same on LAB Magisk ship | done | wave 3 / closure 2026-10-09 |
|
||
| Unrestricted call recording | Yes | Native ROM DO unlock | done | `008` via `009` pack |
|
||
| DNS blocker / privacy DNS | Yes | AXP-class providers, no axp.os endpoints | partial | patches in ship bacon |
|
||
| Hosts / tracker blocking | Yes | Magisk hosts module / ROM helpers | partial | Systemless Hosts on LAB |
|
||
| hardened_malloc | Yes | 64-bit libc; camera/SF exclusions | done | `012` in closure bacon |
|
||
| Hardened / CVE-patched kernel | Yes | Stage1 + combo4 + FORTIFY + CVE pack | partial | Gate G kernel; more CVE optional |
|
||
| 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 | **Ship on `009`** (EXTENDROM preroot). KernelSU/`007` parallel (separate boot) |
|
||
| 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 | done | `008` via `009` pack |
|
||
| 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`.
|