
Faça root no seu Galaxy usando CVE-2026-43499
中文: README_ZH.md
Este é um repositório separado porque esta rota requer permissão de shell do Android,
obtida através de adb shell ou Shizuku. O original
YuKongA/ghostlock-app não usa
permissão de shell e segue uma rota de execução diferente; seus requisitos
e caminho de código não devem ser assumidos como intercambiáveis com este projeto.
| Dispositivo | Kernel |
|---|---|
| Samsung Galaxy Z Fold6 (SM-F9560 / q6q) | 6.1.145-android14-11-3254009-abF9560ZCS4DZG3 |
Na inicialização, o kernel é comparado com a tabela de offsets via uname -r; kernels não suportados são rejeitados imediatamente.
Para o caminho do APK, inicie o Shizuku através da depuração sem fio, conceda permissão ao GhostLock e toque em Run. O Shizuku inicia o payload como o usuário shell do Android; o APK em si não é o contexto de execução do exploit.
O caminho direto por linha de comando executa o mesmo payload de shell verificado sem exigir o 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
O helper é necessário pelos estágios de root UMH e de late-load do KernelSU.
Em alguns kernels Samsung/Exynos 6.1, um módulo KernelSU genérico pode disparar um
panic no EL2 durante o ksud late-load porque o módulo tenta aplicar patch de texto
em tempo real. Para alvos afetados, compile um módulo para a versão exata de firmware
e habilite a opção no-patch-text da árvore de destino:
CONFIG_KSU_SAMSUNG_NO_PATCH_TEXT=y
Combine o kernelsu.ko e o ksud específicos do alvo, e corresponda ao
uname -r completo do dispositivo em vez de apenas ao KMI 6.1. Um reboot durante o
late-load pode vir da inicialização do módulo, não necessariamente do carregador
ksud. Esta é uma precaução específica para Samsung/Exynos; o alvo atual SM-F9560
é Snapdragon e deve ser validado separadamente. Veja
Root-My-Galaxy-Payloads
para exemplos de compilação específicos de alvo.
Em dispositivos Qualcomm, tools/extract_target.py analisa offsets de boot.img e xbl_config.img. Requer Python 3 e uma fonte de kallsyms (arquivo --kallsyms ou --kallsyms-finder). Passar --llvm-objdump (ou ter llvm-objdump no PATH/NDK) adicionalmente desmonta o kernel para derivar automaticamente pselect_waiter_shift e 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 apenas 3 x FDS_BYTES(nfds) de dados fd_set do usuário para a pilha do kernel (qwords 0..14 para nfds=320). O waiter do futex deve cair dentro dessa zona controlável: palavra inicial do waiter + 11 (campo lock) <= 14, ou seja, o shift derivado (offset do waiter a partir do fd_set em qwords) deve ser <= 3, ou task/lock caem na cauda zerada do kernel e a rota não pode funcionar. O script falha com um erro claro quando o layout é inviável.
Mais detalhes sobre a pesquisa do payload e artefatos de suporte estão disponíveis em Root-My-Galaxy-Payloads. Pull requests são bem-vindos.
Baseado nos seguintes projetos, licenciados sob Apache License 2.0 (veja LICENSE):