jshook 中文文档 下载 App

内核驱动加载与 SELinux——.ko 版本匹配 + setenforce 0

.ko 是什么

.ko 是 Linux 内核模块(Kernel Object)文件。JsHook 激活时,会自动检测当前设备的内核版本:

adb shell uname -r
# 输出类似 4.19.157-perf+

然后释放版本号匹配的 .ko 文件到 /data/adb/jshook/.kernel/,再加载进内核。

自动匹配的过程

激活流程里这一步是自动的,正常情况下你不需要手动介入:

  1. JsHook 检测内核版本 → 拿到版本号
  2. 在已部署的内核驱动包里找版本匹配的 .ko
  3. 用 root 权限加载模块(insmod 或 modprobe)
  4. 模块成功加载 → 内核模式可用

版本不匹配怎么办

极少数情况下,JsHook 自带的内核驱动包里没有匹配当前内核版本的 .ko,导致加载失败:

解决办法:

  1. 先确认是不是内核太特殊(某些定制 ROM、虚拟机)
  2. 尝试把内核驱动模式关掉,只用普通 fridamod 注入
  3. 去 JsHook 的 Telegram 群或 GitHub Issue 报告你的内核版本号,等作者添加支持

SELinux Enforcing 的影响

Android 默认 SELinux 是 Enforcing 模式。如果内核驱动加载被 SELinux 阻止,需要临时切成 Permissive:

adb shell su -c setenforce 0

或者在终端(MT 管理器终端或 Termux)里执行:

su
setenforce 0

怎么确认驱动加载成功

用 dmesg 查看内核日志:

adb shell su -c dmesg | grep jshook

驱动成功加载后应该能看到类似 jshook: driver loaded successfully 的日志行。

内核版本检查命令汇总

# 查内核版本
adb shell uname -r

# 查当前 SELinux 模式
adb shell getenforce

# 查驱动是否加载
adb shell su -c lsmod | grep jshook
# 或者
adb shell su -c cat /proc/modules | grep jshook

# 查内核日志
adb shell su -c dmesg | grep jshook

相关故障

内核驱动相关问题集中在:

详见 内核模式故障排查。