AZ
十年iOS隐私保护插件服务商
AZ TUTORIALS · 接口参考

361 · API 文档

361 一键新机支持 HTTP 和 OpenURL 两种方式,推荐用 Lua 通过 HTTP 调用。

AZ 教程汇总站内阅读更新于 2026-11-01
项目值
HTTP 基址http://127.0.0.1:361
OpenURL把 http://127.0.0.1:361/ 换成 361://
请求方式GET
指令格式/cmd?fun=指令名&参数
异步状态文件/var/mobile/script_status

OpenURL 写法示例:

lua
-- HTTP
http.request("http://127.0.0.1:361/cmd?fun=newDevice&bid=com.apple.weather")
-- 等价的 OpenURL
openURL("361://cmd?fun=newDevice&bid=com.apple.weather")

返回值

HTTP 响应

接口返回 JSON,用 status 判断是否调用成功,失败原因在 errMsg 中:

json
{"status": 1}
{"status": 0, "errMsg": "失败原因"}

异步状态文件

newDevice、newBackup、restoreBackup 是异步接口,HTTP 返回成功只代表任务已开始。最终结果要看 /var/mobile/script_status:

状态含义
文件不存在尚未结束,继续等待
1成功
0失败
-1无权限

通用参数

参数说明
bid目标 App 的 Bundle ID。newDevice 支持多个,用英文逗号分隔,如 com.xxx.a,cn.yyy.b
index备份行号,从 0 开始

接口一览

功能指令类型
一键新机newDevice异步
生成备份newBackup异步
获取备份列表getBackups同步
重命名备份renameBackup同步
删除备份deleteBackup同步
还原备份restoreBackup异步
获取虚拟设备信息getCurrentVDInfo同步
设置 IDFAsetCurrentVDInfo同步
机器码与授权license同步
自动开关autoBackup · autoAppLaunch · autoIP同步
卸载 AppuninstallApp同步
跳转 AppgoToApp同步

接口详情

一键新机 异步

GET http://127.0.0.1:361/cmd?fun=newDevice&bid=com.xxx.a,cn.yyy.b
参数必填说明
bid是目标 App,多个用逗号分隔

为指定 App 生成新的虚拟设备环境。调用后轮询 script_status。

生成备份 异步

GET http://127.0.0.1:361/cmd?fun=newBackup&bid=com.xxx.a
参数必填说明
bid是目标 App

为当前环境创建一条备份。

获取备份列表

GET http://127.0.0.1:361/cmd?fun=getBackups&bid=com.xxx.a
参数必填说明
bid是目标 App

返回 JSON,包含该 App 的备份列表、每条备份的时间,以及当前关联的备份 ID。返回的顺序即 index 行号。

重命名备份

GET http://127.0.0.1:361/cmd?fun=renameBackup&bid=com.xxx&index=0&name=NewName
参数必填说明
bid是目标 App
name是新名称
index三选一备份行号
indexup三选一相对当前备份的偏移:1 上一条,0 下一条
backname三选一按原备份名定位

删除备份

GET http://127.0.0.1:361/cmd?fun=deleteBackup&bid=com.xxx&index=0
参数必填说明
bid是目标 App
index是备份行号;-1 删除该 App 的全部备份

还原备份 异步

GET http://127.0.0.1:361/cmd?fun=restoreBackup&bid=com.xxx&index=0
参数必填说明
bid是目标 App
index是要还原的备份行号

把 App 环境还原到指定备份。调用后轮询 script_status。

获取虚拟设备信息

GET http://127.0.0.1:361/cmd?fun=getCurrentVDInfo&bid=com.xxx
参数必填说明
bid是目标 App

返回当前虚拟设备参数,包括 IDFA、IDFV、iOS 版本、SSID、IMEI、UDID 等。

设置 IDFA

GET http://127.0.0.1:361/cmd?fun=setCurrentVDInfo&bid=com.xxx&idfa=89B0...EB2
参数必填说明
bid是目标 App
idfa是新的 IDFA 值

机器码与授权

GET http://127.0.0.1:361/cmd?fun=license

返回设备机器码 deviceId 和授权截止时间 endDate。可在脚本启动时检查授权是否过期。

自动开关

GET http://127.0.0.1:361/cmd?fun=autoBackup&open=1
fun 取值说明
autoBackup自动备份
autoAppLaunch自动启动 App
autoIP自动换 IP
参数必填说明
open是1 打开,0 关闭

卸载 App

GET http://127.0.0.1:361/cmd?fun=uninstallApp&bid=com.xxx

按 Bundle ID 卸载指定应用。

跳转 App

GET http://127.0.0.1:361/cmd?fun=goToApp&bid=com.xxx

启动并跳转到指定应用。

Lua 示例(触动精灵)

lua
local sz = require("sz")
local http = require("szocket.http")

local BASE = "http://127.0.0.1:361/cmd?fun="
local STATUS_FILE = "/var/mobile/script_status"

-- 同步调用,返回解析后的 JSON
function R361(query)
    local res, code = http.request(BASE .. query)
    if code == 200 then
        return sz.json.decode(res)
    end
end

-- 等待异步任务结束:返回 1 成功 / 0 失败 / -1 无权限 / nil 超时
function Wait361(timeout)
    timeout = timeout or 120
    for i = 1, timeout do
        mSleep(1000)
        if isFileExist(STATUS_FILE) then
            return tonumber(readFileString(STATUS_FILE))
        end
    end
end

-- 异步调用 = 发起 + 等待
function R361Async(query)
    -- 建议:先删掉上一次留下的状态文件,避免读到旧结果
    if isFileExist(STATUS_FILE) then delFile(STATUS_FILE) end
    local json = R361(query)
    if not json then return nil end
    if json.status ~= 1 then
        toast("调用失败:" .. tostring(json.errMsg), 2)
        return 0
    end
    return Wait361()
end

-- 打开 361
runApp("cn.tinyapps.RST")
mSleep(5000)

-- 查看授权
local lic = R361("license")
if lic then toast("到期时间:" .. tostring(lic.endDate), 2) end

-- 一键新机(多个 App 用逗号分隔)
local r = R361Async("newDevice&bid=com.apple.weather")
if r == 1 then
    toast("新机成功", 2)
elseif r == -1 then
    toast("无权限", 2)
else
    toast("新机失败", 2)
end

-- 还原第 0 条备份
R361Async("restoreBackup&bid=com.apple.weather&index=0")

-- 删除某个 App 的全部备份
R361("deleteBackup&bid=com.apple.weather&index=-1")

TIP

示例里「调用前删除旧状态文件」是为了防止读到上一次的结果。如果实测 361 会自动清理该文件,可以去掉这一步。

使用教程见 361 使用教程。

提示

软件界面和支持范围可能随版本更新。执行清理、重置或删除操作前,请先备份重要数据。