
GhostLock (CVE-2026-43499) — приложение для серии Galaxy S26
indev.ghostlock.s26)Обёртка для Android в один клик для polygraphene/ghostlock-s26: GhostLock (CVE-2026-43499), портированный на всю серию Samsung Galaxy S26 (Android 16 / GKI 6.12). Один APK, три линейки ядер, сопоставление параметров во время выполнения — без вариантов приложения под каждую сборку.
Используйте только на устройствах, которыми вы владеете или которые вам явно разрешено тестировать. Временный root исчезает при перезагрузке. Повторный запуск эксплойта в той же загрузке может привести к сбою устройства — перезагрузитесь перед повторной попыткой.
Отказ от ответственности: эксперименты с этим программным обеспечением связаны с эксплойтами низкого уровня ядра, root-доступом и заявками на этапе загрузки. Оно предоставляется КАК ЕСТЬ, без каких-либо гарантий. Вы используете его полностью на свой страх и риск; автор не несёт ответственности за «окирпиченные», зацикленные при загрузке или иным образом повреждённые устройства, а также за любую потерю данных, аннулирование гарантий или ущерб, возникший в результате его использования.
Эксплойт сопоставляет по линейке ядра, а не по отдельной сборке
(exploit/src/params_table.c является источником истины; ParamsTable.kt повторяет его
только для вердикта в UI):
| Кодовое имя устройства | Маркетинговое название | SoC | Линейка ядра |
|---|---|---|---|
| m1q | Galaxy S26 (SM-S942x) | Snapdragon | cn или intl (по CSC) |
| m2q | Galaxy S26+ (SM-S947x) | Snapdragon | cn или intl (по CSC) |
| m3q | Galaxy S26 Ultra (SM-S948x) | Snapdragon | cn или intl (по CSC) |
| m1s | Galaxy S26 (SM-S942B) | Exynos | exynos |
| m2s | Galaxy S26+ (SM-S947B) | Exynos | exynos |
Протестированные сборки (17): S9420ZCS4AZG1, S9470ZCS4AZG1, S9480ZCS3AZF1, S9480ZCS4AZG1, S942BXXS4AZG5, S947BXXS3AZF1, S947BXXS4AZG5, S942QOPU1AZDE, S942U1UES4AZG3, S942USQS4AZG3, S947USQS4AZG3, S9480ZHS4AZG1, S948BXXS4AZG5/6, S948NKSS4AZG3, S948U1UES2AZE1, S948USQS4AZG3.
Для неизвестных OTA используется тот же откат, что и в upstream params.c: сначала точная сборка,
затем та же модель + 3-символьный CSC (переиспользование OTA), затем последняя запись для того же устройства
(помечается как непроверенная), иначе — fail-closed (приложение показывает UNSUPPORTED, а
нативный слой завершается с кодом 2). Полностью неизвестные модели отклоняются — никогда не принудительно.
Одна большая кнопка — Root my S26 — запускает весь конвейер и ведёт повествование в карточке Output:
adb shell из README). Разрешение запрашивается
один раз при запуске (и снова, если сервер перезапускается); поток Root ждёт
предоставления разрешения, а не прерывается. Если сервер не запущен, приложение открывает
менеджер Shizuku, чтобы вы могли его запустить, а затем переходит к встроенной оболочке.
Добавление приложения в белый список Shizuku полностью убирает запрос.preload.so, su_daemon, ksud в /data/local/tmp
(preload.so, cve-2026-43499-root, ksud) и выполняет для них chmod. Если вы
уже выполнили adb push файлов согласно upstream README, они подхватываются
на месте.env LD_PRELOAD=/data/local/tmp/preload.so sh (конструктор .so запускает
цепочку и вызывает _exit; stdout и есть лог эксплойта), до 5 попыток —
гонка вероятностная. Доступен переключатель BOOT_FORCE=1, но
перезагрузка безопаснее.id сообщает uid=0 через любой канал:
сначала сокет временного демона, затем su в стиле KernelSU. Это важно, потому что при
полном успехе su_daemon удаляет свой сокет и завершается по замыслу
(передача управления KernelSU) — мёртвый временный сокет при работающем su означает
наличие root, а не поломку. Выводит хвост лога заявки на загрузку и сообщает о наличии root /
советы по коду выхода.Ниже: одна строка поле команды + Запуск от root (одноразовые команды
через протокол C демона su; интерактивный PTY выходит за рамки v1),
и небольшая ссылка Сброс, которая очищает /data/local/tmp/ghostlock-boot.log,
чтобы можно было повторить запуск без перезагрузки (разработчики предупреждают, что это может вызвать панику —
перезагрузка — безопасный путь).
exploit/ vendored upstream (Makefile + src/, authoritative)
ksud upstream prebuilt KernelSU loader (ARM64 PIE, also in assets)
app/src/main/assets/ksud staged copy shipped in the APK
app/src/main/assets/ + preload.so / su_daemon after stage-assets.sh
app/src/main/cpp/ optional CMake rebuild of preload.so from exploit/src
app/src/main/java/indev/ghostlock/s26/
MainActivity.kt UI (device / stage / run / shell / boot guard)
ParamsTable.kt series table mirror (17 builds, 3 lines, 5 codenames)
DeviceCompat.kt Build.* identity + series verdict
ShellRunner.kt Shizuku (uid 2000) + local fallback, staging
SuClient.kt /data/local/tmp/temp_su.sock 'C'-mode client
GhostlockManager.kt exit-code interpreter (0/1/2/3/4)
PORTING.upstream.md porting notes (new firmware = new device_map row)
Требования: Android Studio (JBR 21) / SDK 35 / NDK r26+ / CMake 3.22.1 / JDK 17.
# 1. Build the native payloads with the NDK (upstream flow):
cd exploit && make preload
# -> build/bin/preload.so, build/embed/su_daemon_aarch64_pie
# 2. Stage them into the APK assets:
./stage-assets.sh
# 3. Build the app:
./gradlew :app:assembleDebug
# -> app/build/outputs/apk/debug/app-debug.apk
ksud уже вендорен (ksud + app/src/main/assets/ksud), поэтому шаги 1–2
дают только два выхода NDK. Цель CMake в
app/src/main/cpp/CMakeLists.txt дополнительно может пересобрать libpreload.so
из тех же исходников внутри APK в качестве запасного варианта.
Рабочий процесс .github/workflows/build.yml
собирает приложение с адаптацией под кодовое имя целевого устройства / тип процессора — локально
SDK, NDK или Docker не нужны. Сделайте форк репозитория, затем во вкладке Actions репозитория →
GhostLock-S26 Device Build → Run workflow, затем задайте: