Skip to content
This repository was archived by the owner on Oct 3, 2026. It is now read-only.

KSuRoot 3.2.0 —— 39 份厂商载荷 + 硬闸门 + 移交 root + 安全补丁提示

Choose a tag to compare

@hmascs hmascs released this 24 Sep 04:33

⚠️ 温馨提示:蓝厂机型调度策略较为严格,提权时子进程易被系统回收。请先在「开发者选项」中开启「停止限制子进程」后再执行提权,成功率更高。

真实内核提权工具,请只在自有且愿意承担风险的设备上使用,动手前先备份数据。
覆盖安装即可(同签名),versionCode 320。


本版是两条开发线的合并版

3.2.0 = 「厂商载荷目录线」+「闸门/移交 root 线」双向合并后的第一个版本。
两条线此前都叫 3.1.1 但内容不同,因此合并版换了版本号以便区分。

一、新增:39 份厂商载荷内置 + 分级匹配

随包内置 39 份逐机型编译的载荷(libksu_*.so,小米 6 / vivo·iQOO 33):

  • 覆盖 6.6.30 / 6.6.57 / 6.6.89 / 6.6.127
  • 三级匹配:Exact(机型+内核+commit 全中)/ SameKernel(厂商小版本 OTA)/ SimilarDevice(同厂商同内核,仅建议、绝不自动选中)
  • 6.6.89 的三款(iQOO Neo10 Pro+ / iQOO 13 / Neo11)显式指向随包 libbs.so

二、新增:Android 安全补丁提示

  • 设备卡新增「Android 安全补丁」一行(原「系统 ABI」行位置)
  • 2026-06:黄色感叹号 —— 可能已合并幽灵锁修复,只提示、不限制、不冷却
  • 2026-07 及以后:红色感叹号 + 提权按钮上方常驻红字 + 弹窗确认键 10 秒冷却
  • 判据只有月份、没有官方补丁映射表,所以两级都只提示、不阻断

三、机型识别优化

厂商把「这台机器叫什么」放在哪个字段完全不统一,本版做了两件事:

  • 多源取市场名:17 个属性按可信度排序(ro.product.marketname 系列 → 厂商自定义)+ Settings.Global.device_name 兜底
  • 匹配改用全身份串:haystack 从「只有 Build.MODEL」改为 manufacturer+brand+model+device+product+board+市场名;
    vivo/iQOO 的 Build.MODEL 是型号代码(V2463A)而目录登记的是市场名(iqoo 13),原实现必然匹配不上
  • 取不到市场名时界面如实标注「(型号代码)」,不拿代号冒充名字

四、新增:移交 root

  • 每次打开、检测到 root 即弹框询问是否移交给 Root 管理器
  • 管理器二选一:KernelSU(me.weishu.kernelsu)/ SukiSU Ultra(com.sukisu.ultra)
  • root 探测含 /apex/com.android.virt/bin/su(载荷提权后的落点,置首位)
  • 载荷跑完自动重探;失败可展开逐条诊断并重试

五、新增:5.x 内核支持(beta)开关

设置 → 内核支持,默认关。关着时识别到 5.x 不采用五系方案并拦住引导开启。

内核支持口径:主线 6.6 / 6.12(两个方案都覆盖);5.x 测试;6.1 拒绝
(6.1 的 rt_mutex_waiter 是 flat 形态 88 字节,与 6.6/6.12 的 nested 112 字节不是一套)。

六、本版删除

  • 主页「工作原理」卡片
  • 日志翻译引擎整套(ExploitLogDigest 及其 13 个用例)—— 提权页现在只显示原始日志,
    不再有「原文/译文」切换;进度条由 16 级里程碑退回阶段制
  • 设置里的「日志详细显示」开关

七、本版修掉的 bug

  1. matchesModel 大小写 bug:MODEL_SEPARATOR 字符类只认小写,而 displayName 是 "iQOO 13",
    导致新增的 displayName 匹配静默失效(一条都命中不了且不报错)
  2. ro.vivo.product.model 实测是代号(PD2463)却被列为市场名候选 → 界面会把代号当设备名显示。已移出 + 加 looksLikeCode() 兜底
  3. su 候选路径缺 /product/bin/su 与 /apex/com.android.virt/bin/su → 真机上「有 root 却显示未检测到 root」
  4. 裸名 "su" 被当成"一定存在",报错理由掩盖真因
  5. Operation not permitted(late-load 最常见失败)被判成成功
  6. 提权页日志滚动只盯译文 → 切到原文后不再跟随
  7. 合并时 MainActivity 多出一个 } 导致整份文件塌掉;A 线删除的 DialogDimAmount 等被 git 干净应用而消失

八、签名

AOSP testkey(CN=Android,SHA-256 a40da80a…),与设备当前安装一致,可覆盖安装。

⚠️ testkey 是公开密钥,只保证兼容性、不提供身份保证。适合自用 / 内测。


验证情况

  • 单测 168 个(1 个环境门控跳过),debug + release 两变体均编译通过
  • 真机:pm install -r 通过,启动无崩溃
  • 源码:本 Release 对应分支 merge-3.2.0

已知局限(如实说明)

  • 6.12 声明支持但会明确报缺:代码路径已铺好(两个方案 × 两个主线系列),但没有 6.12 的偏移数据。补数据需要为该内核编译的载荷 .so,或用真实 6.12 boot.img 实测 —— 本版不会拿 6.6 的数值去凑
  • 移交 root 的完整流程未在真机点过,只验证到命令行层;且 late-load 成功信号很弱(成功 = 空输出 + rc 0),界面只报「已执行移交」并原样展示输出
  • 红色补丁档未在真机验证(本机补丁为 2026-06,走黄色分支)
  • 本机 vivo 属性里没有市场名(marketname/marketing_name 全空),因此设备卡仍显示型号代码并标注。要真正解决需一张「型号代码 → 市场名」映射表