APatch 中文文档 下载 App

模块 WebUI — 在管理器内的浏览器页面做配置

什么是模块 WebUI

很多功能丰富的模块需要让用户做配置开关、填参数、看日志——这些功能如果全部用脚本命令行实现,用户体验会很差。KernelSU 引入的 WebUI 机制解决了这个问题:模块自带一套简易的 HTML/CSS/JS 页面,嵌入到管理器里显示,用户在 APatch 管理器里点模块就能打开这个页面做设置。

APatch 在 10568 版本引入了 WebUI 支持,实现方式和 KernelSU 完全一致——为 KernelSU 设计的 WebUI 在 APatch 上直接能用。

模块里的 WebUI 文件

如果你的模块要提供 WebUI,在模块根目录下加一个 webroot/ 目录:

module/
├── module.prop
├── webroot/
│   ├── index.html       # WebUI 主页(必须)
│   ├── style.css
│   ├── script.js
│   └── assets/           # 可选的图片等资源
└── service.d/
    └── webui-bridge.sh   # 可选,和内核交互的桥接脚本

index.html 是 WebUI 的入口,用户在管理器里点模块时,管理器会通过内嵌 WebView 加载这个文件。

WebUI 的交互方式

WebUI 和 root 环境之间通信,通常有几种方式:

方式 1:REST API 桥接(最常用)

模块的 service.d 脚本启动一个小型 HTTP 服务器(Python/BusyBox httpd/自实现),WebUI 里用 fetch() 向这个 API 发请求获取状态、执行操作。

方式 2:直接读写文件

简单场景可以让脚本把状态写到 /data/adb/modules/xxx/ 下的文件里,WebUI 通过 API 读取。

方式 3:直接运行命令

WebUI 提交参数 → 桥接脚本收到后执行 root shell 命令 → 把结果返回给 WebUI。

安全注意

WebUI 会在内嵌浏览器里运行 HTML/JS,虽然是本地执行,但:

设计规范

KernelSU 维护了一套 WebUI 设计规范,建议遵循:

更多完整规范见 KernelSU 官方 WebUI 介绍页面。