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,95 @@
# Research: 004 microG + Phonesky
## Decision: Packaging layout — follow AXP GOLDEN scheme (owner 2026-09-15)
**Decision**: Mirror AXP GOLDEN partition roles. Do not invent a `product`-centric
layout. Measured on GOLDEN (`002`):
| Package | AXP GOLDEN path | Our packaging |
|---------|-----------------|---------------|
| Phonesky | `/system/priv-app/Phonesky_AXP-OS` | **system** + privileged |
| GmsCore | `/system_ext/app/MicrogGmsCore_GH_presigned` | **system_ext** app (not priv-app) |
| GsfProxy | `/system_ext/app/GsfProxy_GH` | **system_ext** app |
Ship via a small `vendor/sunfish-a16` include (partner_gms *pattern*) but
**replace FakeStore** with patched Phonesky. Permission XMLs follow the same
partitions (`system` for Phonesky, `system_ext` for microG).
**Rationale**: Owner — AXP methods exist for a reason; goal is modernize (LOS
23.2 / A16) and later replace Magisk with KSU-Next+SusFS (`007`), not redesign
the compatibility stack. Ad-hoc `LOCAL_PRODUCT_MODULE` + ABI-strip/re-sign of
GmsCore risks different update/SELinux/behaviour vs GOLDEN.
**Alternatives rejected**:
- All on `PRODUCT` — layout drift; hit partition checks awkwardly
- ABI-strip + project re-sign of GmsCore — breaks official microG F-Droid signer
- Stock lineageos4microg + FakeStore — wrong Store model
- Magisk module installers — not for `004` (root is `007`, non-Magisk)
**Partition headroom**: AXP release Phonesky APKs stay **fat** (all ABIs); CI
does not strip x86. If LOS 23.2 sunfish `BOARD_SUPER_PARTITION_ERROR_LIMIT` is
too tight for this package set, raise the error limit modestly (still under
`BOARD_GOOGLE_DYNAMIC_PARTITIONS_SIZE`) rather than breaking microG’s signer.
## Decision: Phonesky binary — patch latest, AXP procedure, project sign
**Decision**: Latest official Play (apkmd) → AXP `patch-playstore` → project JKS
under `/srv/rom/secrets/phonesky-signing/`. XMLs from AXP `etc/`. Do **not** ship
`Phonesky_AXP-OS-signed.apk` as product (wrong trust domain). Keep fat APK unless
a later measured need forces arch filtering (document then).
## Decision: microG — latest official PRESIGNED + F-Droid
**Decision**: Latest official GmsCore **default** APK (`com.google.android.gms-*.apk`
without `-hw`) + GsfProxy, `PRESIGNED`, system_ext like AXP `*_GH_presigned`.
Never re-sign. F-Droid microG repo is the update path. No FakeStore/Companion APK
from microG releases.
**Do not ship `*-hw.apk`**: that Huawei flavor omits
`NetworkLocationService` / `NetworkLocationProviderService` from the manifest, so
microG Location hides Wi‑Fi/cell NLP toggles. GOLDEN ships the default flavor
(`versionName` without `-hw`, e.g. `0.3.15.250932`); LAB previously had
`0.3.16.252432-hw` and only Timeline — corrected 2026-09-16 to
`0.3.16.252432` default for GOLDEN Location UI parity.
## Decision: Signature spoofing in `004`
**Decision**: Use LOS 23.2 restricted spoofing only; gaps → `005`.
## Decision: AXP scheme vs Android 16 / LOS 23.2 (owner 2026-09-15)
**Decision**: Prefer the AXP **A15 / GOLDEN** packaging and behaviour scheme when
LOS 23.2 / Android 16 still supports it. If A16 makes an equivalent path
*easier* (cleaner APIs, existing LOS hooks), use that — still targeting the
same end state (priv Play, updatable official-signer microG, banking path).
If A16 makes the AXP path *harder* or impossible, do **not** silently invent a
divergent stack: document the blocker and redesign the route to the **same**
goals (layout roles, update model, no Magisk-shaped packaging).
**Rationale**: AXP’s choices were intentional; A16 is a port/modernization, not
a license to ignore the oracle. Divergence only when measured necessity.
**Oracle scope (owner 2026-09-16)**: GOLDEN and abu are **Android 15** reference
images — use them for packaging/layout/behaviour (e.g. which GmsCore *flavor*
exposes Location NLP), not as a pin to their older package versions. On LOS 23.2
/ A16 we ship the **newest** fitting official microG (and peers) that preserve
that scheme (default/non-hw GmsCore, not `*-hw`).
**Measured A16 blocker (2026-09-14)**: Putting Phonesky on `system/priv-app`
fails `artifact_path_requirements` (`generic_system.mk`) under LOS 23.2.
**Route to same end state**: keep AXP paths and add them to
`PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST` (same mechanism sunfish already
uses for a few system libs) — do not move Phonesky to `product` just to silence
the check. GmsCore/Gsf on `system_ext` already passed.
**Align-first (owner 2026-09-15)**: Do not invent `privapp-permissions` for
GmsCore while GOLDEN ships it as non-privileged `system_ext` app. Ship only
AXP Phonesky XMLs; repair from Self-Check / build errors if A16 truly requires
more.
## Decision: Signing strategy (FR-010) — locked
| Package | Signer | Update path |
|---------|--------|-------------|
| GmsCore / GsfProxy | Official microG (`PRESIGNED`) | F-Droid microG repo |
| Phonesky | Project JKS `/srv/rom/secrets/phonesky-signing/` | Same-signer patched APKs |