
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-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 de la APK, inicie Shizuku mediante depuración inalámbrica, otorgue permiso a GhostLock y toque Run. Shizuku inicia el payload como el usuario shell de Android; la APK en sí no es el contexto de ejecución del exploit.
La ruta directa por 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-zfold6-F9560ZCS4DZG3-samsung-main-no-patch-text-kdp /data/local/tmp/ksud-zfold6-F9560ZCS4DZG3-samsung-main-no-patch-text-kdp
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-zfold6-F9560ZCS4DZG3-samsung-main-no-patch-text-kdp
adb shell /data/local/tmp/ghostlock
El helper es requerido por las etapas de root UMH y de carga tardía de KernelSU.
En algunos kernels Samsung/Exynos 6.1, un módulo KernelSU genérico puede provocar un
pánico EL2 durante ksud late-load porque el módulo intenta parchear texto en vivo.
Para los objetivos afectados, compile un módulo para la versión de firmware exacta
y habilite la opción no-patch-text del árbol de destino:
CONFIG_KSU_SAMSUNG_NO_PATCH_TEXT=y
Empareje el kernelsu.ko y ksud específicos del objetivo, y haga coincidir el
uname -r completo del dispositivo en lugar de solo el KMI 6.1. Un reinicio durante
late-load 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. Consulte
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 fd_set de usuario en la pila del kernel (qwords 0..14 para nfds=320). El waiter de futex debe caer 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 soporte 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):