# Bundled apps + microG — ship layout (009) **Policy (owner):** Aurora + **Droidify** + Fossify Gallery on **`system_ext` only** (not `product`). Jelly stays on `product` (009 gate). Gallery = **Fossify** (`FossifyGallery` module); no LOS Gallery2. **Updates:** Same as microG/Phonesky — official APK, `PRESIGNED`, `LOCAL_REPLACE_PREBUILT_APK_INSTALLED`. After user updates, `pm path` may show `/data/app/…`; that is normal on A15 and A16. ## Paths after flash (AXPR) | Package | `system_ext` path | |---------|-------------------| | `com.aurora.store` | `/system_ext/app/AuroraStore/AuroraStore.apk` | | `com.looker.droidify` | `/system_ext/app/Droidify/Droidify.apk` | | `org.fossify.gallery` | `/system_ext/app/FossifyGallery/FossifyGallery.apk` | | `com.google.android.gms` | `/system_ext/app/GmsCore/GmsCore.apk` | | `com.google.android.gsf` | `/system_ext/app/GsfProxy/GsfProxy.apk` | Postflight **US-S4-3** checks the three bundled apps on `system_ext.img` and absent from `product.img`. ## microG JNI (required in image — not adb push) GmsCore ships compressed native libs. The bacon script **before `mka`** unpacks `lib/arm64-v8a/*.so` into `vendor/sunfish-a16/prebuilt/GmsCore-jni/arm64/`; Make installs them under `/system_ext/app/GmsCore/lib/arm64/`. Postflight fails if `libconscrypt_gmscore_jni.so` is missing. Without this, Maps/Conscrypt break (same failure as manual push workaround). Pre-`mka` also requires `GmsCore`, `GsfProxy`, `Phonesky` in `PRODUCT_PACKAGES` (`gms.mk` via `magisk.mk` / product includes). Host prebuilts: `/srv/rom/prebuilts/microg/`, `/srv/rom/prebuilts/axp-apps/`.