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:
sunfish-admin committed 2026-09-16 21:56:22 +00:00
commit 12d2179c20
150 files changed
+26263

No files matched your search

@@ -0,0 +1,53 @@
# Contract: LAB acceptance gates (`009`)
**Device**: LAB `11231JEC207477` only — never GOLDEN
**Evidence**: `/srv/rom/artifacts/009-axp-los23-port/<build-id>/`
## Gate A — Boot / hardware
- [ ] Clean flash boots to home
- [ ] Call + Wi‑Fi + unlock smoke (vanilla class)
## Gate B — Google stack
- [ ] microG Self-Check required items pass with spoofing ON as needed
- [ ] Project Phonesky opens; ordinary app install/update works
- [ ] No FakeStore primary
- [ ] Version pins: microG/GSF newest stable; Phonesky = project artifact
- [ ] If Play lacks GOLDEN-class fix → **FAIL closed** (reconsider Phonesky)
## Gate C — Toggles
- [ ] Spoofing OFF/ON behaviour per `toggles-surface.md`
- [ ] Call-rec OFF/ON behaviour per `toggles-surface.md`
## Gate D — Magisk
- [ ] Preinstall state matches measured GOLDEN/AXP class
- [ ] Activation documented and completed on LAB
- [ ] DenyList-class hides root from a test/banking package
## Gate E — Banking
- [ ] Island present; Swissquote PASS in managed profile workflow
- [ ] Yuh recorded; not worse than GOLDEN for packaging/spoofing reasons
- [ ] Banks do not receive root
## Gate F — Usability / WebView
- [ ] Bundled AXP categories present or documented impossible
- [ ] Versions newest workable (except Phonesky rule)
- [ ] WebView default LOS; chooser unlocked
## Gate G — Hardening / signing class
- [ ] GOLDEN-class hardening/signing/AVB posture present **or** each gap
documented as impossible on this stack (no silent omit)
- [ ] Staged known-good images retained for bisect
## Non-gates
- KernelSU presence or SusFS
- FLAG_SECURE override (optional)
- Custom AXP backup ROM feature
- Yuh PASS if GOLDEN attestation path still FAILs equivalently
@@ -0,0 +1,38 @@
# Contract: Magisk preinstall (AXP / GOLDEN class)
**Ship root**: Magisk (newest stable that works on this stack)
**Not ship**: KernelSU / SusFS (`007` optional recycle only)
## Behavioural contract
1. After a clean `009` flash, Magisk is **present** in an AXP-like
**preinstalled but not fully activated** state (exact files/UI measured
from GOLDEN — document in LAB runbook).
2. Owner can complete activation on LAB using documented steps.
3. DenyList-class configuration can hide root from banking packages before
first process start (GOLDEN workflow).
4. Magisk version in the version-pin record is newest workable stable, not an
accidental stale host copy.
## Banking interaction
Aurora install → do not open → DenyList (incl. processes) → Island clone →
first launch in Island. Banks MUST NOT receive root.
## Out of contract
- Shipping Magia branding specifically ( Magisk upstream UI OK if behaviour
matches).
- Requiring KernelSU coexistence on the same ship image.
## Verification
```bash
# After flash (pre-activation): document paths/props matching GOLDEN notes
adb shell ls -l /system_ext/bin/magisk 2>/dev/null || true
adb shell pm list packages | grep -iE 'magisk|magia'
# After activation: Magisk app reports version; DenyList configurable
```
Evidence under `/srv/rom/artifacts/009-axp-los23-port/magisk/`.
@@ -0,0 +1,38 @@
# Contract: system packages (AXP resurrection)
**Device**: LAB only
**Build**: `009` product with Google stack + bundled AXP usability set
## Required packages (minimum)
| Role | Package | Notes |
|------|---------|--------|
| microG | `com.google.android.gms` | Newest stable verified; system |
| GSF Proxy | `com.google.android.gsf` | Newest stable verified |
| Phonesky | `com.android.vending` | Project patched priv-app; host artifact |
| Island | `com.oasisfeng.island…` | GOLDEN tool; newest workable |
| Magisk UI / stubs | as measured on GOLDEN | Preinstall layout; not fully activated until setup |
FakeStore / conflicting Companion MUST NOT be the primary Play path.
## Bundled usability set
Ship GOLDEN/AXP categories at newest workable stables (Aurora, F-Droid/repos as
on GOLDEN, launcher/gallery-class, DNS/hosts helpers if in inventory). Exact
package list = version-pin record derived from `002` + acceptance notes.
## WebView
- Default provider = LOS23 WebView package.
- Aosmium MUST NOT be required.
- `cmd webviewupdate` / Developer options chooser MUST remain usable.
## Verification snippets
```bash
adb shell pm path com.google.android.gms
adb shell pm path com.google.android.gsf
adb shell pm path com.android.vending
adb shell cmd package list packages | grep -E 'island|aurora|fdroid|magisk|magia'
adb shell cmd webviewupdate current
```
@@ -0,0 +1,36 @@
# Contract: selectable toggles (spoofing + call recording)
**Surface**: Developer Options (AXP-like)
**Defaults**: OFF (`0`) unless a documented project default says otherwise
## Signature spoofing
| Item | Value |
|------|--------|
| Secure key | `allow_signature_fake` (GOLDEN/AXP class from `005`) |
| OFF | Spoofing has no effect even if prior grants exist |
| ON | Authorized packages (microG, Phonesky) may use restricted spoofing |
| Forbidden | Unrestricted platform spoofing for arbitrary apps |
```bash
adb shell settings get secure allow_signature_fake
# expect 0/null default; 1 when enabled
```
## Call recording unlock
| Item | Value |
|------|--------|
| Secure key | `extendrom_call_recording` |
| OFF | Stock LOS country/carrier-style Dialer policy |
| ON | Dialer `canRecordInCurrentCountry()` allows recording |
```bash
adb shell settings get secure extendrom_call_recording
# expect 0/null default; 1 when enabled
```
## Optional (not AXP hard gate)
`disable_secure_windows` / FLAG_SECURE override may ship if already wired
(`008`); absence does not fail AXP resurrection acceptance.
@@ -0,0 +1,16 @@
# Contract: WebView policy
| Rule | Requirement |
|------|-------------|
| Default | LineageOS 23 WebView |
| Aosmium | Not shipped / not required (EOL) |
| Chooser | Developer options → WebView implementation remains available |
| Future | User may install an alternate WebView and select it |
```bash
adb shell cmd webviewupdate current
# default should be LOS provider, not org.axpos.aosmium
adb shell cmd webviewupdate
# provider list / update path must not be locked to a single forced package
```