# 004 / 005 — LAB microG Self-Check Device: LAB `11231JEC207477` (never GOLDEN) Build: `23.2-20260915-UNOFFICIAL-sunfish` Date: 2026-09-15 Evidence: `/srv/rom/artifacts/005-spoofing/20260915-us6-validation/LAB-US6.txt` ## Packages | Package | `pm path` | Notes | |---------|-----------|-------| | `com.google.android.gms` | `/system_ext/app/GmsCore/GmsCore.apk` | PRESIGNED; from zip | | `com.google.android.gsf` | `/system_ext/app/GsfProxy/GsfProxy.apk` | PRESIGNED; from zip | | `com.android.vending` | system priv-app from zip; LAB currently `/data/app/…` after exact-alarm `adb install -r` | Next bacon restores `/system/priv-app/Phonesky/` | | FakeStore | absent | `pm list packages` — no FakeStore | ## Spoofing (`005`) | Check | Result | |-------|--------| | `settings get secure allow_signature_fake` | `1` | | `FAKE_PACKAGE_SIGNATURE` user 0 gms + vending | `granted=true` | | `FAKE_PACKAGE_SIGNATURE` user 10 (Island) gms + vending | `granted=true` | | Self-Check correct signature (gms + Play) | pass (operator) | | Magisk / KSU / `su` | absent | ## Self-Check | Item | pass/fail | Notes | |------|-----------|-------| | Package / ROM signature rows | pass | after spoof grant | | Permission rows incl. spoof | pass | Developer Options toggle + grant | | Play companion / Phonesky sig | pass | project JKS allow-listed in `005` | ## Play Store | Check | Result | Notes | |-------|--------|-------| | Play opens | pass | | | Login | pass | no `UNREGISTERED_ON_API_CONSOLE` in logcat | | Install app (owner + work) | pass | after exact-alarm Phonesky (`USE_EXACT_ALARM`) | | Version | `52.9.22-24` | | | In-app Play self-update | may fail | AXP-like; acceptable | ## Modern location (BeaconDB / Positon) Mozilla Location Service backends are dead. Prefer an Ichnaea-compatible URL: **BeaconDB** (`https://api.beacondb.net`) or **Positon** (`https://api.positon.xyz/?key=…`). Do **not** reintroduce UnifiedNlp Déjà Vu / Nominatim backend APKs on 0.3.x. 1. Open **microG Settings → Location**. 2. Enable network / Wi‑Fi / cell location as shown in Self-Check. 3. Enable the in-GmsCore toggles that still exist in 0.3.x (e.g. remember from GPS, request from online service / hotspot) — these are **not** the old UnifiedNlp plugin list. 4. Set (or confirm) the service URL (BeaconDB or Positon). 5. Do **not** install UnifiedNlp backend APKs from F-Droid. | Check | Result | |-------|--------| | BeaconDB / Positon URL documented | yes | | UnifiedNlp backends required | no | ### LAB observation (follow-up — 2026-09-16) — **fixed (prebuilt)** Root cause: staged GmsCore was official **`*-hw`** (`versionName=…-hw`). That flavor omits `NetworkLocationService` / `NetworkLocationProviderService` from the manifest, so Location UI hides Wi‑Fi/cell NLP (only Timeline-style bits remain). **GOLDEN** / abu ship the **default** flavor (`versionName` without `-hw`) and show the full Location options. **Fix (host staged 2026-09-16):** replace with `com.google.android.gms-252432032.apk` → `versionName=0.3.16.252432` (non-hw), synced to `vendor/sunfish-a16/prebuilt/GmsCore.apk`. Quick LAB check without bacon: `adb install -r` the default APK (same microG signer), then: ```bash adb shell dumpsys package com.google.android.gms | grep -iE 'NetworkLocationProvider|NetworkLocationService' adb shell dumpsys package com.google.android.gms | grep versionName= # expect versionName=0.3.16.252432 (no -hw) + both NetworkLocation* components ``` Permanent: next `bacon` picks up the new prebuilt (~12.5 MiB larger than hw). Positon remains a valid URL if preferred over BeaconDB. After `adb install -r` of the default APK, `dumpsys` may still list both `versionName=0.3.16.252432` and `…-hw` until the next full image flash replaces `/system_ext/app/GmsCore` (data overlay + old system base). NLP services already come from the default update. ## microG F-Droid updates | Check | Result | Notes | |-------|--------|-------| | Add [microG F-Droid repo](https://microg.org/fdroid/repo) | optional | one-time | | F-Droid sees GmsCore update (when newer) | expected | official `PRESIGNED` on system_ext | | Do **not** install Companion/FakeStore from F-Droid | — | conflicts with Phonesky | ## AXP layout sanity | Check | Result | Notes | |-------|--------|-------| | Phonesky | priv-app in image | LAB data path only after hotfix upgrade | | GmsCore / GsfProxy | `/system_ext/…` | matches AXP GOLDEN layout intent |