009: Polish bacon fixes, OTA host scripts, and migration docs.

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>
This commit is contained in:
sunfish-adminandCursor committed 2026-10-16 21:06:45 +02:00
1 parent 3f941e8451
commit 2d145c2878
3193 files changed
+21264 -371

No files matched your search

+436
View File
@@ -0,0 +1,436 @@
# AXP Resurrection Pro — Pixel 4a (sunfish)
**LineageOS 23.2 · Android 16 · Privacy-oriented custom ROM**
AXP Resurrection Pro (*AXPR*) brings the **AXP.OS Pro** experience forward onto
**LineageOS 23.2** for the **Google Pixel 4a**. It is aimed at users who want a
maintained Android 16 base, **microG** instead of proprietary Google Play
services, optional **root via Magisk**, and **extra kernel and system
hardening** drawn from established community sources (including
**GrapheneOS-class** kernel work), without tying you to deprecated AXP update
servers.
This document describes **what the ROM contains**. It is written for end users
and reviewers, not for build infrastructure.
**Current generation (example build id):** `23.2-20261008` · `BP4A.251205.006`
· `release-keys`
---
## 1. At a glance
| Topic | What you get |
|--------|----------------|
| **Base** | LineageOS **23.2**, Android **16**, Pixel 4a only |
| **Google services** | **microG** + **GSF proxy**; no built-in Google account requirement |
| **Play Store** | **Play Store (Phonesky)** build patched for this project (exact-alarm and related fixes) |
| **Root** | **Magisk** embedded at build time; you activate from the Magisk app after flash |
| **Privacy apps** | **Aurora Store**, **Droidify**, **Fossify Gallery**, **Jelly** browser, **OpenEUICC** |
| **Hardening** | Kernel patches (Graphene-derived + CVE backports), **hardened_malloc**, trimmed system surface |
| **Updates** | Full ROM via **recovery sideload**; individual system apps can be updated in place when signed compatibly |
| **Bootloader** | **Unlocked** workflow (orange state); not designed for relocked retail boot |
---
## 2. Everything added on top of LineageOS 23.2
Stock **LineageOS 23.2 for sunfish** is a clean AOSP-derived system: no microG,
no Play Store, no Magisk, **test-keys** or UNOFFICIAL builds in typical user
trees, default Private DNS list, default connectivity check (Google), Gallery2
or Glimpse, full Lineage tool bundle on system, Google carrier/eUICC apps from
vendor makefiles, and the upstream **4.14** kernel without the AXP/Graphene
CVE and hardening layers below.
**AXP Resurrection Pro** keeps the Lineage base (Launcher3, Dialer, updaters,
device support) and layers the following.
### 2.1 Product identity and visuals
| Change | LineageOS default | AXPR |
|--------|-------------------|------|
| Build channel | Often UNOFFICIAL / nightly naming | **PRO** product (`…-PRO-sunfish`) |
| Signing | Test-keys on many community builds | **release-keys** (project keys) |
| Manufacturer / brand props | Lineage | **AXP Resurrection** system branding |
| Setup welcome | Lineage wording | **“Welcome to AXP Resurrection”** |
| Boot animation | Narrow band layout | **Full-screen** 1080×2340 animation |
| OTA zip name | `lineage-*.zip` | Matching **`AXP-Resurrection-Pro-*.zip`** (same payload) |
### 2.2 Google replacement stack (not in vanilla LOS)
| Component | Purpose |
|-----------|---------|
| **microG Services (GmsCore)** | Open-source reimplementation of Play Services |
| **GSF Proxy** | Framework stub for apps expecting Google Services Framework |
| **Play Store (Phonesky)** | Play client build maintained for this ROM (exact-alarm and related fixes) |
| **GmsCore native libraries** | ARM64 JNI libs shipped **inside the image** (required for Maps / TLS stacks) |
Vanilla Lineage does **not** ship these; you would install microG yourself on a
separate track.
### 2.3 Extra applications (vs typical LOS sunfish)
| App | Notes |
|-----|--------|
| **Aurora Store** | Play store front-end |
| **Droidify** | F-Droid client (instead of shipping classic F-Droid) |
| **Fossify Gallery** | Replaces **Gallery2 / Glimpse** on this product |
| **Jelly** | Lightweight browser added on **product** (Lineage 23 does not include Jelly in the default sunfish product set) |
| **OpenEUICC** | Privileged eSIM manager where Google EUICC is removed |
| **Magisk** | Preroot boot integration + manager (see §5 Root and Magisk) |
**Unchanged vs LOS intent:** **Launcher3** (no NeoLauncher), standard Lineage
core apps, **Lineage WebView** as default provider.
### 2.4 Settings and framework behaviour (AXP / GrapheneOS / Calyx class)
These are **code changes in the platform**, not separate APKs.
#### Privacy and network
| Feature | What Lineage does | What AXPR adds |
|---------|-------------------|----------------|
| **Private DNS presets** | Small default set | **15+ named providers** (AdGuard, Mullvad, Quad9, Cloudflare, regional DoT hosts, etc.) |
| **Internet connectivity check** | Fixed Google-style check | **User-selectable** provider (Disabled, Amazon, Cloudflare, Google, Huawei, Kuketz, Microsoft, openSUSE, Ubuntu, …) — no AXP-owned servers |
| **Force disable SUPL** | Not exposed | Settings toggle; forces SUPL off for stricter GNSS |
| **Stop extra location assistance** | Not exposed | Toggle to stop extra Qualcomm / XTRA-style assistance when disabled |
| **Kernel command line privacy** | `/proc/cmdline` often world-readable | **Mode 0440** on `/proc/cmdline` for unprivileged apps (GOLDEN/AXP class) |
#### Security, biometrics, and media metadata
| Feature | What Lineage does | What AXPR adds |
|---------|-------------------|----------------|
| **Fingerprint permanent lockout** | Higher failed-attempt threshold | **Stricter lockout** (AXP constant: fewer attempts before permanent lockout) |
| **Build serial exposure** | Legacy paths may expose serial via deprecated APIs | **`Build.SERIAL` stays unknown**; real serial only via `Build.getSerial()` + permission |
| **Screenshot EXIF** | OS name, time, unique id in metadata | **Minimal EXIF** (width/height only — Calyx/AXP class) |
| **Recovery OTA metadata** | Can accept packages restricted to device serial | **Rejects** update packages that carry a `serialno=` constraint |
| **Signature spoofing** | microG base only | Developer option **`allow_signature_fake`** (default **off**) for microG / compatible apps |
| **Call recording** | Region/carrier gated | Developer option **`extendrom_call_recording`** unlocks recording path in Dialer where supported |
| **FLAG_SECURE / screen capture** | Apps can block capture | Optional **`disable_secure_windows`** (default **off**), works on **user** builds without `ro.debuggable=1` |
| **Disable app** | Android 16 emphasises **Archive**; disable hidden for many user apps | **Disable** restored for **user-installed** apps in Settings |
| **Native debug** | Standard ptrace policy | **`persist.native_debug`** — when enabled, relaxes ptrace scope for debugging (default off) |
#### Timeouts and System UI
| Feature | What Lineage does | What AXPR adds |
|---------|-------------------|----------------|
| **Automatic reboot** | Not in stock LOS Settings | Idle **auto-reboot** (Security settings) |
| **Bluetooth timeout** | Manual only | Turns **Bluetooth off** after configurable inactivity |
| **Wi‑Fi timeout** | Manual only | Turns **Wi‑Fi off** after configurable inactivity |
| **Quick Settings tiles** | Usable from lock screen per tile | **Sensitive tiles require unlock** first (GrapheneOS SystemUI patch) |
| **Keyguard / reboot** | Standard | SystemUI / SystemServer hooks for timeout and reboot integration (AXP server extensions) |
### 2.5 Packages and binaries removed (vs Lineage sunfish)
Selective **deblob**, not a generic “remove all Google” script.
#### Wave 1 — Google eUICC LPA
| Removed | Replaced by |
|---------|-------------|
| **EuiccGoogle**, **EuiccGoogleOverlay** | **OpenEUICC** (EuiccSupportPixel support packages **kept**) |
#### Wave 2 — Carrier / RCS Google & AOSP entitlement
| Removed (examples) | Kept for radio |
|--------------------|----------------|
| **CarrierServices**, **CarrierSettings**, **CarrierWifi**, **CarrierSetup**, **RilConfigService**, **grilservice** | **ims**, **QtiTelephonyService**, Qualcomm daemons, **Dialer**, **GoogleParts** |
| **PresencePolling**, **RcsService** (device makefile) | |
| **ImsServiceEntitlement** (telephony product) | |
#### Wave 3 — Lineage maintenance tools on system
| Removed from system / system_ext | Still on AXPR (AXP parity) |
|----------------------------------|----------------------------|
| **bash**, **htop**, **nano**, **unrar**, **addon.d/50-lineage.sh** | **curl**, **vim**, **zstd**, recovery **nano** |
#### Wave 4 — Debug / diag surface
| Removed | Explicitly kept |
|---------|-----------------|
| Qualcomm **diag_*** tools, **test_diag**, **imsrcsd** | **loc_launcher**, **lowi-server**, **xtra-daemon**, IMS RTP/data daemons, **cnss-daemon**; keep Lineage **disable_configstore** (overrides HIDL configstore HAL — required on A16 VINTF) |
| Some **AOSP debug** host tools on device where safe | **bpftool**, **alloctop**, **apexd-lsof** remain in build where the OS requires them |
#### Product OpenSSH (US-S4-1)
| Removed | Kept |
|---------|------|
| **ssh**, **sshd**, **scp**, **sftp**, **rsync**, **procmem** on product | **`init.openssh.rc`** stub only (no `sshd` binary) — remote admin via **adb** / Magisk |
### 2.6 Kernel, allocator, and CVEs (summary)
On top of the **same msm-4.14** tree Lineage ships:
- **30 GrapheneOS-derived** kernel patches (Deny USB, allocsize, fortify, slab, sanitize, ro_after_init, randomisation, …) — see §8 below.
- Extra **Kconfig**: FORTIFY, init-on-alloc/free, dmesg restrict, slab hardened, **SLAB_FREELIST_RANDOM**; **no Yama** (app compatibility).
- **449** documented **CVE** backport identifiers + companion fixes (e.g. USB lock-scope instead of raw **CVE-2022-49980** one-liner).
- **hardened_malloc** in **bionic** for 64-bit processes (with graphics/camera exclusions).
Lineage’s existing hardening (CFI, shadow stack, KASLR, PAN, …) is **retained**.
### 2.7 Intentionally **not** changed vs Lineage
- **No** GrapheneOS-style **location lockdown** kernel (GPS behaviour stays LOS-like).
- **No** Aosmium / proprietary AXP WebView baked in.
- **No** AXP online OTA or external market repositories.
- **No** KernelSU in the standard product.
- **No** bundled Play Integrity / banking Magisk modules.
- **Device tree / modem firmware** line unchanged (Pixel 4a vendor blobs).
---
## 3. Who this ROM is for
- You use **microG** and install apps via **Aurora** / **Droidify** / Play as you choose.
- You want **AXP-style settings** (private DNS presets, connectivity controls, classic **Disable app**, timeouts, optional signature spoofing and call-recording unlock) on a **current Lineage** tree.
- You accept **custom ROM risks**: unlocked bootloader, community maintenance, no warranty.
**Not goals of this ROM:** banking attestation guarantees, locked bootloader,
proprietary AXP OTA infrastructure, or shipping every Google / carrier app from
stock Pixel firmware.
---
## 4. Preinstalled applications
| App | Role |
|-----|------|
| **microG Services (GmsCore)** | Replaces Google Play Services for many apps |
| **GSF Proxy** | Google Services Framework compatibility layer |
| **Play Store (Phonesky)** | Google Play client (project-maintained APK) |
| **Aurora Store** | Alternative store front-end for Play |
| **Droidify** | Lightweight F-Droid client |
| **Fossify Gallery** | Gallery (replaces Lineage Gallery2 / Glimpse on this product) |
| **Jelly** | Small browser on the product partition |
| **OpenEUICC** | eSIM / EUICC management (replaces Google EUICC where removed) |
| **Magisk** | Root manager (stub until you complete first-time setup) |
| **LineageOS core** | Launcher3, Dialer, Messaging, etc. |
**WebView:** default is **Lineage / AOSP WebView**. You may install another
WebView provider and select it under **Developer options → WebView
implementation** (Aosmium and other legacy AXP WebViews are **not** shipped as
default).
---
## 5. Root and Magisk
- Magisk is integrated into the **boot image at ROM build time** (AXP / EXTENDROM
style **preroot**), not as a normal preinstalled Play-style system app only.
- After flashing, open **Magisk** once and allow it to **download and install**
the current manager APK if prompted.
- **Do not** use “Install to inactive slot” or repeated boot repatching unless
you know you need it: the boot image is already prepared. Extra patching often
confuses the app and can break A/B slots.
- The home screen line **“Ramdisk: Yes/No”** describes how Magisk would install
on a *stock* device; on preroot builds it may read **No** even when root works.
Check **Magisk version** and whether apps can request superuser.
- **Zygisk**, **DenyList**, and modules are **your choice** after activation;
the ROM does not ship banking or Play Integrity fix modules.
**KernelSU** is **not** part of this product line.
---
## 6. Settings and toggles (reference)
Same features as **§2.4**; quick lookup by menu area.
These appear in **Settings** / **Developer options** (exact menus follow AOSP
Lineage layout). Names may be localized.
### 6.1 Privacy and network
| Feature | What it does |
|---------|----------------|
| **Private DNS providers** | Extended preset list (AdGuard, Mullvad, Quad9, Cloudflare, Google DoT, regional providers, etc.) in addition to Lineage defaults |
| **Internet connectivity check** | Configurable connectivity validation (AXP-style behaviour; no dependency on AXP-owned servers) |
| **Force disable SUPL** | When enabled, disables SUPL-assisted GNSS (stricter location privacy) |
| **Stop extra location assistance** | When enabled, reduces extra Qualcomm / XTRA-style assistance daemons |
### 6.2 Security and developer
| Feature | What it does |
|---------|----------------|
| **Signature spoofing** | Developer option to allow microG / selected apps to spoof signatures (restricted API) |
| **Call recording unlock** | Toggle to allow call recording where supported (AXP / EXTENDROM class) |
| **FLAG_SECURE override** | Optional global override for screen capture blocking (default **off**) |
| **Native debug / ptrace** | `persist.native_debug` — when enabled, relaxes ptrace scope for debugging (default off) |
| **Disable app** | Classic **disable** for user apps restored alongside Android’s archive behaviour |
### 6.3 Timeouts (Security / connected devices)
| Feature | What it does |
|---------|----------------|
| **Automatic reboot** | Reboot after configurable idle time |
| **Bluetooth timeout** | Turn off Bluetooth after inactivity |
| **Wi‑Fi timeout** | Turn off Wi‑Fi after inactivity |
### 6.4 Branding
- **Build type:** Lineage **PRO** channel naming (`AXP Resurrection Pro` product)
- **Release keys** (not `test-keys`) on shipped builds
---
## 7. System surface changes (deblob summary)
Full package-level detail is in **§2.5**. Short overview:
AXP Resurrection Pro **selectively removes** components that AXP Pro omitted or
that are unnecessary on a microG device. This is **not** a blind “remove
everything Google” script.
**Typical removals (by category):**
| Category | Examples of what is removed or not shipped |
|----------|---------------------------------------------|
| **Google EUICC / LPA** | Google’s eUICC app (OpenEUICC replaces user-facing LPA) |
| **Carrier / RCS Google** | Selected Google carrier and RCS packages not needed for microG |
| **Lineage maintenance tools on device** | Interactive shells and convenience packages on **system** that AXP Pro did not ship (e.g. `bash`, `htop`, `nano`, `unrar`, Lineage `addon.d` helper) |
| **Lab / debug commands** | Further debug-only binaries trimmed in the full “wave 4” product |
**Retained (examples):** IMS, telephony services, Wi‑Fi / cellular stack,
Widevine, camera, Qualcomm services required for daily use, `curl` / `vim` where
AXP Pro kept them.
**Product partition:** OpenSSH **binaries** are not shipped; an **`init.openssh.rc`
stub** may remain (AXP Pro parity) without shipping `sshd` on product.
---
## 8. Kernel and memory hardening
**Kernel version line:** Linux **4.14** (Qualcomm msm-4.14), as shipped by
Lineage for Pixel 4a — **not** upgraded to a GKI 6.x kernel.
### 7.1 Already strong on Lineage (kept)
Examples: Clang CFI, shadow call stack, stack protector, KASLR, PAN, hardened
usercopy, restricted perf events, and related options in the upstream sunfish
defconfig.
### 7.2 GrapheneOS-derived Stage 1 pack (30 patches)
Backported **GrapheneOS / Android Hardening** series via the AXP kernel patch
collection, including:
| Series | Purpose (summary) |
|--------|-------------------|
| **Deny USB** | Optional hardening around USB attack surface |
| **allocsize** | Allocation size hardening helpers |
| **bugon** | `ksize` / BUG_ON integrity checks |
| **fortify** | Intra-object FORTIFY helpers in kernel |
| **misc** | Miscellaneous hardening commits |
| **random** | Brk / argument randomization |
| **ro** | `__ro_after_init` and related read-only data hardening |
| **sanitize** | Page / slab sanitization helpers |
| **slab** | SLAB hardening companions |
| **unused** | Removal of unused kernel API noise |
**Kernel config enabled with this stack (examples):**
- `CONFIG_FORTIFY_SOURCE`
- `CONFIG_INIT_ON_ALLOC_DEFAULT_ON` / `CONFIG_INIT_ON_FREE_DEFAULT_ON`
- `CONFIG_SECURITY_DMESG_RESTRICT`
- `CONFIG_SLAB_HARDENED`
- `CONFIG_SLAB_FREELIST_RANDOM` (US-S5-1 class)
- **Yama LSM not enabled** (compat with apps using self-ptrace; matches classic AXP kernel posture)
**Not ported:** GrapheneOS **location lockdown** kernel policy (this ROM keeps
Lineage-style location behaviour and precision).
### 7.3 Userspace allocator
- **hardened_malloc** (64-bit) integrated into **bionic** for eligible processes,
with exclusions for graphics / camera stacks where required for stability.
### 7.4 CVE backports
The ROM applies a large set of **Linux kernel CVE backports** on top of the
4.14 sunfish kernel, from the same curated lists used in AXP / Divest-style
trees:
| Set | Count | Notes |
|-----|-------|--------|
| **Primary backport set** | **429** patch entries | Stable “clean offset” apply list |
| **High-offset batches 1–3** | **27** extra patch entries | Larger backports with relaxed offset matching |
| **Unique CVE identifiers (combined)** | **449** | Deduplicated ids in the list file below |
**Full CVE identifier list:** [`kernel-cve-backport-list.txt`](kernel-cve-backport-list.txt)
(one CVE id per line, sorted).
**Special cases (not in the 449 list as-is):**
- **CVE-2022-49980** — raw one-liner backport is **denied**; a **lock-scope /
UAF companion patch** is applied instead (USB subsystem stability).
- Additional CVE paths may appear on a **denylist** when they conflict with
sunfish drivers (Wi‑Fi, audio, etc.); those are skipped intentionally.
Platform **Android security patch** level follows **LineageOS merges** (e.g.
`2026-09-01` on recent builds). **Vendor** (bootloader/modem) patch level
remains on the **2023-09-05** line appropriate for Pixel 4a vendor blobs.
---
## 9. Verified Boot and signing
- Builds are signed with **project release keys** (`release-keys`).
- **AVB** metadata uses the project key; **verification flags** suit an
**unlocked** bootloader with Magisk (not a locked retail verified-boot product).
- **Do not** downgrade vendor security patch below the ROM’s minimum without
expecting install blocks or encryption init failures.
---
## 10. Installation (summary)
1. **Unlock bootloader** (erases data).
2. Flash **boot** + **dtbo** from the **same** ROM package if you are not already
on this ROM’s recovery (Pixel 4a uses recovery-in-boot).
3. Boot **recovery** → **Factory reset / format data**.
4. **Apply update → ADB sideload** the full `AXP-Resurrection-Pro-*.zip`.
5. Reboot, complete setup, then **Magisk** first-time APK install as above.
Use the **full OTA zip**; flashing only `boot.img` does not update system,
microG, or apps.
---
## 11. What this ROM does **not** promise
- No official Google certification or Play Protect “device integrity” guarantee.
- No bundled **Play Integrity Fix** or banking modules.
- No **AXP.OS** online update servers or external market repositories.
- No **NeoLauncher** (Lineage Launcher3 remains).
- No **KernelSU** in the standard build.
- **Banking apps** may work in work profiles or Island; that is **app-specific**
and not a ship guarantee.
---
## 12. Credits and lineage
- **LineageOS** — base operating system and device support.
- **microG project** — free Google services reimplementation.
- **Magisk** (topjohnwu) — root framework.
- **AXP.OS / EXTENDROM** — product philosophy, preroot Magisk packaging, and
many userspace behaviours cloned on this port.
- **GrapheneOS / Android Hardening** — kernel patch series (via AXP kernel
patch collection).
- **Community apps:** Aurora, Droidify, Fossify, OpenEUICC, Jelly, etc.
AXP Resurrection Pro is an **independent community port**. It is not an official
LineageOS, Google, or AXP.OS GmbH product.
---
## 13. Document history
| Version | Date | Notes |
|---------|------|--------|
| 1.1 | 2026-10-11 | Added **§2** delta vs LineageOS (features, removals, framework) |
| 1.0 | 2026-10-11 | Initial public feature list for `23.2-20261008` generation |
For maintainers: internal engineering docs remain separate under `docs/` in the
source repository.