Files
AXP-Resurection/docs/a15-a16-delta.md
sunfish-admin 12d2179c20 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.
2026-09-16 21:56:22 +00:00

7.2 KiB
Raw Permalink Blame History

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_ext remains 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 into 004.

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 as reference-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

  1. What problem does it solve on GOLDEN / in GOS docs?
  2. Does LOS 23.2 already provide an equivalent?
  3. Partition + artifact-path impact?
  4. Same-signer / update path impact (microG, Phonesky)?
  5. Kernel 4.14 / sunfish EOL constraints?
  6. 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 + our SUNFISH_A16_005_SIGSPOOF extension (2026-09-15); runbook docs/005-spoofing-runbook.md
  • Whether A16 needs any microG permission XML AXP ships outside privapp
  • RKP/KeyMint behaviour on LAB after 004 (compare to 002 Yuh 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.