300 lines
15 KiB
Markdown
300 lines
15 KiB
Markdown
# 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`.
|