AZ TUTORIALS · 接口参考
Thor · API 文档
Thor(雷神)通过本机 HTTP 接口调用,可以用脚本远程完成清理、切换、重命名、查询备份记录等操作。
| 项目 | 值 |
|---|---|
| HTTP 基址 | http://127.0.0.1:8090 |
| 请求方式 | 全部为 GET |
| 指令格式 | /cmd?fun=指令名&参数 |
| Bundle ID | com.superdev.Thor |
| 结果文件 | /var/mobile/ThorResult.txt |
调用前准备
所有指令调用前,都必须先把 Thor 启动到前台:
lua
runApp("com.superdev.Thor")
mSleep(3 * 1000) -- 首次启动需要联网验证授权,建议等 3 秒返回值
所有指令都返回 JSON,核心字段是 status:
| 值 | 含义 |
|---|---|
1 | 成功,操作已完成 |
0 | 失败:参数错误 / 未授权 / 被拒绝 |
2 | 进行中。这是内部状态,脚本一般收不到 |
最近一次指令的 status 也会写入 /var/mobile/ThorResult.txt,可以直接读取。
接口一览
| 功能 | 指令 | 参数 |
|---|---|---|
| 开始清理(一键新机) | newrecord | — |
| 切换到指定备份 | activerecord | record |
| 切换到下一条备份 | nextrecord | — |
| 重命名当前备份 | renamecurrentrecord | name |
| 删除指定备份 | deleterecord | record |
| 启用 / 禁用备份 | disablerecord | record |
| 获取全部备份名称 | getallrecords | — |
| 获取当前备份名称 | getcurrentrecord | — |
接口详情
开始清理
GET http://127.0.0.1:8090/cmd?fun=newrecord生成一套全新的设备身份并执行清理,等同于在 App 主页点「开始清理」。
失败情况:
- 未选择应用
- 设备未授权
- 指令执行超时
切换到指定备份
GET http://127.0.0.1:8090/cmd?fun=activerecord&record=备份记录名称| 参数 | 必填 | 说明 |
|---|---|---|
record | 是 | 备份记录名称,含中文需 URL 编码 |
切换到一条已有的备份记录,还原它保存的设备参数。
切换到下一条备份
GET http://127.0.0.1:8090/cmd?fun=nextrecord自动切到下一条可用备份,跳过已禁用的备份和「原始备份」,适合循环跑号。
失败情况:
- 没有任何备份记录
- 没有可切换的备份(都被禁用,或只剩当前这一条)
重命名当前备份
GET http://127.0.0.1:8090/cmd?fun=renamecurrentrecord&name=新名称| 参数 | 必填 | 说明 |
|---|---|---|
name | 是 | 新名称,不能为空。含中文、空格必须 URL 编码 |
失败情况:
- 名称为空
- 当前没有生效中的备份记录
- 当前是「原始备份」(受保护,不能改名)
删除指定备份
GET http://127.0.0.1:8090/cmd?fun=deleterecord&record=备份记录名称| 参数 | 必填 | 说明 |
|---|---|---|
record | 是 | 备份记录名称 |
不能删除当前正在生效的备份。 删除后不可恢复。
启用 / 禁用备份
GET http://127.0.0.1:8090/cmd?fun=disablerecord&record=备份记录名称| 参数 | 必填 | 说明 |
|---|---|---|
record | 是 | 备份记录名称 |
开关式切换:已启用的会被禁用,已禁用的会被启用。被禁用的备份会被 nextrecord 跳过。不能禁用当前正在生效的备份。
获取全部备份名称
GET http://127.0.0.1:8090/cmd?fun=getallrecords返回示例:
json
{ "status": 1, "records": ["原始备份", "2026-05-05-17-32-10-56", "自定义名称"] }| 字段 | 说明 |
|---|---|
records | 全部备份记录名称,包含「原始备份」 |
获取当前备份名称
GET http://127.0.0.1:8090/cmd?fun=getcurrentrecord返回示例:
json
{ "status": 1, "current": "2026-05-05-17-32-10-56" }| 字段 | 说明 |
|---|---|
current | 当前生效的备份名称;没有生效的备份时为空字符串 |
Lua 示例(触动精灵)
lua
local sz = require("sz")
local http = require("szocket.http")
local BASE = "http://127.0.0.1:8090/cmd?fun="
-- URL 编码(中文名称需要)
function urlEncode(s)
s = string.gsub(s, "([^%w%.%- ])", function(c)
return string.format("%%%02X", string.byte(c))
end)
return string.gsub(s, " ", "+")
end
-- 统一调用:返回解析后的 JSON,失败返回 nil
function Thor(query)
local res, code = http.request(BASE .. query)
if code == 200 then
return sz.json.decode(res)
end
end
-- 启动 Thor(所有指令之前必须执行)
runApp("com.superdev.Thor")
mSleep(3 * 1000)
-- 1. 开始清理(一键新机)
local r = Thor("newrecord")
if r and r.status == 1 then
toast("清理完成", 2)
end
-- 2. 重命名当前备份
Thor("renamecurrentrecord&name=" .. urlEncode("138xxxx吴有财"))
-- 3. 查看当前备份
local cur = Thor("getcurrentrecord")
if cur then toast("当前备份:" .. cur.current, 2) end
-- 4. 切换到指定备份
Thor("activerecord&record=" .. urlEncode("Wechat001"))
-- 5. 循环跑号:依次切换所有可用备份
local all = Thor("getallrecords")
if all then
for i = 1, #all.records do
local r = Thor("nextrecord")
if not r or r.status ~= 1 then break end
-- ……执行业务……
end
end使用教程见 Thor 使用教程。
提示
软件界面和支持范围可能随版本更新。执行清理、重置或删除操作前,请先备份重要数据。
