
Rootea tu Galaxy usando CVE-2026-43499
中文: README_ZH.md
Este es un repositorio separado porque esta ruta requiere permiso de shell de Android,
obtenido a través de adb shell o Shizuku. El original
YuKongA/ghostlock-app no utiliza
permiso de shell y sigue una ruta de ejecución diferente; sus requisitos
y ruta de código no deben asumirse como intercambiables con este proyecto.
| Dispositivo | Kernel |
|---|---|
| Samsung Galaxy Z Fold6 (SM-F9560 / q6q) | 6.1.145-android14-11-3254009-abF9560ZCS4DZI1 |
| Samsung Galaxy Z Fold6 (SM-F9560 / q6q) | 6.1.145-android14-11-3254009-abF9560ZCS4DZH5 |
| Samsung Galaxy Z Fold6 (SM-F9560 / q6q) | 6.1.145-android14-11-3254009-abF9560ZCS4DZG3 |
Al iniciar, el kernel se compara con la tabla de offsets mediante uname -r; los kernels no compatibles se rechazan de inmediato.
Para la ruta del APK, inicie Shizuku mediante depuración inalámbrica, otorgue permiso a GhostLock y toque Run. Shizuku inicia el payload como el usuario de shell de Android; el APK en sí no es el contexto de ejecución del exploit.
La ruta directa desde la línea de comandos ejecuta el mismo payload de shell verificado sin requerir Shizuku:
make ghostlock helper
adb push ghostlock /data/local/tmp/ghostlock
adb push ghostlock-helper /data/local/tmp/ghostlock-helper
adb push app/src/main/assets/ksud /data/local/tmp/ksud
adb shell chmod 755 /data/local/tmp/ghostlock
adb shell chmod 755 /data/local/tmp/ghostlock-helper
adb shell chmod 755 /data/local/tmp/ksud
adb shell /data/local/tmp/ghostlock
El helper es requerido por el root de UMH y las etapas de carga tardía de KernelSU.
En algunos kernels Samsung/Exynos 6.1, un módulo KernelSU genérico puede provocar un
pánico en EL2 durante ksud late-load porque el módulo intenta aplicar parches en vivo al
texto. Para los objetivos afectados, compile un módulo para la versión exacta del firmware
y habilite la opción no-patch-text del árbol de destino:
CONFIG_KSU_SAMSUNG_NO_PATCH_TEXT=y
Empareja el kernelsu.ko y ksud específicos del objetivo, y haz coincidir el uname -r completo del dispositivo en lugar de solo el KMI 6.1. Un reinicio durante la carga tardía puede provenir de la inicialización del módulo, no necesariamente del cargador ksud. Esta es una precaución específica de Samsung/Exynos; el objetivo actual SM-F9560 es Snapdragon y debe validarse por separado. Consulta
Root-My-Galaxy-Payloads
para ejemplos de compilación específicos del objetivo.
En dispositivos Qualcomm, tools/extract_target.py analiza los offsets de boot.img y xbl_config.img. Requiere Python 3 y una fuente de kallsyms (archivo --kallsyms o --kallsyms-finder). Pasar --llvm-objdump (o tener llvm-objdump en PATH/NDK) además desensambla el kernel para derivar automáticamente pselect_waiter_shift y off_slide_loggers_0_1:
python tools/extract_target.py `
boot.img `
--xbl-config xbl_config.img `
--format c `
--out offsets.h
core_sys_select copia solo 3 x FDS_BYTES(nfds) de datos de fd_set de usuario en la pila del kernel (qwords 0..14 para nfds=320). El waiter del futex debe aterrizar dentro de esa zona controlable: palabra de inicio del waiter + 11 (campo lock) <= 14, es decir, el desplazamiento derivado (offset del waiter desde el fd_set en qwords) debe ser <= 3, o la tarea/lock caerán en la cola puesta a cero por el kernel y la ruta no podrá funcionar. El script falla con un error claro cuando el diseño no es viable.
Más detalles sobre la investigación del payload y los artefactos de apoyo están disponibles en Root-My-Galaxy-Payloads. Las pull requests son bienvenidas.
Basado en los siguientes proyectos, con licencia Apache License 2.0 (ver LICENSE):