TEESimulator WebUI实战教程:可视化Profile管理、密钥检视与实时日志完整指南
【免费下载链接】TEESimulatorSoftware simulation for Android hardware-backed key pairs with key attestation项目地址: https://gitcode.com/gh_mirrors/te/TEESimulator
TEESimulator是一个 Android 密钥认证(Key Attestation)软件模拟模块,它的核心亮点之一是内置的WebUI:无需文本编辑器、无需重启,就能在手机上完成Profile 可视化配置、keybox 密钥箱检视、存储密钥管理与实时守护进程日志查看。本教程带你 5 分钟上手这套完整的可视化面板。
📱 TEESimulator WebUI 是什么?
TEESimulator 通过在真实 keystore 守护进程内注入一个软件 KeyMint 拦截器,为指定应用提供软件签发的密钥认证,其余密钥仍走真实硬件。当根管理方案支持 WebUI(KernelSU、APatch)时,模块会直接提供一个离线、纯本地的管理面板,所有配置通过 root 专用 socket 与守护进程通信,保存后热生效、无需重启(见 README.md 的 WebUI 章节与 module/ 目录)。
面板由五个底部导航标签组成,入口定义在 index.html:
| 标签 | 功能 | 对应控制器 |
|---|---|---|
| 🗂️ Profiles | Profile 创建、编辑、应用分配 | config-controller.js |
| 🔐 Keyboxes | keybox 导入、重命名、证书链检视 | keybox-controller.js |
| 🔑 Keys | 存储密钥列表、检视、批量删除 | keyadmin-controller.js |
| 💊 System | 运行状态、Harvest 信息、canary 更新 | system-controller.js |
| 📜 Logs | 实时守护进程日志、过滤、保存 | logs-controller.js |
页面顶部有一个健康状态胶囊,实时显示守护进程是running还是unreachable(app.js),一眼判断模块是否正常工作。
🗂️ Profile 可视化管理:从创建到分配应用
Profile 是 TEESimulator 的配置核心:一个命名集合,包含 keybox、运行模式、补丁/OS 版本和设备身份信息(品牌、型号、IMEI 等),并分配给一组应用。
快速创建与编辑 Profile
- 进入Profiles标签,点击Add输入新名称(1–32 位字母、数字、
-或_),校验规则见 schema.js。 - 点击任意 Profile 行进入编辑抽屉,可修改:
- keybox:下拉选择磁盘上已导入的
*.xmlkeybox 文件; - patchLevel / osVersion:支持
today、YYYY-MM-05(当月 5 日)、harvested、system_property等微型语言,留空表示沿用守护进程从真实 TEE 采集的值; - 设备身份:brand、model、serial、IMEI 等字段,留空时自动回退到 Harvest 采集的真实值,编辑器会实时展示"留空将解析为什么"的提示(config-controller.js)。
- keybox:下拉选择磁盘上已导入的
- 保存前会自动校验整个配置(每个应用只能属于一个 Profile),通过后直接热推送到守护进程。
可视化应用分配器(Scope 页面)
点击编辑器中的Configure scope,会打开一个功能强大的应用选择页:
- 搜索 / 过滤:按名称搜索,按"最近使用、用户应用、系统应用、已选中"过滤;
- 智能排序:按键请求频率、最近使用、名称、安装时间四种方式排序,排序说明见 config-controller.js;
- 草稿模型:所有选择只写入草稿,退出时若与已保存配置不一致会询问"保留还是丢弃",防止误触丢失(config-controller.js);
- 安全确认:勾选系统级 uid(如 system_server)前会弹出醒目警告,避免误将特权进程加入模拟范围;
- 批量操作:全选可见项、清空可见项、反选,配合 9 秒自动刷新获取最新应用使用数据;
- 下拉刷新:触发一次
rescan,让守护进程重新解析配置并发现新安装的应用。
🔐 Keyboxes 标签:导入与证书链检视
keybox 是模拟器签发认证所用私钥与证书链的载体,必须同时包含RSA 和 ECDSA(NIST P-256)两组密钥(格式要求见 README.md)。
- Import:底部表单选择文件并命名,文件名默认取原文件 basename;重名时会询问是否覆盖(keybox-controller.js)。
- 检视(Inspect):点击文件名打开只读详情页,由守护进程侧用 BouncyCastle 解析 X.509,把证书链漂亮地格式化展示;下拉刷新可强制重新拉取吊销列表并就地重新校验。
- Rename / Delete:直接重命名或删除 keybox 文件,全程无需文件管理器。
- 若设备定义了 RKP(Remote Key Provision)属性,该面板还会额外显示Remote Key Provision开关区。
🔑 Keys 标签:检视模拟器创建的密钥
在Android 12+上,Keys 标签直接读取 keystore2 的数据库(后端为 KeystoreDb.kt),列出本模块为目标应用铸造的所有密钥:
- 区分 Spoofed 与 Untouched:
spoofedOnly开关默认只显示模拟器生成的密钥,应用自己的真实硬件密钥不会被误伤; - 快速过滤:点击行上的 class / app / purpose 徽章即可切换
class:、app:、purpose:过滤词,精确命中目标密钥(keyadmin-controller.js); - 批量删除:勾选多把密钥后确认删除,删除后应用下次使用时会自动重建密钥并重新认证;
- Android 10/11 没有 keystore2 数据库,该标签会显示相应提示而非空列表。
💊 System 标签:健康状态与 Canary 更新
- 健康卡片:每 5 秒轮询
/status,展示守护进程状态与 Harvest(设备真实认证参数采集)结果——verified boot 状态、补丁级别、OS 版本等根信任信息都冻结自真实 TEE; - Overrides:可对个别字段写入伪造值到
overrides.json,守护进程监听文件变更后自动重新合并推送,留空即恢复默认(system-controller.js); - Canary 更新:探测到新版 canary 构建时,导航栏 System 项会出现角标,确认后即可下载并原地刷入,免重启切换版本。
📜 Logs 标签:实时守护进程日志
Logs 标签是排障利器:
- 准实时轮询:每 1.5 秒增量拉取新行(游标 + 上限 4000 行缓冲),不重复、不堆积,轮询参数见 logs-controller.js;
- 三重过滤:日志级别(V/D/I/W/E)、Tag 多选、消息关键字,过滤面板常驻底部表单;
- 暂停 / 恢复:随时冻结画面便于阅读;
- 一键保存:把当前日志缓冲以
TEESimulator-<版本>-<时间戳>.log命名保存到/sdcard/Download(目录可自定义并记忆),方便提交 issue 时附上日志; - 守护进程不可达时会显示明确的错误横幅而非崩溃。
🛟 常见问题(FAQ)
Q:为什么我的根管理方案里看不到 WebUI?WebUI 仅在 KernelSU 或 APatch 下提供(见 README.md);Magisk 用户可直接编辑/data/adb/teesim/config.json与keybox.xml。
Q:WebUI 显示unreachable怎么办?顶部健康胶囊变灰表示守护进程未运行或 socket 异常,可等待模块自启后重试;仍不行时重启设备,或先恢复 keystore 守护进程:su -c 'kill $(pidof keystore2)'(Android 12+)。
Q:配置保存后不生效?确认 keybox 已就位——未加载 keybox 时拦截器保持空操作,这是设计上的安全兜底而非故障。
Q:改了配置要重启吗?不需要。守护进程监听配置变化并实时重新推送(config.default.json 为默认模板,默认模拟 Google Play 服务与 Play Store)。
📌 核心文件速查:
- WebUI 入口:module/webroot/index.html
- 前端总路由:module/webroot/js/app.js
- 后端守护进程:app/src/main/java/org/matrix/teesim/
- 模块更新日志:module/changelog.md
掌握以上五个标签,你就拥有了 TEESimulator 的完整可视化操作能力:从 Profile 分配、keybox 证书链校验,到存储密钥清理与实时日志排障,全部在手机上点几下即可完成。
【免费下载链接】TEESimulatorSoftware simulation for Android hardware-backed key pairs with key attestation项目地址: https://gitcode.com/gh_mirrors/te/TEESimulator
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考