模块运行日志——快速定位模块问题的神器
为什么看模块日志
模块在后台运行,出了问题如果只看 APP 层面的表现往往不够——闪退、卡顿、功能失效,这些表面症状背后可能是模块脚本错误、依赖缺失、文件权限问题。日志能直接告诉你模块在做什么、在哪里失败了。
日志页面入口
在 KsuWebUI 侧栏找到「日志」或「Log」分组。这里的日志和 Android 系统日志(logcat)不同——模块日志是 root 框架专门记录的模块运行输出。
日志分类
典型的日志分类:
| 日志类型 | 内容 |
|---|---|
| 安装日志 | 模块安装脚本的输出 |
| 启动日志 | 开机时模块执行的脚本输出 |
| 运行日志 | 模块 service.sh 的持续输出 |
| 错误日志 | 框架捕获到的模块异常 |
从日志中读取有用信息
好的模块日志应该包含:
- 模块执行到了哪一步
- 每步的结果(成功 / 失败)
- 错误时的具体原因
典型的错误日志解读:
[ERROR] dependency LSPosed not found
→ 模块依赖 LSPosed 但 LSPosed 没装,先装 LSPosed。
[ERROR] mkdir failed: permission denied
→ 模块尝试创建目录但权限不够,检查模块安装是否完整。
[WARN] module.prop missing version
→ 模块包缺少必要的元信息,版本可能无法正确显示。
KsuWebUI 日志页面的功能
- 实时刷新:日志会自动滚动更新
- 搜索过滤:输入关键词过滤特定内容
- 级别筛选:只看 ERROR / WARN / INFO
- 导出日志:可以把日志导出到文件分享给开发者
- 清空日志:清空当前日志缓存
和 logcat 的区别
- 模块日志:root 框架级别,专注模块脚本输出
- Android logcat:系统级别,包含所有进程的日志输出
排查模块问题时优先看模块日志,不够再去 logcat 里 grep 模块相关关键词。
日志没输出怎么办
如果某个模块的日志是空的:
- 模块可能没有写日志的逻辑(部分老旧模块不输出日志)
- 模块可能在启动阶段就挂了,还没来得及输出
- 框架可能没有启用模块日志记录功能
这种情况下只能靠通用 logcat 或手动跑模块脚本来排查。