
Получите root на Galaxy с помощью CVE-2026-43499
中文: README_ZH.md
Это отдельный репозиторий, поскольку данный маршрут требует разрешения оболочки Android,
получаемого через adb shell или Shizuku. Оригинальный
YuKongA/ghostlock-app не использует
разрешение оболочки и следует другому маршруту выполнения; его требования
и путь кода не следует считать взаимозаменяемыми с этим проектом.
| Устройство | Ядро |
|---|---|
| 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 |
При запуске ядро сопоставляется с таблицей смещений через uname -r; неподдерживаемые ядра отклоняются немедленно.
Для пути через APK запустите Shizuku через беспроводную отладку, предоставьте GhostLock разрешение и нажмите Run. Shizuku запускает полезную нагрузку от имени пользователя оболочки Android; сам APK не является контекстом выполнения эксплойта.
Прямой путь из командной строки запускает ту же проверенную полезную нагрузку оболочки без необходимости в 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
Хелпер требуется корневым этапом UMH и этапами поздней загрузки KernelSU.
На некоторых ядрах Samsung/Exynos 6.1 универсальный модуль KernelSU может вызвать
панику EL2 во время ksud late-load, поскольку модуль пытается выполнять
живое патчирование текста. Для затронутых целей соберите модуль для точной
версии прошивки и включите опцию no-patch-text целевого дерева:
CONFIG_KSU_SAMSUNG_NO_PATCH_TEXT=y
Сопоставьте целевые kernelsu.ko и ksud и сопоставьте полный uname -r устройства, а не только KMI 6.1. Перезагрузка во время late-load может быть вызвана инициализацией модуля, а не обязательно загрузчиком ksud. Это мера предосторожности, специфичная для Samsung/Exynos; текущая цель SM-F9560 — Snapdragon, и её необходимо проверять отдельно. См.
Root-My-Galaxy-Payloads
для примеров сборки под конкретные цели.
На устройствах Qualcomm tools/extract_target.py извлекает смещения из boot.img и xbl_config.img. Требуется Python 3 и источник kallsyms (--kallsyms файл или --kallsyms-finder). Передача --llvm-objdump (или наличие llvm-objdump в PATH/NDK) дополнительно дизассемблирует ядро для автоматического вывода pselect_waiter_shift и 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 копирует только 3 x FDS_BYTES(nfds) пользовательских данных fd_set в стек ядра (qwords 0..14 для nfds=320). Ожидающий поток futex должен попасть в эту контролируемую зону: начальное слово ожидающего потока + 11 (поле блокировки) <= 14, т.е. производный сдвиг (смещение ожидающего потока от fd_set в qwords) должен быть <= 3, иначе task/lock попадут в обнулённый ядром хвост, и маршрут не сработает. Скрипт завершается с понятной ошибкой, когда компоновка неосуществима.
Более подробная информация об исследовании полезной нагрузки и вспомогательных артефактах доступна в Root-My-Galaxy-Payloads. Pull requests приветствуются.
Основано на следующих проектах, лицензированных под Apache License 2.0 (см. LICENSE):