Repository navigation
Releases: wanwuzhishi/ksu-root
Release list
v1.0.3
v1.0.3
修复
失败的运行会在内核里留下坏节点,不重启就再跑必崩。
上一次 PIPE_PREP_FAIL 时 exploit 自己打了 KERNEL_STATE_RESTORE_PASS dirty=0,看起来收干净了。实际上 restore_misc_list 只把 misc_list 的头指回去了,中间那个伪造的 miscdevice 节点没摘下来,它还指向已释放的内存。
不重启就再跑,下一次 misc_open 遍历链表必然踩到。pstore 里留下的是:
pc : [0xffffffdd63bdf810] misc_open+0x4c/0x180
x23: ffffffdd6589f178
那个 x23 正是上一轮日志里打印过的 MISC_LIST_RESTORE_SCAN head=0xffffffdd6589f178。
现在跑之前会检查上次是不是失败退出且还没重启过,是的话直接拒绝并提示重启,不再让用户白跑一趟(白跑的结果是 panic)。
顺带修
- 「负载 0.0 · 偏高」的矛盾显示:刚开机和负载高拆成两种文案
一句提醒
干净失败留下的脏东西比 panic 还阴——它不立即崩,等下一次才开始咬人。
v1.0.2
v1.0.2
新增
- 状态卡片显示系统负载:第 5 行显示当前
load average。load1 > 8或开机不满 5 分钟时提示「偏高,建议等系统闲下来再开」 - 关于页补一条限制:系统负载高时失败率更高
文档
- README 新增「成功率跟系统负载强相关」:panic 栈样例、判据表、四条降低失败率的做法
- AI-GUIDE 新增 3.2 节:要求 AI 在跑之前先查
load和uptime,load1 > 8或uptime < 300就别跑
修复
- 同一笔「上次运行被打断」的记录被
onResume反复打印,加去重
为什么加这个
实测这台机器(OS4.0.0.14)刚开机 load average 能到 20–35(8 核,2.5–4 倍超载)。这个状态下 stage0 的线程竞争窗口会被调度抖动打偏,rb_erase 拿一棵对不上的红黑树去改内存,直接 panic。
之前只在日志里提示,而要跑到 [1/5] 之后才出现——等于没加。现在挪到状态卡片,打开 App 就能看到。
v1.0.1
更新内容
新增
- 兼容多个第三方 Shizuku 实现:官方、Shevery、Shizuku-Next、yangFenTuoZi/Shizuku、ShizukuPlus 的 dropin 版
- 状态行新增「版本不兼容」:装了 Nightzuku 或 ShizukuPlus 独立版时直接提示(这两个改了权限名,官方 API 库请求不到授权)
- 进度条:按
[N/5]阶段推进,[4/5]那段按 attempt 在 60→90 继续走 - 关于页增加「支持的 Shizuku 实现」一段,版本号改读 BuildConfig
修复
writeViaStdin误报写入失败:原来靠ShizukuRemoteProcess.waitFor()的返回值判断,实测不可信(文件完整落盘仍返回 false),导致明明写成功却重试 3 次后中止。改成轮询文件大小- 空闲状态误显示 60% 进度
- 关于页版本号写死
构建 / CI
- GitHub Actions 全部升到 node24:
checkout@v5、setup-java@v5、upload-artifact@v6、setup-android@v4、setup-gradle@v5 runs-on钉到ubuntu-24.04- 修
gradlew缺可执行位、setup-android@v3装不存在包的问题
安装
adb install -r ksu-root-v1.0.1-debug.apk注意
仅支持 REDMI K90 Max(prague / OS4.0.0.14.XAACNXM / 6.12.69-android16)。其他机型不要尝试——内核地址和结构体偏移都是在这一版内核上量出来的。
临时 root,重启即失效。约 40% 概率在 exploit 阶段触发内核 panic 并重启,这是利用链本身的代价。
v1.0.0
首个可用版本。已在 REDMI K90 Max / OS4.0.0.14 真机上两次实测拿到 su。
- 一键开临时 root(重启即失效)
- 断点续跑、日志导出/复制、高风险二次确认、关于页
- 自写 ptyrun 替代 busybox;ksud 运行期从已装 KernelSU 管理器抽取
安装前请先读 README 的「前置条件」和「已知限制」。