
Rootez votre Galaxy en exploitant CVE-2026-43499
中文 : README_ZH.md
Il s'agit d'un dépôt distinct car cette route nécessite la permission shell Android, obtenue via adb shell ou Shizuku. Le projet original YuKongA/ghostlock-app n'utilise pas la permission shell et suit une route d'exécution différente ; ses prérequis et son chemin de code ne doivent pas être considérés comme interchangeables avec ce projet.
| Appareil | Noyau |
|---|---|
| Samsung Galaxy Z Fold6 (SM-F9560 / q6q) | 6.1.145-android14-11-3254009-abF9560ZCS4DZG3 |
Au démarrage, le noyau est mis en correspondance avec la table d'offsets via uname -r ; les noyaux non pris en charge sont rejetés immédiatement.
Pour le chemin APK, démarrez Shizuku via le débogage sans fil, accordez la permission GhostLock, puis appuyez sur Run. Shizuku lance la charge utile en tant qu'utilisateur shell Android ; l'APK lui-même n'est pas le contexte d'exécution de l'exploit.
Le chemin direct en ligne de commande exécute la même charge utile shell vérifiée sans nécessiter 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
Le helper est requis par les étapes UMH root et KernelSU late-load.
Sur certains noyaux Samsung/Exynos 6.1, un module KernelSU générique peut déclencher une panique EL2 pendant ksud late-load car le module tente un patch de texte à chaud. Pour les cibles affectées, compilez un module pour la version de firmware exacte et activez l'option no-patch-text de l'arborescence cible :
CONFIG_KSU_SAMSUNG_NO_PATCH_TEXT=y
Associez le kernelsu.ko et le ksud spécifiques à la cible, et faites correspondre le uname -r complet de l'appareil plutôt que seulement le KMI 6.1. Un redémarrage pendant le late-load peut provenir de l'initialisation du module, pas nécessairement du chargeur ksud. Il s'agit d'une précaution spécifique à Samsung/Exynos ; la cible actuelle SM-F9560 est Snapdragon et doit être validée séparément. Voir Root-My-Galaxy-Payloads pour des exemples de compilation spécifiques à la cible.
Sur les appareils Qualcomm, tools/extract_target.py analyse les offsets depuis boot.img et xbl_config.img. Nécessite Python 3 et une source kallsyms (fichier --kallsyms ou --kallsyms-finder). Passer --llvm-objdump (ou avoir llvm-objdump dans le PATH/NDK) désassemble en plus le noyau pour dériver automatiquement pselect_waiter_shift et 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 copie seulement 3 x FDS_BYTES(nfds) de données fd_set utilisateur sur la pile du noyau (qwords 0..14 pour nfds=320). Le waiter futex doit atterrir dans cette zone contrôlable : mot de début du waiter + 11 (champ lock) <= 14, c'est-à-dire que le décalage dérivé (offset du waiter depuis le fd_set en qwords) doit être <= 3, sinon la tâche/le verrou tombe dans la queue mise à zéro par le noyau et la route ne peut pas fonctionner. Le script échoue avec une erreur claire lorsque la disposition est infaisable.
Plus de détails sur la recherche de la charge utile et les artefacts de support sont disponibles dans Root-My-Galaxy-Payloads. Les pull requests sont les bienvenues.
Basé sur les projets suivants, sous licence Apache License 2.0 (voir LICENSE) :