# 009 — Sideload system package updates (FR-019) Owner cadence: refresh bundled **system / privileged** packages about every **2–3 months** without a full ROM reflash. **No** AXP OTA / external repos. Status: **stub** — fill before claiming FR-019 done. Packaging of the shipping image MUST already preserve update eligibility. **Full ROM updates** (new LOS base + rebacon) are a different path: recovery sideload of the project zip. See [`009-upstream-rebase-ota.md`](009-upstream-rebase-ota.md). ## In scope | Component | Intended update path | Signing constraint | |-----------|----------------------|--------------------| | microG GmsCore / companions | `adb install -r` / recovery sideload of upstream APK | **PRESIGNED** / same signer as shipped | | Magisk | Magisk app self-update and/or documented boot re-patch | Manager + boot image must stay matched | | Project Phonesky | Sideload project-signed APK | **Same project key** across releases | | Other bundled system apps | Sideload matching-signer APK (or recovery zip if priv-app needs it) | Same identity as image | ## Out of scope - Network OTA / AXP update servers - Full `bacon` + clean flash for routine APK bumps (still OK for kernel / framework / Magisk boot changes when required) ## Checklist before claiming FR-019 done - [ ] Each row above has a concrete command/runbook step - [ ] `pm install` / PackageManager does not reject for signature mismatch - [ ] Privileged permissions still grant after update (or re-flash privapp XML noted) - [ ] Magisk version after update matches kernel/boot expectation - [ ] Record new versions in `docs/009-version-pins.md`