Restore disable_configstore, EuiccDisabler and thermal CDEV guards, branding and rebuild/sync helpers; document device roles, laptop migration, and Gitea. Co-authored-by: Cursor <cursoragent@cursor.com>
34 lines
1.6 KiB
Markdown
34 lines
1.6 KiB
Markdown
# 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`
|