kernelsu 中文文档 下载 App

模块 WebUI 与配置系统开发——webroot、JS API 与持久化键值

WebUI:用网页给模块做界面

KernelSU 模块支持显示 UI 并与用户交互:任何 Web 技术(HTML+CSS+JS)写的页面都会被管理器用 WebView 展示。约定很简单——

模块根目录/
├── module.prop
└── webroot/
    └── index.html    # 必须存在,页面入口

安装模块时 KernelSU 自动设置 webroot 的权限与 SELinux context,不要手动改这个目录的权限。CSS、JS 等资源一并放进 webroot。

JavaScript API

KernelSU 发布了 npm 库 kernelsu,让页面获得系统能力。执行 shell 命令示例:

import { exec } from 'kernelsu';

const { errno, stdout } = await exec("getprop ro.product.model");

还能让网页全屏、显示 Toast 等,完整 API 以 npm 上的库文档为准。API 不够用可以到项目 issues 区提建议。

两个实用建议(来自官方文档)

模块配置系统:给 WebUI 存数据

KernelSU 内置键值配置系统,存储在 /data/adb/ksu/module_configs/<模块ID>/,分两类:

脚本里的操作命令:

value=$(ksud module config get my_setting)        # 读
ksud module config set my_setting "some value"     # 写持久
ksud module config set --temp runtime_state "on"   # 写临时
ksud module config list                            # 列全部

限制:键最长 256 字节、值最长 1MB、每模块最多 32 项;键格式与模块 id 相同。

进阶技巧两则

把 action 脚本(module.prop 的 actionIcon 快捷入口)与 WebUI 组合,可以做出「一键执行 + 图形设置」的完整模块交互体验。