Files
AXP-Resurection/docs/public/AXP-Resurrection-Pro-sunfish.md
T

300 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AXPR23: AXP Resurrection Pro para el Pixel 4a
**LineageOS 23.2 · Android 16 · `sunfish` · adaptación comunitaria · EOL**
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.
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.
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. La base: qué aporta LineageOS
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. Lo que recuperamos de AXP.OS y EXTENDROM
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.
### Servicios y aplicaciones
AXPR23 integra el stack que en AXP hacía posible utilizar el teléfono sin
depender de una instalación completa de Google:
- **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.
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.
### Preroot y producto
El modelo de root sigue el de AXP/EXTENDROM:
- 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.
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.
### Ajustes y controles de privacidad
Estos cambios son funciones del sistema, no simples APKs añadidos:
| 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 |
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.
### Debloat selectivo
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:
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.
Se conservaron deliberadamente los componentes Pixel, Qualcomm, IMS y eSIM que
el funcionamiento diario necesita.
---
## 3. Lo que viene de GrapheneOS y Android Hardening
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`.
### 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. Trabajo propio de AXPR
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:
### 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. Matriz de procedencia y diferencias
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.
| 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. Estado de AXPR23 y última build
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.
- **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
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.
## Descarga
La última build publicada es un ZIP completo para el Google Pixel 4a
(`sunfish`), firmado con las claves de release del proyecto:
[**Descargar AXPR23 — AXP.OS sobre LineageOS 23 para Pixel 4a**](https://vbits.me/download/284/)
El botón usa Download Monitor y conserva el contador dinámico de descargas.
- **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.
## Créditos
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`.