
Este paquete no es un root completo. Cambia SELinux a Permissive y mantiene el reclaim el tiempo suficiente para el trabajo posterior. Aquí no se logra el `uid=0` del host.
Instantánea de investigación de un park de solo SELinux funcional para el Samsung Galaxy S26 Ultra (SM-S948U1, nombre en clave m3q) con el firmware S948U1UES3AZF1 (GKI 6.12.30-android16-5).
Este paquete no es un root completo. Cambia SELinux a Permissive y mantiene el reclaim el tiempo suficiente para el trabajo posterior. Aquí no se consigue uid=0 de host.
Construido a partir de la línea de trabajo de GhostLock / CVE-2026-43499: chasis de preload de Xiaomi popsicle, Samsung Root-My-Galaxy (incluido el target de dispositivo emerald y el retarget a m3q), adaptado aquí para park-only en AZF1. Ver Atribución.
kptr_restrict / misma pila). Esas provocan pánico del kernel y, en este dispositivo, han dejado arranques que solo suben en modo seguro (recuperación clase RescueParty), con riesgo de restablecimiento de fábrica si sigues desbloqueando / recuperando de forma incorrecta.bin/preload-4-s1.so precompilado es específico de AZF1. Otros firmwares necesitan un target.h regenerado.sched_blocked_reason caller → base de la imagen).rt_mutex (VA de mapeo lineal).selinux_state.enforcing (enforce 1→0).WAIT_REQUEUE_PI para que el park sobreviva más que un KP retrasado de un I4 crudo.LD_PRELOAD (/system/bin/true), con el reclaim retenido; registra S1_READY.Aspecto en caso de éxito:
adb shell getenforce # Permissive
adb shell pidof true # non-empty (parked preload)
El script auxiliar también escribe las VA del mismo arranque en finish_va.txt (KASLR, spray, símbolos DATA estáticos).
GhostLock en este firmware proporciona una escritura arbitraria restringida (NULL y valores de mapeo lineal/spray dentro de .data escribible — no texto/rodata del kernel como valor de STORE) más SELinux Permissive. Aún falta el soft-root:
Una CVE complementaria independiente (especialmente una primitiva de lectura aún presente en el AZF1 de junio) es la ruta actual de alto EV; pulir más golpes W2 solo con GhostLock no lo es.
target.h para tu compilación)adb, python3, Android NDK r29+ (para recompilar)LD_PRELOAD en /system/bin/true# from a Linux/WSL host with the device attached
export SHARE="$PWD" # or path where this repo lives
bash park_cal_one.sh
adb shell getenforce # expect Permissive
park_cal_one.sh usa por defecto SHARE como el directorio de este repositorio. Sobrescríbelo si es necesario:
SHARE=/path/to/this/repo PRELOAD=/path/to/this/repo/bin/preload-4-s1.so bash park_cal_one.sh
Deja el proceso true aparcado en paz. No encadenes segundos golpes experimentales de otros árboles.
powershell -ExecutionPolicy Bypass -File .\build-park.ps1
Establece $ndkBin dentro del script si tu ruta de NDK difiere.
make -C source clean preload
# output: source/build/bin/preload.so (same I4+R1e park flags as preload-4-s1)
cp source/build/bin/preload.so bin/preload-4-s1.so
El target.h por defecto habilita Candidate I4 + R1e + S1 park (AZF1_R1_SECOND_WAIT, AZF1_R1_THEN_S1). No habilites los flags K3/K4/soft second-punch para este paquete.
bin/preload-4-s1.so prebuilt park payload (AZF1)
park_cal_one.sh push + run + VA parse
build-park.ps1 Windows NDK build (park only)
source/ preload sources + AZF1 target.h
generate_target.py optional retarget helper (needs your boot.img)
| Etapa |
|---|
Esta instantánea se apoya en trabajo público y de investigación previo. Crédito a quien corresponde:
Vulnerabilidad: CVE-2026-43499 (GhostLock — escritura residual de herencia de prioridad de rt_mutex).
Este árbol: port AZF1 / m3q (SM-S948U1 / S948U1UES3AZF1) de las fuentes de preload de popsicle con adaptaciones Samsung clase RMG/emerald, recortado a un harness de park de solo SELinux para hardware propiedad de investigadores. No es una fusión de vuelta al target de producto emerald de Root-My-Galaxy.
| Necesidad | Por qué |
|---|
| Info leak / AR | task_struct* del heap o VA de inode de /dev/uhid (la lectura GhostLock shape-0 y varios oráculos están inoperativos en AZF1) |
| Cred / final | Una vez que se conoce task: escribir init_cred (o campos de uid) — Samsung KDP/RKP puede bloquear intercambios de puntero ingenuos; los roots Knox que funcionan normalmente necesitan uid=0 de host y luego KernelSU compatible con KDP (ksud) |
| Escritura post-I4 estable | Los golpes GhostLock adicionales después de I4+R1e son inseguros (entran en KP). No trates “solo STORE de nuevo” como el final |
| Estado |
|---|
SELinux enforce→0 + park (I4+R1e) | Funciona en el dispositivo de laboratorio AZF1 |
| Más golpes GhostLock “W2” | No — KP; puede forzar arranque solo en modo seguro |
uid=0 de host / instalación de KernelSU | No está en este paquete — requiere leak + final compatible con Knox |
| Proyecto | Función en este park |
|---|
| CVE-2026-43499-popsicle (Xiaomi popsicle) | Chasis de exploit GhostLock: harness LD_PRELOAD, reclaim/spray de KernelSnitch, waiter codificado en fdset, núcleo de escritura residual de pselect, diseño de generate_target.py / Makefile |
| Root-My-Galaxy + Root-My-Galaxy-Payloads | Marco de soft-root de Samsung (W1 park / continuación W2), orientación hacia un final compatible con Knox/KDP, material de target m3q / AZF1, y el enfoque KASLR primero con tracefs usado aquí en lugar del slide P0 de boot_id de popsicle |
| emerald (target de dispositivo RMG) | Puerto previo de GhostLock en el linaje de dispositivos emerald que sirvió de base a la geometría Samsung de RMG, la estrategia de slide y el patrón de entrega del park de SELinux W1; este park m3q/AZF1 está en esa línea, no es una reescritura desde cero |