Ship script gates wave 4 behind AXP_DEBLOB_WAVE4, documents secrets cert path, and adds deblob appliers plus tests; docs capture Swissquote fix and parity. Co-authored-by: Cursor <cursoragent@cursor.com>
66 lines
2.9 KiB
Markdown
66 lines
2.9 KiB
Markdown
# 004 — Phonesky / microG runbook (rom-dev01)
|
||
|
||
Proprietary Google/Play APKs **never** go in Git. Binaries live on `rom-dev01`
|
||
under `/srv/rom/prebuilts/`.
|
||
|
||
## Owner policy (2026-09-15)
|
||
|
||
- **Copy AXP’s packaging scheme** (GOLDEN layout), modernize versions (LOS 23.2 /
|
||
A16, latest microG + patched latest Play).
|
||
- Root later = **KSU-Next + SusFS** (`007`), not Magisk — do not design `004`
|
||
around Magisk modules.
|
||
- Prefer AXP behaviour over ad-hoc shortcuts (no “everything on product”, no
|
||
ABI-strip that forces re-signing official microG).
|
||
|
||
## AXP GOLDEN layout (mirror this)
|
||
|
||
| Package | Partition | Privileged? |
|
||
|---------|-----------|-------------|
|
||
| Phonesky | `system` priv-app | yes |
|
||
| GmsCore | `system_ext` app | no (AXP: `MicrogGmsCore_GH_presigned`) |
|
||
| GsfProxy | `system_ext` app | no |
|
||
|
||
Host packaging: `vendor/sunfish-a16/{Android.mk,gms.mk,BoardConfig.mk}`.
|
||
|
||
## Layout on host
|
||
|
||
| Path | Contents |
|
||
|------|----------|
|
||
| `/srv/rom/prebuilts/microg/` | official `GmsCore.apk`, `GsfProxy.apk`, `VERSIONS.txt` |
|
||
| `/srv/rom/prebuilts/phonesky/` | patched `Phonesky.apk`, XMLs, `VERSIONS.txt`, `upstream/` |
|
||
| `/srv/rom/secrets/phonesky-signing/` | project JKS for Phonesky |
|
||
| `/srv/rom/tools/phonesky/` | AXP `packages_apps_phonesky` worktree + tools |
|
||
|
||
## Stage microG (latest official — F-Droid-updatable)
|
||
|
||
1. Download latest **default** `com.google.android.gms-NNNNNNN.apk` (no `-hw`) +
|
||
`GsfProxy.apk` from microG GitHub releases. Match GOLDEN: `versionName`
|
||
must **not** end in `-hw` (Huawei flavor drops NLP Location services /
|
||
UI). Newest stable staged 2026-10-06: `v0.3.17.252432` → `com.google.android.gms-252432034.apk` (versionCode 252432034, default flavor, PRESIGNED).
|
||
2. Keep **official signature** (`LOCAL_CERTIFICATE := PRESIGNED`). **Never**
|
||
re-sign / ABI-strip GmsCore for size — that breaks F-Droid updates.
|
||
3. Do **not** install microG’s `com.android.vending-*.apk` (FakeStore).
|
||
|
||
## Stage Phonesky (patch latest Play — AXP procedure)
|
||
|
||
1. Tools: apktool, aapt, zipalign, `apksigner` via `java -jar …/apksigner.jar`.
|
||
2. Project keystore once under `/srv/rom/secrets/phonesky-signing/`.
|
||
3. `apkmd` + AXP `apkmirror.json` → `/srv/rom/prebuilts/phonesky/upstream/`.
|
||
4. Checkout AXP `packages_apps_phonesky`; run `DEBUG=yes ANDROIDSDK=35 ./patch-playstore …`
|
||
(host adaptations: apktool 2.12 build without `-t`; **zipalign then sign**).
|
||
5. Stage fat patched APK as system priv-app + AXP `etc/` XMLs to **system**.
|
||
|
||
## Partition headroom
|
||
|
||
If `check_partition_sizes` fails after adding the AXP-sized set, raise
|
||
`BOARD_SUPER_PARTITION_ERROR_LIMIT` in `vendor/sunfish-a16/BoardConfig.mk`
|
||
(keep under `BOARD_GOOGLE_DYNAMIC_PARTITIONS_SIZE`). Do **not** “fix” by
|
||
destroying the microG signer.
|
||
|
||
## Signing (FR-010)
|
||
|
||
| Package | Signer | Updates |
|
||
|---------|--------|---------|
|
||
| GmsCore / GsfProxy | Official microG | F-Droid microG repo |
|
||
| Phonesky | Project JKS | Same-signer patched APKs |
|