Ship Magisk like GOLDEN; KernelSU optional recycle only; parallel to sunfish-a16-rom standby.
7.2 KiB
7.2 KiB
Android 15 (AXP GOLDEN) → Android 16 (LOS 23.2) — developer delta
Living notes for porting AXP / GrapheneOS ideas onto our base without
blind copy. Non-normative until a row is promoted into a feature spec.md.
| Ours (LAB target) | GOLDEN (oracle) |
|---|---|
| LineageOS 23.2 / Android 16 | AXP Pro / LOS-derived 22.2 / Android 15 |
BUILD_ID=BP4A.251205.006, SDK 36 tree |
SDK 35, ro.build.version.release=15 |
| Device: sunfish (same silicon) | sunfish |
Working rule (owner): prefer AXP A15 scheme when still valid; if A16 is easier, use it; if harder, redesign the path to the same end state.
1. Already measured on this project
| Area | A15 / AXP behaviour | A16 / LOS 23.2 reality | Adaptation |
|---|---|---|---|
Phonesky on /system/priv-app |
Works on GOLDEN | artifact_path_requirements / generic_system.mk rejects device-specific system/ installs unless allow-listed |
Keep AXP path; PRODUCT_ARTIFACT_PATH_REQUIREMENT_ALLOWED_LIST (004) — do not move to product only to silence the check |
GmsCore / Gsf on system_ext app |
GOLDEN layout | Builds clean (no artifact hit) | Keep |
| Priv-app XML for GmsCore | GOLDEN: not priv-app | Inventing privapp-permissions-microg diverges |
Removed; add only if Self-Check proves need |
| Super partition headroom | AXP fuller image fits their budgets | Vanilla LOS ERROR_LIMIT too tight for fat microG+Play | Modest BOARD_SUPER_PARTITION_ERROR_LIMIT bump — not ABI-strip of official microG |
| Play targetSdk / apktool | Older Play on GOLDEN (50.x) | Latest Play ~52.x needs apktool 2.12 + ANDROIDSDK=35+, zipalign-before-sign |
Documented in 004 runbook |
| PRESIGNED prebuilt APKs | AXP ships Play/microG with intact v2/v3 | BUILD_PREBUILT uncompresses JNI / realigns → strips APK Sig v2/v3; PM skips Phonesky (pm path empty) |
LOCAL_REPLACE_PREBUILT_APK_INSTALLED for GmsCore/Gsf/Phonesky (004, measured 2026-09-15) |
| Phonesky privapp allowlist | AXP XML for older Play | Play 52.x on A16 requests HIDE_STATUS_BAR_NOTIFICATION + READ_SYSTEM_GRAMMATICAL_GENDER; missing → boot abort on userdebug |
Extend privapp-permissions-com.android.vending.xml |
| Signature spoofing | EXTENDROM: allow_signature_fake + FAKE_PACKAGE_SIGNATURE + Settings toggle; grants on gms+vending; A15 STABLE |
LOS 23.2 already has LuK1337 allow-list spoof (ComputerEngine 23c0a5c): userdebug + microG signer + Google fake-sig + signingInfo. Missing vs AXP: no FAKE_PACKAGE perm/UI; rejects project-signed Phonesky |
Feature 005: extend signer allow-list for our Phonesky JKS; port EXTENDROM toggle + FAKE_PACKAGE_SIGNATURE; see docs/005-spoofing-runbook.md |
2. Partition / packaging (porter mindset)
- AOSP has been tightening system vs system_ext vs product for years; A16
builds (especially with
generic_system.mk) make “drop OEM APKs on system” a build-time problem, not only a policy preference. - Privapp-permissions must live on the same partition as the priv-app (AOSP rule since product partition work). Moving Phonesky later ⇒ move XMLs with it.
system_extremains the natural home for ROM Google-compat substitutes (AXP: microG, F-Droid, Aurora base) — still valid on A16.- Prefer allow-list exception or system_ext/product over rewriting the whole AXP layout when GSI rules bite.
3. Compatibility stack (microG / Play / spoofing)
| Topic | Note for A16 |
|---|---|
| microG | Use current upstream; do not pin GOLDEN 0.3.15. Keep official signer for F-Droid. |
| Phonesky | Still patch via AXP patch-playstore; newer Play = newer apktool/SDK framework. |
| Signature spoofing | Done in 005: extend LuK1337 allow-list for project Phonesky JKS; port EXTENDROM toggle + FAKE_PACKAGE_SIGNATURE. LAB US6 green 2026-09-15. |
| Phonesky FGS / exact-alarm | A16 systemExempted needs manifest USE_EXACT_ALARM (or SCHEDULE / VPN), not only privapp XML. Fixed in Phonesky rebuild; vendor prebuilt updated. |
| FakeStore | Still forbidden next to real Phonesky. |
4. Attestation / KeyMint / banking (006/007)
- GOLDEN already shows KeyMint / RKP / TEE stress with Yuh on A15.
- A16 does not remove that class of problem; RKP and attestation surfaces continue to evolve — treat GrapheneOS/AOSP docs as what to measure, LOS+LAB as where to measure.
- Magisk DenyList on GOLDEN ≠ our root plan. Production root = KSU-Next +
SusFS (
007). Do not port Magisk-shaped packaging into004.
5. GrapheneOS on Android 16 (reference, not base)
- GOS ported features to A16; publicly noted harder device-support work because AOSP dropped much Pixel board/userspace publishing with 16.
- For sunfish we stay on LOS 23.2 device trees, not GOS device bringup.
- Use modern GOS as reference for hardening / privacy behaviour patches
(
013, hardening backlog) — classify each patch: direct / port / obsolete / A16-incompatible (same discipline asreference-sources.md). - Never treat historical GOS A13 sunfish kernel as A16 base.
6. Call recording / FLAG_SECURE / UX (008+)
- AXP overlays and older XML toggles often break or no-op across major releases. On A16: re-find Dialer/Telecom/framework hooks in LOS 23.2 first; then decide AXP vs EXTENDROM vs iodé vs native LOS.
- Screenshot / sensitive-content APIs continue to tighten — verify before porting FLAG_SECURE bypasses.
7. Checklist before applying an AXP or GOS change on A16
- What problem does it solve on GOLDEN / in GOS docs?
- Does LOS 23.2 already provide an equivalent?
- Partition + artifact-path impact?
- Same-signer / update path impact (microG, Phonesky)?
- Kernel 4.14 / sunfish EOL constraints?
- If blocked: document blocker; redesign route; same end state.
8. Open follow-ups (fill as we hit them)
- Exact LOS 23.2 spoofing surface for
005— stock LuK1337 path + ourSUNFISH_A16_005_SIGSPOOFextension (2026-09-15); runbookdocs/005-spoofing-runbook.md - Whether A16 needs any microG permission XML AXP ships outside privapp
- RKP/KeyMint behaviour on LAB after
004(compare to002Yuh logs) - Call-recording hook locations on LOS 23.2 Dialer
- Which GOS A16 hardening patches are realistic on sunfish 4.14
9. EXTENDROM A15 → A16 mapping (005)
| EXTENDROM A15 patch | LOS 23.2 action |
|---|---|
02/06 ComputerEngine FAKE + gate |
Adapt existing LuK1337 generateFakeSignature; add toggle + permission + Phonesky signer |
01/12 api current + lint |
Applied |
07 AndroidManifest permission |
Applied |
03 PermissionMapping |
Applied (.kt path) |
04 Activity requestPermissions |
Applied (A16 short-circuit path context) |
05 Settings.Secure.ALLOW_SIGNATURE_FAKE |
Applied |
08–11 Settings Developer Options |
Applied (controllers + XML + strings) |
| Overlay strings | Inlined into frameworks/Settings strings.xml |
Source checkout: /srv/rom/references/extendrom @ f129253c07e735a373441254457cf75efac11d04.
Update this file when a delta is measured (build error, Self-Check, adb), not from blog speculation alone.