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>
373 lines
18 KiB
Markdown
373 lines
18 KiB
Markdown
# AXP Resurrection Pro (AXPR) — Presentación de la ROM
|
||
|
||
**Dispositivo:** Google Pixel 4a (`sunfish`)
|
||
**Base upstream:** LineageOS **23.2** / Android **16** (`BP4a`, `lineage_sunfish-user`)
|
||
**Producto:** **AXP Resurrection Pro** — clon funcional de AXP.OS Pro (LOS22 / GOLDEN) sobre LOS23
|
||
**Repositorio:** `AXP_Resurection` (rama Magisk / `009`)
|
||
**Documento:** síntesis enriquecida para lectura o exportación a PDF — **2026-10-11**
|
||
|
||
**Público / usuarios:** ver [`public/AXP-Resurrection-Pro-sunfish.md`](public/AXP-Resurrection-Pro-sunfish.md) y lista CVE [`public/kernel-cve-backport-list.txt`](public/kernel-cve-backport-list.txt).
|
||
|
||
---
|
||
|
||
### Exportar a PDF (en el laptop)
|
||
|
||
```bash
|
||
cd /home/aventura/Workspaces/AXP_Resurection
|
||
# Opción A — pandoc (si está instalado)
|
||
pandoc docs/009-axpr-rom-presentation.md -o docs/009-axpr-rom-presentation.pdf \
|
||
--pdf-engine=xelatex -V geometry:margin=2.5cm -V lang=es
|
||
|
||
# Opción B — navegador / VS Code: vista previa Markdown → Imprimir → Guardar como PDF
|
||
```
|
||
|
||
**Fuentes normativas:** `specs/009-axp-los23-port/spec.md`, `.specify/memory/constitution.md`, `docs/009-handoff-20261008.md`. Este archivo es **presentación**; no sustituye el spec.
|
||
|
||
---
|
||
|
||
## Tabla de contenidos
|
||
|
||
1. [Resumen ejecutivo](#1-resumen-ejecutivo)
|
||
2. [Arco del proyecto (punto 0 → hoy)](#2-arco-del-proyecto-punto-0--hoy)
|
||
3. [Línea base LineageOS vs identidad AXPR](#3-línea-base-lineageos-vs-identidad-axpr)
|
||
4. [Qué se clonó de AXP.OS / EXTENDROM](#4-qué-se-clonó-de-axpos--extendrom)
|
||
5. [Kernel: AXP, GrapheneOS-class, CVE](#5-kernel-axp-grapheneos-class-cve)
|
||
6. [Userspace: parches AXP en Android 16](#6-userspace-parches-axp-en-android-16)
|
||
7. [Debloob / de-Google selectivo](#7-debloob--de-google-selectivo)
|
||
8. [microG, Play y apps empaquetadas](#8-microg-play-y-apps-empaquetadas)
|
||
9. [Magisk preroot (sin KernelSU en ship)](#9-magisk-preroot-sin-kernelsu-en-ship)
|
||
10. [Hardening userspace y malloc](#10-hardening-userspace-y-malloc)
|
||
11. [Toggles y políticas de privacidad](#11-toggles-y-políticas-de-privacidad)
|
||
12. [Firma, AVB y actualizaciones](#12-firma-avb-y-actualizaciones)
|
||
13. [Inspiración GrapheneOS (qué sí / qué no)](#13-inspiración-grapheneos-qué-sí--qué-no)
|
||
14. [Verificación y hitos en LAB](#14-verificación-y-hitos-en-lab)
|
||
15. [Build de referencia actual (oct 2026)](#15-build-de-referencia-actual-oct-2026)
|
||
16. [Abierto / no objetivo](#16-abierto--no-objetivo)
|
||
17. [Apéndice: scripts de integración](#17-apéndice-scripts-de-integración)
|
||
18. [Apéndice: lecciones LAB (Magisk / flash)](#18-apéndice-lecciones-lab-magisk--flash)
|
||
|
||
---
|
||
|
||
## 1. Resumen ejecutivo
|
||
|
||
**AXP Resurrection Pro (AXPR)** no es un LineageOS con “algunos APKs”: es un **resurrection track** que toma **LineageOS 23.2 vanilla** probado en LAB (`003`) y reintegra el **conjunto de capacidades AXP.OS Pro** (referencia **GOLDEN** en Pixel 4a con AXP 22.2 / Android 15), adaptado a **Android 16** y **Magisk 30.7**, con:
|
||
|
||
- **Kernel** `msm-4.14` de LOS + **Stage 1** Graphene/AXP (~30 parches) + **FORTIFY** + **~429 CVE** “clean-offset” + **lotes high-offset** + endurecimiento **US-S5-1** (sin Yama como GOLDEN).
|
||
- **Userspace** microG + **Phonesky** parcheado del proyecto + **sigspoof** y **call recording** con toggles + DNS privado / connectivity check al estilo AXP (sin servidores `axp.os`).
|
||
- **Debloob** en **4 oleadas** (euicc Google, carrier/RCS, herramientas Lineage, comandos solo-LAB) — **no** el `Deblob.sh` ciego de AXP.
|
||
- **Magisk** embebido en **build** (EXTENDROM `EXTENDROM_PREROOT_BOOT`), manager **dormant** hasta activación; **KernelSU/SusFS** fuera del bacon de ship (`007` en paralelo).
|
||
- **Firma** `release-keys` de proyecto, **AVB flags=0** (track desbloqueado + Magisk), **SPL vendor** fijado en **2023-09-05** (guardia anti-downgrade).
|
||
|
||
Paridad bancaria **Swissquote en Island: PASS** en cierre 2026-10-09; **Yuh** sigue abierto.
|
||
|
||
---
|
||
|
||
## 2. Arco del proyecto (punto 0 → hoy)
|
||
|
||
| Fase | Feature | Qué se logró |
|
||
|------|---------|----------------|
|
||
| **Host** | `001` | `rom-dev01`, artefactos bajo `/srv/rom/artifacts/`, builds largos en tmux (`rom-detach`) |
|
||
| **Oracle** | `002` | Inventario **GOLDEN** (`11071JEC203839`) — solo lectura `adb` |
|
||
| **Baseline** | `003` | **LOS 23.2 UNOFFICIAL** vanilla en LAB (`20260914`), smoke hardware, **sin** AXP/microG |
|
||
| **MicroG track (standby)** | `004`–`008` | microG, spoof, call rec, etc. — reutilizado por `009` |
|
||
| **KernelSU track (paralelo)** | `007` | Boot OK sept 2026; **no mezclar** en bacon Magisk |
|
||
| **Ship activo** | `009` | **AXP → LOS23** resurrection; spec `009-axp-los23-port` |
|
||
|
||
**Dispositivos:**
|
||
|
||
| Rol | Serial | Uso |
|
||
|-----|--------|-----|
|
||
| **GOLDEN** | `11071JEC203839` | Oracle AXP 22.2 — **nunca** flashear |
|
||
| **LAB** | `11231JEC207477` | Flash, sideload, Magisk, banca en Island |
|
||
|
||
---
|
||
|
||
## 3. Línea base LineageOS vs identidad AXPR
|
||
|
||
### 3.1 Vanilla LOS (`003`)
|
||
|
||
- Build: `lineage-23.2-20260914-UNOFFICIAL-sunfish`
|
||
- `ro.lineage.version` UNOFFICIAL, test-keys, sin microG ni Magisk AXP
|
||
- Vendor SPL **2023-09-05** (EOL Pixel; documentado)
|
||
- **Gate:** smoke LAB OK → autoriza integración AXP
|
||
|
||
### 3.2 Pin upstream OTA (oct 2026)
|
||
|
||
- Manifest pin: **Lineage nightly `20261008`** (`lineage-23.2-20261008-nightly-sunfish`)
|
||
- Zip de producto: `AXP-Resurection-Pro-23.2-20261008-sunfish.zip` (hermano de `lineage-23.2-20261008-PRO-sunfish.zip`)
|
||
- `LINEAGE_BUILDTYPE=PRO`, `user`, `TARGET_RELEASE=bp4a`
|
||
- Platform SPL: **2026-09-01** (merges LOS)
|
||
- Vendor SPL ship: **2023-09-05** (deliberado vs GOLDEN `2023-08-05` — guardia en `apply_009_axp_identity.py`)
|
||
|
||
### 3.3 Branding
|
||
|
||
- Nombre producto: **AXP Resurrection Pro**
|
||
- Bootanimation: **fullscreen sunfish** (mejora de tamaño vs banda Lineage); assets AXP PRO en payload aún limitados — animación puede seguir siendo clase Lineage en algunos builds
|
||
- **No** NeoLauncher — **Launcher3** Lineage
|
||
- **No** servidores OTA AXP ni repos de mercado externos (EOL)
|
||
|
||
---
|
||
|
||
## 4. Qué se clonó de AXP.OS / EXTENDROM
|
||
|
||
**Regla del repo (`AGENTS.md`):** copiar método AXP/EXTENDROM/GOLDEN **antes** de inventar política local.
|
||
|
||
| Área | Mecanismo AXP | Implementación AXPR |
|
||
|------|----------------|---------------------|
|
||
| **Magisk en boot** | `EXTENDROM_PREROOT_BOOT`, `patch.sh`, hook `releasetools` | `vendor/sunfish-a16/magisk/`, `out/.magisk/READY`, `SUNFISH_A16_MAGISK_PREROOT` |
|
||
| **Magisk no en PRODUCT** | Root dormant hasta activación | Stub manager; **no** `PRODUCT_PACKAGE` Magisk |
|
||
| **Env patcher** | `PREINITDEVICE=userdata`, `KEEPVERITY`, `KEEPFORCEENCRYPT` | Mismo en `vendor/sunfish-a16/magisk/patch.sh` |
|
||
| **Product wiring** | `gms.mk`, `magisk.mk`, `apps.mk` | `apply_009_product_includes.py` en cada bacon |
|
||
| **Identidad / certs** | `vendor/lineage-priv/keys`, `avb.pem` | `apply_009_axp_identity.py` + `/srv/rom/secrets/android-certs` |
|
||
| **Phonesky** | APK parcheado (exact alarm, etc.) | `/srv/rom/prebuilts/phonesky/` — **no** en git |
|
||
| **Toggles EXTENDROM** | `allow_signature_fake`, `extendrom_call_recording` | `005` sigspoof, `008` call rec / FLAG_SECURE |
|
||
| **Private DNS lista** | AXP Settings providers | `apply_009_private_dns_providers.py` |
|
||
| **Connectivity / INTERNET UX** | AXP-class | `apply_009_connectivity_check.py` |
|
||
| **Disable app clásico** | vs Archive A16 | `apply_009_disable_user_apps.py` |
|
||
| **OpenSSH en product** | Binarios fuera; `init.openssh.rc` queda | US-S4-1 + `hardening.mk` |
|
||
| **Referencias build** | EXTENDROM en `rom-dev01` | `/srv/rom/references/extendrom/` |
|
||
|
||
**FAQ AXP (Magisk):** tras flash, **sí** a descargar/instalar el **APK** del manager; el paso **Additional setup** que **re-parchea boot** suele **no hacer falta** en preroot (el boot ya va parcheado en bacon). Ver [AXP FAQ](https://github.com/AXP-OS/build/wiki/Frequently-Asked-Questions#magisk-requires-additional-setup-on-start).
|
||
|
||
---
|
||
|
||
## 5. Kernel: AXP, GrapheneOS-class, CVE
|
||
|
||
**Base:** `kernel/google/msm-4.14` @ `4.14.357-openela` (pin LOS `28f9290ae067`), **non-GKI**.
|
||
|
||
### 5.1 Ya en LOS (no duplicar)
|
||
|
||
CFI, shadow call stack, stack protector, KASLR, PAN, hardened usercopy, restricción perf events, etc. (`docs/009-kernel-hardening-map.md`).
|
||
|
||
### 5.2 Stage 1 — parches Graphene/AH vía AXP `kernel_patches`
|
||
|
||
~**30 parches** aplicados (deny USB toggle, allocsize, BUG_ON, FORTIFY intra-object, randomize, ro_after_init, sanitize, slab hardened, unused-fn, …).
|
||
**Omitido por política:** location lockdown (FR-018), LinuxIncrementals, mega CVE hasta fase estable.
|
||
|
||
### 5.3 Combo4 + Clang FORTIFY
|
||
|
||
- `CONFIG_FORTIFY_SOURCE=y` y opciones slab/init/on alloc tras Stage 1
|
||
- Fixes de build (LTO/modules qcacld, stubs acotados en bisect histórico)
|
||
|
||
### 5.4 CVE
|
||
|
||
| Etapa | Contenido |
|
||
|-------|-----------|
|
||
| **CVE clean-offset** | ~**429** IDs en `cve-clean-offset.list` (strict apply en bacon) |
|
||
| **High-offset batches 1–3** | Offsets grandes con `max_abs_offset` elevado |
|
||
| **Denylist** | p.ej. `CVE-2022-49980` (lock-scope USB) |
|
||
| **Política** | Atribución en logs `cve-stage/`; no megapatch opaco |
|
||
|
||
### 5.5 US-S5-1 (como GOLDEN)
|
||
|
||
- `CONFIG_SECURITY_YAMA` **no** activado (Yama `ptrace_scope=2` rompió **PairIP** / anti-debug)
|
||
- `SLAB_FREELIST_RANDOM=y`, USERFAULTFD off
|
||
- `KSYM_NAME_LEN=192`; **sin KernelSU** en defconfig ship
|
||
|
||
### 5.6 hardened_malloc (`012`)
|
||
|
||
- Integrado en bacon OTA (`009-bacon-hardened-malloc.sh`)
|
||
- Exclusiones SurfaceFlinger/cámara documentadas en árbol bionic
|
||
|
||
---
|
||
|
||
## 6. Userspace: parches AXP en Android 16
|
||
|
||
Scripts bajo `vendor/sunfish-a16/patches/009-axp-los23-port/` (puertos desde árbol AXP legacy **a A16**, no “SDK 35”):
|
||
|
||
| Script | Función |
|
||
|--------|---------|
|
||
| `apply_009_product_includes.py` | `gms.mk` + `magisk.mk` + **`apps.mk`** + BoardConfig |
|
||
| `apply_009_axp_identity.py` | release keys, AVB, SPL vendor guard |
|
||
| `apply_009_axp_branding.py` | branding Pro |
|
||
| `apply_009_private_dns_providers.py` | lista DNS privado AXP |
|
||
| `apply_009_connectivity_check.py` | checks de conectividad |
|
||
| `apply_009_disable_user_apps.py` | Disable clásico |
|
||
| `apply_009_supl_privacy.py` | SUPL / ubicación (sin lockdown extra FR-018) |
|
||
| `apply_009_cmdline_mode.py` | cmdline / modo debug (Magisk track) |
|
||
| `apply_009_yama_ptrace.py` | Yama inerte si no hay Yama en kernel |
|
||
| `apply_009_a15_*` | timeouts reboot/Wi‑Fi/BT, settings |
|
||
| `apply_005` / `apply_008` | sigspoof, call recording, FLAG_SECURE DO |
|
||
| `apply_009_drop_*` | deblob waves (ver §7) |
|
||
|
||
**WMS / FLAG_SECURE:** override global opcional (proyecto `008`), default off.
|
||
|
||
---
|
||
|
||
## 7. Debloob / de-Google selectivo
|
||
|
||
**No** se ejecuta `Deblob.sh` por defecto AXP. Oleadas controladas (`AXP_DEBLOB_WAVE4=1` en OTA):
|
||
|
||
| Wave | Contenido |
|
||
|------|-----------|
|
||
| **1** | Drop **Google EUICC** / LPA (`apply_009_drop_euicc_google.py`) — OpenEUICC en system_ext |
|
||
| **2** | Carrier Google + AOSP RCS (`apply_009_drop_carrier_google.py`) |
|
||
| **3** | Herramientas Lineage en system (`bash`, `htop`, `nano`, `unrar`, `addon.d/50-lineage.sh`) — **Swissquote** fallaba con estas en system |
|
||
| **4** | Comandos solo-LAB / diag (`apply_009_drop_lab_only_commands.py`) |
|
||
|
||
**Se mantiene (radio/IMS):** `ims`, `QtiTelephonyService`, `xtra-daemon`, Widevine, `EuiccSupportPixel` donde el spec lo exige, Qualcomm diag en wave 4 parcial según cierre.
|
||
|
||
---
|
||
|
||
## 8. microG, Play y apps empaquetadas
|
||
|
||
### 8.1 Stack deGoogle (servicios)
|
||
|
||
| Componente | Ubicación | Versión pin (ej.) |
|
||
|------------|-----------|-------------------|
|
||
| **GmsCore** (microG) | `system_ext/app/GmsCore` | `0.3.17.252432` |
|
||
| **GsfProxy** | `system_ext` | `0.1.0` |
|
||
| **Phonesky** | `system/priv-app/Phonesky` | `52.9.22-24` (artifact host) |
|
||
| **JNI GmsCore** | `.../lib/arm64/*.so` | Extraído en bacon (**obligatorio** para Maps) |
|
||
|
||
### 8.2 Apps usuario (system_ext / product)
|
||
|
||
| App | Paquete | Notas |
|
||
|-----|---------|-------|
|
||
| **Aurora Store** | `com.aurora.store` | system_ext |
|
||
| **Droidify** | `com.looker.droidify` | sustituye cliente F-Droid |
|
||
| **Fossify Gallery** | `org.fossify.gallery` | no Gallery2/Glimpse |
|
||
| **Jelly** | `org.lineageos.jelly` | **product** |
|
||
| **OpenEUICC** | `im.angry.openeuicc` | LPA privilegiada |
|
||
| **WebView** | `com.android.webview` | **LOS 23** — no Aosmium (EOL); selector multi-proveedor en Dev options |
|
||
|
||
Postflight bacon: **US-S4-2** (Jelly), **US-S4-3** (Aurora/Droidify/Fossify en system_ext).
|
||
|
||
---
|
||
|
||
## 9. Magisk preroot (sin KernelSU en ship)
|
||
|
||
| Tema | Detalle |
|
||
|------|---------|
|
||
| **Versión** | **30.7** (pin; GOLDEN oracle **29.0**) |
|
||
| **Build** | Hook `common.py` + `patch.sh` en empaquetado `target_files/IMAGES/boot.img` |
|
||
| **Verificación host** | `magiskboot cpio ramdisk.cpio test` ≠ 0 en **ship** `boot.img` |
|
||
| **Artefacto forensics** | `boot-make-out.img` = `out/.../boot.img` **sin** Magisk — **no flashear** |
|
||
| **Activación** | Abrir app → **download/install** APK real; **evitar** re-parchear boot (Install / inactive slot) |
|
||
| **UI Ramdisk Yes/No** | Clasificación de **método de instalación**; con preroot puede quedar **No** sin impedir root |
|
||
| **Módulos GOLDEN** | **No** empaquetados (PIF, hosts, tee sim, …) — usuario instala después |
|
||
| **KernelSU** | Prohibido en mismo boot que Magisk ship |
|
||
|
||
---
|
||
|
||
## 10. Hardening userspace y malloc
|
||
|
||
| ID | Medida |
|
||
|----|--------|
|
||
| **US-S4-1** | Sin `sshd`/`ssh`/`rsync`/`procmem` en product; **sí** `init.openssh.rc` |
|
||
| **US-S4-2/3** | Superficie apps (Jelly + Fossify + stores) |
|
||
| **US-S6** | `lineage_sunfish-user` lunch |
|
||
| **012** | **hardened_malloc** en bionic (ship OTA) |
|
||
| **SELinux** | Enforcing (medido en LAB) |
|
||
| **Encryption** | FBE/file encryption estándar |
|
||
| **Bootloader lock** | **Wont** — AXP/LOS/Magisk asumen unlock |
|
||
|
||
---
|
||
|
||
## 11. Toggles y políticas de privacidad
|
||
|
||
| Toggle / setting | Origen | Comportamiento |
|
||
|------------------|--------|----------------|
|
||
| **Signature spoofing** | AXP / `005` | Restricted; Developer Options |
|
||
| **Call recording unlock** | EXTENDROM / `008` | SQLite / settings key |
|
||
| **FLAG_SECURE override** | Proyecto `008` | Default off |
|
||
| **Private DNS providers** | AXP lista | Sin endpoints `axp.os` |
|
||
| **Connectivity check** | AXP-class | Sin branding AXP en URLs |
|
||
| **SUPL / XTRA / IZat** | AXP timeouts + switches | Precisión GPS (no extra-cap FR-018) |
|
||
| **Native debug / Yama props** | `apply_009_yama_ptrace` | Inerte sin Yama en kernel |
|
||
| **Disable app** | AXP vs Archive A16 | Restaurar disable clásico |
|
||
|
||
---
|
||
|
||
## 12. Firma, AVB y actualizaciones
|
||
|
||
| Tema | Valor ship |
|
||
|------|------------|
|
||
| **Firma APK/OAT** | `vendor/lineage-priv/keys/releasekey` |
|
||
| **AVB key** | `vendor/sunfish-a16/certs/avb.pem` (SHA256_RSA4096) |
|
||
| **AVB flags** | **0** (runtime unlocked; no “hardened verified boot” Magisk track) |
|
||
| **Zip OTA** | `payload.bin` sideload; **no** OTA servidor AXP |
|
||
| **FR-019** | microG, Phonesky, apps — actualización **sideload** cada ~2–3 meses (stub doc) |
|
||
| **Downgrade** | User builds rechazan SPL vendor < `2023-09-05` |
|
||
|
||
**Flash LAB recomendado:** recovery → factory reset → **sideload zip completo**.
|
||
**Evitar:** `fastboot -w`; mezclar `vbmeta`/`boot` de otro build; flashear solo `boot-make-out.img`.
|
||
|
||
---
|
||
|
||
## 13. Inspiración GrapheneOS (qué sí / qué no)
|
||
|
||
| GrapheneOS / AH | En AXPR |
|
||
|-----------------|---------|
|
||
| Parches **kernel** hardening (alloc, fortify, slab, sanitize, …) | **Sí** — vía AXP `kernel_patches` + Stage1 |
|
||
| **hardened_malloc** | **Sí** (`012`) |
|
||
| Árbol kernel A13 Graphene sunfish | **No** — base es LOS `msm-4.14` |
|
||
| Lockdown ubicación Graphene | **No** (FR-018) |
|
||
| Auditoría attestation bancaria tipo Graphene | **No** como gate; banking deferred |
|
||
| WebView Vanadium por defecto | **No** — WebView LOS + elección usuario |
|
||
|
||
---
|
||
|
||
## 14. Verificación y hitos en LAB
|
||
|
||
| Hito | Fecha / evidencia |
|
||
|------|-------------------|
|
||
| Vanilla LOS boot | `003` — 2026-09-14 |
|
||
| Stage1 kernel bacon | `20260918T180359Z-axp-kh-stage1` |
|
||
| CVE bacon | `20260918T215034Z-axp-kh-cve` |
|
||
| **Closure baseline** wave 3 | `20261009T145241Z` — Swissquote Island **PASS** |
|
||
| **Final ship** wave4 + malloc | `20261009T172104Z`, `bacon009final` |
|
||
| **OTA rebacon** pin `20261008` | `20261011T092526Z` — `bacon009ota-r13`, `bacon_exit=0` |
|
||
|
||
**Matrices:** `docs/009-capability-matrix.md`, `docs/009-closure-parity-20261009.md`, `docs/axp-pro-parity.md`.
|
||
|
||
---
|
||
|
||
## 15. Build de referencia actual (oct 2026)
|
||
|
||
| Campo | Valor |
|
||
|-------|--------|
|
||
| **Directorio** | `/srv/rom/artifacts/009-axp-los23-port/20261011T092526Z-axp-stage1-combo4-cve-hi-releasekeys` |
|
||
| **Zip** | `AXP-Resurection-Pro-23.2-20261008-sunfish.zip` |
|
||
| **SHA256 zip** | `91d7adf5435c4e7279123bca4ce72793754384bb341cfbb61522f3411eea2847` |
|
||
| **boot.img (ship)** | `9e6ec52543445b10279b681f69c055fb240f6910616f569914fe598d77ef7d4f` |
|
||
| **README artefacto** | Stage1+combo4+FORTIFY+CVE+hi1-3+US-S4+US-S5-1+wave1-4+malloc+releasekeys |
|
||
| **Script bacon** | `scripts/009-bacon-axp-stage1-combo4-cve-hi-releasekeys.sh` |
|
||
|
||
---
|
||
|
||
## 16. Abierto / no objetivo
|
||
|
||
**Abierto:** rebase LOS periódico (`009-upstream-rebase-ota.md`), **Yuh** en Island, FR-019 sideload playbook, llamada **SIM física** gate radio, postflight OTA boot hash = ship boot, animación AXP completa en payload.
|
||
|
||
**No objetivo / wont:** KernelSU en ship, NeoLauncher, Aosmium WebView, OTA/repositorios AXP externos, backup ROM integrado, bootloader relock, flash GOLDEN, mezclar track `007` en bacon Magisk.
|
||
|
||
**Paralelo:** `007` KernelSU/SusFS — `docs/007-parallel-on-009.md`.
|
||
|
||
---
|
||
|
||
## 17. Apéndice: scripts de integración
|
||
|
||
Bacon entry (host): `scripts/009-rebuild-from-los.sh` → rsync `vendor/sunfish-a16` → `009-bacon-axp-stage1-combo4-cve-hi-releasekeys.sh`.
|
||
|
||
Wrappers OTA: `009-bacon-hardened-malloc.sh`, `009-bacon-wave4-deblob.sh`.
|
||
|
||
Kernel: `vendor/sunfish-a16/patches/009-kernel-hardening/apply_stage1.sh`, `apply-cve-strict.sh`, listas `cve-clean-offset.list`, `cve-high-offset-batch*.list`.
|
||
|
||
Checklist pre-bacon: `docs/009-ota-rebuild-checklist.md`.
|
||
|
||
---
|
||
|
||
## 18. Apéndice: lecciones LAB (Magisk / flash)
|
||
|
||
1. **Sideload completo** tras wipe es el camino principal; no depender de reflashear solo `boot` salvo recovery rota.
|
||
2. **`boot.img` del artefacto** = Magisk; **`boot-make-out.img`** = stock.
|
||
3. Tras preroot: **download/install** del manager; **no** insistir en Additional setup que re-parchea boot ni **Install inactive slot** (conflicto slots / UI Ramdisk).
|
||
4. **Ramdisk: No** en la app **no** implica ROM sin Magisk si `magiskd` y **30.7** están activos.
|
||
5. Flash manual **boot+vbmeta+dtbo** debe ser **juego completo del mismo artefacto**; si no, riesgo de **fastboot loop**.
|
||
6. **No** bajar vendor SPL bajo **2023-09-05** en upgrades (`init_user0_failed` / rollback Keymaster).
|
||
|
||
---
|
||
|
||
*Fin del documento. Para el día a día del equipo: `docs/README.md` → `009-handoff-20261008.md`.*
|