
Rootez votre Galaxy en exploitant CVE-2026-43499
中文 : README_ZH.md
Il s'agit d'un dépôt séparé 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-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 |
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 /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
Le helper est requis par la racine UMH et les étapes de chargement tardif de KernelSU.
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 exacte du firmware
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 uniquement 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 à l'intérieur de 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 task/lock tombent 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 payload 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) :