
SM-F9360 (Galaxy Z Fold4, q4q) root KernelSU при заблокированном загрузчике — временный root через CVE-2026-43499 → обход DEFEX через LD_PRELOAD → kernelsu.ko без LTO на clang-12. Проверено на устройстве 2026-08-12.
CVE-2026-43499 временный root → обход DEFEX через канал LD_PRELOAD → kernelsu.ko без LTO, собранный clang-12 → su + полный функционал KernelSU Manager
Статус: ✅ 2026-08-12 подтверждено на реальном устройстве (прошивка
F9360ZCSAIZF1, ядро5.10.236-android12-9-2755199-abF9360ZCSAIZF1)Этот проект описывает полный воспроизводимый процесс получения KernelSU root на устройстве Samsung с заблокированным Bootloader: не требуется разблокировка BL, не требуется прошивка boot.img, не требуется Odin.
TL;DR (English): This repo documents a fully device-verified jailbreak path for a locked-bootloader Samsung Galaxy Z Fold4 (SM-F9360, SM8450, kernel 5.10.236, firmware F9360ZCSAIZF1): a CVE-2026-43499 (rtmutex UAF, fixed in July-2026 firmware) exploit chain grants temporary kernel-domain root; a custom LD_PRELOAD constructor .so bypasses Samsung's DEFEX execve interceptor to init_module() a KernelSU LKM built with the exact device toolchain (AOSP clang 12.0.5 r416183b) and with LTO disabled — the two factors that make the module loadable and its init executable on this CFI/LTO hardened kernel. Result: su works (uid=0, context=u:r:ksu:s0) and KernelSU Manager v3.2.5 recognizes the kernel. Root is in-memory only: every reboot requires re-running the exploit (~3 min, scripted). All pitfalls and dead ends (fake exports, CRC patching, ksud late-load, LTO function-sections layout) are documented below.
| Пункт | Статус |
|---|---|
Временный root (домен ядра kernel:s0) | ✅ Стабильно достигнут (9 успешных запусков подряд) |
Загрузка модуля KernelSU (init_module) | ✅ kernelsu ... Live (O) |
| Полное выполнение KSU init | ✅ Все 15 контрольных меток зелёные |
Команда su | ✅ uid=0(root) gid=0(root) context=u:r:ksu:s0 |
| KernelSU Manager v3.2.5 | ✅ Определяет версию ядра (проверка supercall пройдена), работает в режиме принудительного SELinux |
| Разблокировка Bootloader | ❌ Не требуется |
| Прошивка/изменение разделов | ❌ Не требуется |
Принципиальное ограничение: BL заблокирован → root существует только в памяти. После каждой перезагрузки необходимо заново запускать exploit + перезагружать модуль (весь процесс ~3 минуты, автоматизирован скриптом). Пользовательский демон ksud развернуть невозможно (DEFEX перехватывает execve, см. §10-4), но su / supercall / Manager обрабатываются напрямую ядерным sucompat и не зависят от ksud.
Внимание: rmmod kernelsu немедленно вызывает panic и перезагрузку устройства (путь восстановления syscall-table на памяти, защищённой RKP) — никогда не выгружайте модуль.
fastboot oem unlock отсутствует; любой постоянный root (magisk/патч ядра) требует прошивки boot.img, а заблокированный BL отвергает любые самоподписанные образы.CONFIG_CFI_CLANG=y + Full LTO. Единственный источник mod->init — слот CFI jump-table __cfi_jt_init_module; косвенный вызов обязан идти через запись в таблице .cfi_jt, иначе проверка CFI вызывает panic.__ksymtab, обычный insmod не может их разрешить (Unknown symbol).IGNORE_MODVERSIONS/IGNORE_VERMAGIC все ведут в тупик try_to_force_load().sarabpal-dev/IonStack-S22U (b0q / S22U, маршрут exp32)..so через LD_PRELOAD — единственный канал выполнения произвольного кода в root-домене.ksud late-load) как раз предназначен для устройств с заблокированным BL: без прошивки boot, прямой init_module во время работы.┌─ Уровень 1: CVE-2026-43499 временный root
│ exploit ionstack-q4q (утечка KASLR → mm reclaim → 32-битный стековый stamp exp32
│ → CFI r/w → pipe physrw → UMH root daemon)
│ → /data/local/tmp/cve-2026-43499-root -c '<cmd>' = канал root-команд в домене kernel:s0
│
├─ Уровень 2: канал загрузки .so через LD_PRELOAD (обход DEFEX)
│ DEFEX перехватывает execve любого нового ELF в домене kernel (Killed); выполнение
│ constructor из LD_PRELOAD освобождено от проверки → ksu-load.so внутри процесса /system/bin/true:
│ читает ko → вручную переразмещает 201 UND-символ через /proc/kallsyms (SHN_ABS + st_value=абсолютный адрес)
│ → патч vermagic (нужен для старых версий) → init_module() → успех
│
└─ Уровень 3: модуль ядра KernelSU (версия без LTO, clang-12)
Полное выполнение init, все 15 меток зелёные → sucompat (allow_shell=1) + supercall доступны
| Пункт | Значение |
|---|---|
| Модель | SM-F9360 (Galaxy Z Fold4, q4q) |
| SoC | SM8450 (Snapdragon 8+ Gen 1) |
| Прошивка | F9360ZCSAIZF1 (сборка ≤ 2026-06, содержит CVE) |
| Ядро | 5.10.236-android12-9-2755199-abF9360ZCSAIZF1 |
| Компилятор устройства | AOSP clang 12.0.5 (r416183b, c935d99d7cf) (подтверждено /proc/version) |
| Точный vermagic | 5.10.236-android12-9-2755199-abF9360ZCSAIZF1 SMP preempt mod_unload modversions aarch64 |
Другая прошивка = другие kallsyms / компоновка / vermagic, требуется повторная адаптация target.h и пересборка. См. §11.