009: publish AXPR23 final source and public documentation
This commit is contained in:
1 parent
72930e0fd6
commit
2c714d8d34
35 files changed
+2498
-403
No files matched your search
@@ -1,436 +1,299 @@
|
||||
# AXP Resurrection Pro — Pixel 4a (sunfish)
|
||||
# AXPR23: AXP Resurrection Pro para el Pixel 4a
|
||||
|
||||
**LineageOS 23.2 · Android 16 · Privacy-oriented custom ROM**
|
||||
**LineageOS 23.2 · Android 16 · `sunfish` · adaptación comunitaria · EOL**
|
||||
|
||||
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.
|
||||
AXP Resurrection Pro (AXPR) es una adaptación de **AXP.OS Pro** para el
|
||||
Google Pixel 4a. La idea no era crear otra ROM genérica basada en LineageOS,
|
||||
sino recuperar la experiencia de AXP sobre una base Android más reciente,
|
||||
manteniendo el soporte de hardware de LineageOS y añadiendo hardening propio.
|
||||
|
||||
This document describes **what the ROM contains**. It is written for end users
|
||||
and reviewers, not for build infrastructure.
|
||||
AXPR23 fue la adaptación para **LineageOS 23.2 / Android 16**. Su última build
|
||||
es `23.2-20261025-PRO-sunfish`. La línea está cerrada porque LineageOS dejó de
|
||||
publicar Android 16 para `sunfish`; la siguiente generación del proyecto es
|
||||
**AXPR24**, sobre LineageOS 24 / Android 17.
|
||||
|
||||
**Current generation (example build id):** `23.2-20261008` · `BP4A.251205.006`
|
||||
· `release-keys`
|
||||
La forma más clara de entender la ROM es separar sus cuatro procedencias:
|
||||
|
||||
1. la base y el soporte de dispositivo de **LineageOS**;
|
||||
2. la experiencia de producto recuperada de **AXP.OS / EXTENDROM**;
|
||||
3. las ideas y parches de hardening procedentes de **GrapheneOS / Android
|
||||
Hardening**;
|
||||
4. el trabajo propio de **AXPR** para integrar y adaptar todo lo anterior a
|
||||
Android 16 y al Pixel 4a.
|
||||
|
||||
---
|
||||
|
||||
## 1. At a glance
|
||||
## 1. La base: qué aporta LineageOS
|
||||
|
||||
| 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 |
|
||||
AXPR23 conserva LineageOS como base real del sistema, no como una colección de
|
||||
drivers reutilizados:
|
||||
|
||||
- LineageOS 23.2 y Android 16;
|
||||
- árbol de dispositivo y soporte de hardware del Pixel 4a;
|
||||
- vendor y firmware de `sunfish`;
|
||||
- kernel Qualcomm `msm-4.14`;
|
||||
- Launcher3, Dialer y componentes centrales del sistema;
|
||||
- integración de radio, IMS, Wi‑Fi, cámara, eSIM y recovery;
|
||||
- las protecciones de Android y LineageOS ya presentes en la base, como CFI,
|
||||
Shadow Call Stack, KASLR y PAN.
|
||||
|
||||
Por eso AXPR sigue comportándose como una ROM LineageOS en lo esencial. Lo que
|
||||
cambia es la capa de producto, aplicaciones, ajustes y hardening que se coloca
|
||||
encima.
|
||||
|
||||
---
|
||||
|
||||
## 2. Everything added on top of LineageOS 23.2
|
||||
## 2. Lo que recuperamos de AXP.OS y EXTENDROM
|
||||
|
||||
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/EXTENDROM aporta la referencia funcional de la ROM: qué aplicaciones deben
|
||||
estar integradas, cómo debe comportarse el preroot, qué controles de privacidad
|
||||
son útiles y qué partes de la experiencia merecía la pena conservar.
|
||||
|
||||
**AXP Resurrection Pro** keeps the Lineage base (Launcher3, Dialer, updaters,
|
||||
device support) and layers the following.
|
||||
### Servicios y aplicaciones
|
||||
|
||||
### 2.1 Product identity and visuals
|
||||
AXPR23 integra el stack que en AXP hacía posible utilizar el teléfono sin
|
||||
depender de una instalación completa de Google:
|
||||
|
||||
| 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) |
|
||||
- **microG Services / GmsCore**;
|
||||
- **GSF Proxy** para aplicaciones que esperan Google Services Framework;
|
||||
- **Phonesky**, cliente Play parcheado y firmado para el proyecto;
|
||||
- las bibliotecas nativas de GmsCore necesarias para aplicaciones como Maps;
|
||||
- **Aurora Store**;
|
||||
- **Droidify**;
|
||||
- **Fossify Gallery** en lugar de Gallery2/Glimpse;
|
||||
- **Jelly**, el navegador ligero de LineageOS;
|
||||
- **OpenEUICC** como gestor privilegiado de eSIM.
|
||||
|
||||
### 2.2 Google replacement stack (not in vanilla LOS)
|
||||
La ROM mantiene Launcher3 y las aplicaciones centrales de LineageOS. No intenta
|
||||
convertir el teléfono en una interfaz completamente distinta: recupera la
|
||||
selección de AXP donde aporta una diferencia práctica.
|
||||
|
||||
| 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) |
|
||||
### Preroot y producto
|
||||
|
||||
Vanilla Lineage does **not** ship these; you would install microG yourself on a
|
||||
separate track.
|
||||
El modelo de root sigue el de AXP/EXTENDROM:
|
||||
|
||||
### 2.3 Extra applications (vs typical LOS sunfish)
|
||||
- Magisk se integra durante la construcción del `boot.img`;
|
||||
- el manager se activa después de instalar la ROM;
|
||||
- el usuario decide qué módulos y configuración quiere añadir;
|
||||
- la ROM no fuerza una colección de modificaciones adicionales.
|
||||
|
||||
| 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) |
|
||||
También se recuperan elementos de producto de AXP: identidad **AXP Resurrection
|
||||
Pro**, pantalla de bienvenida, animación de arranque, nombre de paquete de
|
||||
release y firma del sistema con las claves `release-keys` del proyecto.
|
||||
|
||||
**Unchanged vs LOS intent:** **Launcher3** (no NeoLauncher), standard Lineage
|
||||
core apps, **Lineage WebView** as default provider.
|
||||
### Ajustes y controles de privacidad
|
||||
|
||||
### 2.4 Settings and framework behaviour (AXP / GrapheneOS / Calyx class)
|
||||
Estos cambios son funciones del sistema, no simples APKs añadidos:
|
||||
|
||||
These are **code changes in the platform**, not separate APKs.
|
||||
| Función | Qué recupera de AXP |
|
||||
|---|---|
|
||||
| **Private DNS** | Lista amplia de proveedores conocidos, sin servidores propios de AXP |
|
||||
| **Comprobación de conectividad** | Proveedor seleccionable o comprobación desactivada |
|
||||
| **SUPL y asistencia de ubicación** | Controles para limitar asistencia adicional de localización |
|
||||
| **Signature spoofing** | Opción restringida para microG y aplicaciones compatibles, desactivada por defecto |
|
||||
| **Grabación de llamadas** | Desbloqueo de la ruta de Dialer donde el dispositivo y la región lo permiten |
|
||||
| **Desactivar aplicaciones** | Acción clásica para aplicaciones instaladas por el usuario |
|
||||
| **Reinicio automático** | Reinicio por inactividad desde los ajustes de seguridad |
|
||||
| **Temporizadores Wi‑Fi/Bluetooth** | Desconexión automática tras el tiempo configurado |
|
||||
| **Quick Settings sensibles** | Algunos controles requieren desbloquear el teléfono |
|
||||
| **Capturas de pantalla** | Opción global para ventanas que usan `FLAG_SECURE`, desactivada por defecto |
|
||||
|
||||
#### Privacy and network
|
||||
La meta de estos ajustes es devolver control al usuario sin imponer una política
|
||||
única. La mayoría se mantienen desactivados o conservadores por defecto.
|
||||
|
||||
| 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) |
|
||||
### Debloat selectivo
|
||||
|
||||
#### Security, biometrics, and media metadata
|
||||
AXPR no utiliza una eliminación ciega de todo lo que parezca de Google. La
|
||||
limpieza se adaptó a Android 16 y se hizo por grupos:
|
||||
|
||||
| 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) |
|
||||
1. se retiraron las aplicaciones Google de eUICC/LPA y se integró OpenEUICC;
|
||||
2. se redujeron componentes de carrier, RCS y entitlement que no son necesarios
|
||||
para el modelo microG;
|
||||
3. se retiraron herramientas de mantenimiento que no forman parte del producto
|
||||
final, como `bash`, `htop`, `nano`, `unrar` y `addon.d/50-lineage.sh`;
|
||||
4. se redujo la superficie de diagnóstico sin eliminar los servicios necesarios
|
||||
para radio, IMS, ubicación y conectividad;
|
||||
5. no se distribuyen `ssh`, `sshd`, `scp`, `sftp`, `rsync` ni `procmem` como
|
||||
herramientas de administración del teléfono.
|
||||
|
||||
#### 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).
|
||||
Se conservaron deliberadamente los componentes Pixel, Qualcomm, IMS y eSIM que
|
||||
el funcionamiento diario necesita.
|
||||
|
||||
---
|
||||
|
||||
## 3. Who this ROM is for
|
||||
## 3. Lo que viene de GrapheneOS y Android Hardening
|
||||
|
||||
- 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.
|
||||
GrapheneOS y Android Hardening son referencias técnicas para determinadas
|
||||
protecciones. AXPR no es GrapheneOS, no usa su plataforma completa y no copia
|
||||
un kernel moderno de forma literal. Los parches se adaptaron al kernel no-GKI
|
||||
4.14 de `sunfish`.
|
||||
|
||||
**Not goals of this ROM:** banking attestation guarantees, locked bootloader,
|
||||
proprietary AXP OTA infrastructure, or shipping every Google / carrier app from
|
||||
stock Pixel firmware.
|
||||
### Kernel
|
||||
|
||||
Sobre el kernel de LineageOS se aplicó un conjunto Stage 1 de aproximadamente
|
||||
30 parches, con medidas como:
|
||||
|
||||
- FORTIFY intra-object y comprobaciones de tamaño;
|
||||
- inicialización de memoria al reservar y liberar;
|
||||
- endurecimiento y aleatorización de las listas libres de SLAB;
|
||||
- datos `ro_after_init`;
|
||||
- sanitización de rutas sensibles;
|
||||
- restricciones de `dmesg`;
|
||||
- protección y control de determinadas rutas USB;
|
||||
- ajustes de integridad y reducción de superficie de depuración.
|
||||
|
||||
La configuración final conserva CFI y Shadow Call Stack junto con el hardening
|
||||
que ya aportaba Android/LineageOS.
|
||||
|
||||
### Backports CVE
|
||||
|
||||
El inventario de la build final contiene **449 identificadores CVE** y parches
|
||||
acompañantes. Son backports seleccionados de distintas generaciones del kernel,
|
||||
con problemas de memoria, drivers, USB, Bluetooth, red, filesystem y
|
||||
subsystems Qualcomm.
|
||||
|
||||
Algunos ejemplos del inventario son:
|
||||
|
||||
`CVE-2015-7837`, `CVE-2017-18232`, `CVE-2020-0255`, `CVE-2021-28039`,
|
||||
`CVE-2022-21546` y `CVE-2022-48674`, además de una serie amplia de correcciones
|
||||
de 2023–2025.
|
||||
|
||||
No se aplicó un megapatch opaco: las series se comprobaron contra el offset
|
||||
real del árbol `4.14.357-openela` y se conservaron listas de atribución. El
|
||||
inventario completo está en `kernel-cve-backport-list.txt` dentro de la
|
||||
documentación del proyecto.
|
||||
|
||||
### Allocator y userspace
|
||||
|
||||
La integración de **hardened_malloc** sigue la línea de trabajo de GrapheneOS y
|
||||
DivestOS, adaptada a la memoria virtual del Pixel 4a:
|
||||
|
||||
- `hardened_malloc` en la libc de 64 bits;
|
||||
- Scudo para procesos de 32 bits;
|
||||
- excepciones específicas para cámara y SurfaceFlinger, para no romper funciones
|
||||
básicas del dispositivo;
|
||||
- SELinux en enforcing;
|
||||
- cifrado de datos estándar de Android.
|
||||
|
||||
La protección se aplicó de forma compatible con el hardware. No se importaron
|
||||
dependencias de MTE ni requisitos propios de dispositivos más modernos.
|
||||
|
||||
---
|
||||
|
||||
## 4. Preinstalled applications
|
||||
## 4. Trabajo propio de AXPR
|
||||
|
||||
| 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. |
|
||||
La parte más importante del proyecto fue hacer que esas piezas funcionaran
|
||||
juntas en una base distinta. Ese trabajo es el que convierte el conjunto en una
|
||||
adaptación de AXP y no en una lista de parches:
|
||||
|
||||
**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).
|
||||
### Portar AXP a Android 16
|
||||
|
||||
- localizar los equivalentes de Android 16 para ajustes y servicios que AXP
|
||||
implementaba sobre una generación anterior;
|
||||
- adaptar los cambios de Settings, SystemUI, SystemServer, Dialer y framework;
|
||||
- conservar la compatibilidad con el vendor y el kernel `sunfish`;
|
||||
- revalidar microG, Phonesky, eSIM, radio y las aplicaciones integradas;
|
||||
- combinar el debloat con los servicios que Android 16 aún necesita.
|
||||
|
||||
### Construir el WebView del proyecto
|
||||
|
||||
AXPR integra el AOSmium del proyecto mediante la cadena **Vanadium → Mulch →
|
||||
AOSmium**. Hubo que adaptar el build de Chromium/WebView, generar una versión
|
||||
compatible con las dos ABIs necesarias y conectar el proveedor mediante el
|
||||
overlay estático de LineageOS. El resultado final selecciona AOSmium, pero
|
||||
mantiene el mecanismo Android para instalar y elegir otros proveedores.
|
||||
|
||||
### Integración y compatibilidad
|
||||
|
||||
También son trabajo propio de AXPR:
|
||||
|
||||
- seleccionar qué partes de AXP seguían teniendo sentido en Android 16;
|
||||
- adaptar los offsets y excepciones de los backports al kernel real;
|
||||
- integrar allocator, Magisk, aplicaciones, permisos y overlays en un único
|
||||
producto;
|
||||
- mantener la firma, el empaquetado y el flujo de recovery de AXP;
|
||||
- probar el resultado en el Pixel 4a y corregir incompatibilidades concretas,
|
||||
en lugar de importar configuraciones completas de otra ROM.
|
||||
|
||||
---
|
||||
|
||||
## 5. Root and Magisk
|
||||
## 5. Matriz de procedencia y diferencias
|
||||
|
||||
- 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.
|
||||
La siguiente tabla resume qué aporta cada proyecto y qué trabajo se hizo en
|
||||
AXPR. “GrapheneOS / AH” indica una referencia técnica o una familia de parches;
|
||||
no significa que AXPR incorpore GrapheneOS completo.
|
||||
|
||||
**KernelSU** is **not** part of this product line.
|
||||
| Componente | LineageOS aporta | AXP / EXTENDROM aporta | GrapheneOS / AH aporta | Trabajo AXPR en la build final |
|
||||
|---|---|---|---|---|
|
||||
| **Base y hardware** | Android 16, device tree, vendor, radio y recovery | — | — | Portar la experiencia AXP a `sunfish` sin cambiar la base de dispositivo |
|
||||
| **Servicios Google** | Base sin microG ni Play | Modelo microG + GSF Proxy + Phonesky | — | Adaptar permisos, JNI, privilegios y empaquetado a Android 16 |
|
||||
| **Aplicaciones** | Launcher3, Dialer y apps centrales | Aurora, Droidify, Fossify y OpenEUICC | — | Seleccionar versiones, ubicaciones y permisos compatibles |
|
||||
| **WebView** | Framework y selección de proveedores | Necesidad de conservar el WebView del producto | Chromium/Vanadium como referencia técnica | Construir e integrar AOSmium mediante Vanadium → Mulch → AOSmium |
|
||||
| **Root** | No incluido | Preroot de EXTENDROM | — | Integrar Magisk en `boot.img` sin convertirlo en una app de sistema obligatoria |
|
||||
| **Privacidad y UX** | Ajustes estándar | DNS, conectividad, llamadas, spoofing, timeouts y controles AXP | Ideas puntuales de SystemUI | Reubicar y adaptar los controles a Settings/SystemUI Android 16 |
|
||||
| **Debloat** | Paquetes de la base | Objetivo de reducir superficie | — | Cuatro oleadas selectivas sin romper radio, IMS, eSIM ni Qualcomm |
|
||||
| **Kernel** | `msm-4.14` y hardening Android existente | Orden y selección de parches del track AXP | Stage 1, FORTIFY, slab, sanitización y alloc hardening | Adaptar aproximadamente 30 parches al árbol real de `sunfish` |
|
||||
| **CVE** | Parches upstream disponibles | Política de backports | Fuentes y referencias de hardening | Integrar y verificar 449 identificadores en series aplicables |
|
||||
| **Allocator** | Bionic y Scudo de Android | Objetivo de allocator reforzado | `hardened_malloc` y modelo de excepciones | Adaptar `hardened_malloc` a 64 bits, Scudo a 32 bits y VA39 |
|
||||
| **SELinux y cifrado** | Base Android/LineageOS | Requisitos de producto | Referencia de endurecimiento | Mantener SELinux enforcing y cifrado de datos |
|
||||
| **Identidad y release** | Formato de build LineageOS | Forma de empaquetado AXP Pro | — | Branding, `release-keys`, ZIP completo y flujo recovery/sideload |
|
||||
|
||||
En forma de comparación rápida:
|
||||
|
||||
| Área | LineageOS 23.2 limpio | AXPR23 |
|
||||
|---|---|---|
|
||||
| Servicios Google | No incluidos | microG, GSF Proxy y Phonesky |
|
||||
| Aplicaciones | Conjunto estándar de LineageOS | Aurora, Droidify, Fossify, Jelly y OpenEUICC |
|
||||
| WebView | Proveedor de LineageOS | AOSmium del proyecto como proveedor seleccionado |
|
||||
| Root | No incluido | Magisk preroot en `boot.img` |
|
||||
| Ajustes | Opciones estándar | Controles de DNS, conectividad, ubicación, llamadas y privacidad de AXP |
|
||||
| Debloat | Paquetes estándar de la base | Limpieza selectiva adaptada a microG y `sunfish` |
|
||||
| Kernel | `msm-4.14` de LineageOS | Stage 1, FORTIFY, backports CVE y configuración reforzada |
|
||||
| Allocator | Bionic estándar | `hardened_malloc` para 64 bits y Scudo para 32 bits |
|
||||
| Identidad | Build LineageOS habitual | Producto PRO firmado con `release-keys` |
|
||||
| Actualizaciones | Nightlies de LineageOS | ZIP completo por recovery/sideload |
|
||||
|
||||
AXPR mantiene la base de dispositivo de LineageOS y mejora sus capas de
|
||||
producto, privacidad y hardening. No es una copia literal de GrapheneOS ni una
|
||||
continuación oficial de AXP.OS: es una adaptación bastante directa de AXP.OS
|
||||
Pro, con las mejoras y correcciones necesarias para Android 16.
|
||||
|
||||
---
|
||||
|
||||
## 6. Settings and toggles (reference)
|
||||
## 6. Estado de AXPR23 y última build
|
||||
|
||||
Same features as **§2.4**; quick lookup by menu area.
|
||||
AXPR23 está **EOL / archivada**. LineageOS dejó de publicar nuevas builds de
|
||||
Android 16 para `sunfish` al comenzar la línea Android 17. No habrá nuevas
|
||||
features ni nuevas builds AXPR23; se conserva como referencia y rollback.
|
||||
|
||||
These appear in **Settings** / **Developer options** (exact menus follow AOSP
|
||||
Lineage layout). Names may be localized.
|
||||
- **Build:** `AXP-Resurection-Pro-23.2-20261025-sunfish.zip`
|
||||
- **Base:** LineageOS 23.2 / Android 16
|
||||
- **SHA-256:** `9d205fd3cc945438dfff3a23b129bf88516c7654f5922bc2ee4d478f9485eef0`
|
||||
- **Siguiente línea:** AXPR24 sobre LineageOS 24 / Android 17
|
||||
|
||||
### 6.1 Privacy and network
|
||||
AXPR24 no es una actualización automática de AXPR23. Es una nueva adaptación
|
||||
que debe volver a validar aplicaciones, WebView, allocator, kernel y packaging
|
||||
contra Android 17.
|
||||
|
||||
| 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 |
|
||||
## Descarga
|
||||
|
||||
### 6.2 Security and developer
|
||||
La última build publicada es un ZIP completo para el Google Pixel 4a
|
||||
(`sunfish`), firmado con las claves de release del proyecto:
|
||||
|
||||
| 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 |
|
||||
[**Descargar AXPR23 — AXP.OS sobre LineageOS 23 para Pixel 4a**](https://vbits.me/download/284/)
|
||||
|
||||
### 6.3 Timeouts (Security / connected devices)
|
||||
El botón usa Download Monitor y conserva el contador dinámico de descargas.
|
||||
|
||||
| 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 |
|
||||
- **Build:** `AXP-Resurection-Pro-23.2-20261025-sunfish.zip`
|
||||
- **Tamaño:** 1.397.472.560 bytes (1,30 GiB)
|
||||
- **MD5:** `23378f132ac8b1f53606183451715a9c`
|
||||
- **SHA-256:** `9d205fd3cc945438dfff3a23b129bf88516c7654f5922bc2ee4d478f9485eef0`
|
||||
- **Instalación:** ZIP completo mediante recovery/sideload. Haz una copia de
|
||||
seguridad antes de instalarlo.
|
||||
|
||||
### 6.4 Branding
|
||||
## Créditos
|
||||
|
||||
- **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.
|
||||
AXPR23 se apoya en el trabajo de **AXP.OS / EXTENDROM**, **LineageOS**,
|
||||
**microG**, **GrapheneOS / Android Hardening**, **Vanadium / Mulch / AOSmium**,
|
||||
Magisk, OpenEUICC y los proyectos de las aplicaciones integradas. Es una
|
||||
adaptación comunitaria independiente para `sunfish`.
|
||||
Reference in new issue
Block a user