Repository navigation
KSuRoot 3.0.1 —— 修掉「内置动态库」的真正卡点
KSuRoot 3.0.1
修掉「内置动态库不可用」的真正卡点 —— 一行多余的
chmod。
覆盖安装即可(同签名),versionCode 301。
⚠️ 真实内核提权工具,请只在自有且愿意承担风险的设备上使用,动手前先备份数据。
问题是什么
2.2.0 起,只要选择「内置动态库(libbs.so)」并点安装,安装链就会在刚打印完下面这行之后立刻断掉:
[+] 支持配置: fixed-bn-so
使用内置动态库:libbs.so
[-] chmod failed: EACCES (Permission denied)
[*] 安装失败
chmod failed: EACCES (Permission denied) 是 Android Os.chmod() 抛出的 ErrnoException 原文,来自 PayloadRepository.bundledPayloads() 里的一行:
Os.chmod(exploit.absolutePath, 0b100100100) // 0444为什么它会失败
内置载荷住在 applicationInfo.nativeLibraryDir。这个目录里的文件是安装器以 system 身份提取的:
/data/app/~~…/com.ting.root-…/lib/arm64/
-rwxr-xr-x system system 162328 libbs.so
-rwxr-xr-x system system 26024 libcve43499root.so
属主是 system,不是应用自己 —— 非属主执行 chmod,内核直接回 EACCES。而它本来就是 r-xr-xr-x:那次 chmod 纯属多余(载荷只被 LD_PRELOAD 映射,不需要额外权限),却因为没有兜异常把整条安装链打断了。
「自定义动态库」一直没这个问题,是因为那份文件由应用自己写进私有目录、属主是应用自己。
3.0.1 怎么修
新增 PayloadStaging,四个载荷入口(内置 / 自定义 / 下载 / KernelSU)与执行助手统一走它:
1. 已经够用(可读 / 可执行)→ 原样返回,一次 chmod 都不做 ← 本机走的就是这条
2. 不够用 → 先试就地 chmod(有些 ROM/分区允许)
3. 还不满足 → 复制到应用私有目录(一定能写)再补权限,并按「同名同长度」缓存复用
4. 全失败 → 返回原文件,交给调用方已有的 require 兜底
因为原生库本来就 -rwxr-xr-x、对应用世界可读,第一步的 canRead() 即为真 → chmod 那行再也不会被执行 → EACCES 在结构上不可能再出现。
顺带把另外两层也一起说清楚
「内置动态库不可用」其实是三层叠在一起,前两层是隐患,第三层才是卡住安装的那一步。三层现在都已处理:
| 层 | 问题 | 状态 |
|---|---|---|
| 打包 | AGP 默认 strip jniLibs 里的 .so,libbs.so 162328 → 142848 字节,跑起来的其实是被二次加工过的二进制 |
已用 keepDebugSymbols 保住原件 |
| 版本 | 内置的是上游 v1.3.0 | 已固定为 v1.0.0(162328 字节,sha256 87bf839f…b861),慢但稳 |
| chmod | 原生库属主是 system → Os.chmod EACCES → 安装链中断(真凶) |
3.0.1 修复 |
上一版(3.0)的发布说明把「内置动态库已修复」写在了前两层上,那是不完整的 —— 特此更正。
你可以自己核对
装完之后从 /data/app 把 base.apk 抠出来:
unzip -p base.apk lib/arm64-v8a/libbs.so | sha256sum
# 87bf839fc8524ed25831a22166ebc6cef898e7ddc77ce77736add5ca49b78b61其它(与 3.0 相同)
- 载荷构建页:boot.img → kallsyms → 偏移 → 打补丁的动态库;点构建先选方案(通用 / vivo·iQOO vr.ko 绕过);产物自动进
Download/与「自定义动态库」 - 免 ADB:内核 6.6 及以上(6.6 / 6.12 已验证,6.7~6.11 同理);低于 6.6 才需要 Shizuku(ADB),设备信息里新增内核版本行与判定
- 运行记录只记过程不判成败;日志支持一键复制与保存到指定目录
- 液态玻璃悬浮底栏、MIUIX 卡片分组、版本号 3.0.1
Apache-2.0 · 仅供安全研究与学习,请仅在自有且受控的设备上使用。