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

Zorro · API 文档

Zorro(佐罗) 通过本机 HTTP 指令调用,格式为 /cmd?fun=指令名&参数。

AZ 教程汇总站内阅读更新于 2026-11-01
项目值
手机脚本http://127.0.0.1:8844/cmd?
电脑调用http://设备局域网IP:8844/cmd?
请求方式GET
结果文件/var/mobile/zorroresult.plist

调用前准备

  1. 在 Zorro 设置的脚本选项中,打开 「启用 HTTP 脚本指令」。
  2. 每次调用任何指令前,都必须先把 Zorro 启动到前台:
lua
runApp("zorro")
mSleep(3 * 1000)

返回值

指令采用同步方式返回,调用后直接返回 JSON:

json
{"retcode": 1, "msg": "结果描述"}

同时会写入结果文件 /var/mobile/zorroresult.plist。调用 getcurrentrecordparam 时,该文件会多一个 data 节点,里面是参数信息。

retcode含义
1执行正常完成
0执行出错
2正在执行(仅结果文件,HTTP 方式不会返回)
10运行环境异常
100产品未激活或已过期

接口一览

功能指令参数最低版本
一键新机newrecord——
设置伪装 / 备份的 Appsetparamfakeapps backupappsv4.2.7
下一条记录nextrecord——
生效指定记录activerecordrecord—
删除指定记录deleterecordrecord—
获取所有记录名getallrecords—v2.9.1
获取当前记录名getcurrentrecord—v2.9.1
设置当前记录坐标setcurrentrecordlocationlocation—
清除当前记录坐标clearcurrentrecordlocation——
按当前 IP 重设坐标resetlocationbyip—v4.3.7
获取当前记录参数getcurrentrecordparam—v2.9.1
设置当前记录参数change见下文—
重启服务rebootservice—v5.5.0

接口详情

一键新机

GET http://127.0.0.1:8844/cmd?fun=newrecord

设置伪装 / 备份的 App

GET http://127.0.0.1:8844/cmd?fun=setparam&fakeapps=com.z.go1,com.z.go2&backupapps=com.z.go1,com.z.go2
参数说明
fakeapps只伪装、不备份的 App Bundle ID,逗号分隔。对应 App 里黑色勾的应用
backupapps伪装且备份的 App Bundle ID,逗号分隔。对应 App 里红色勾的应用

需要 v4.2.7 及以上版本。

下一条记录

GET http://127.0.0.1:8844/cmd?fun=nextrecord

生效指定记录

GET http://127.0.0.1:8844/cmd?fun=activerecord&record=记录ID
参数必填说明
record是记录 ID,中文需 URL 编码

删除指定记录

GET http://127.0.0.1:8844/cmd?fun=deleterecord&record=记录ID
参数必填说明
record是记录 ID

获取所有记录名

GET http://127.0.0.1:8844/cmd?fun=getallrecords

需要 v2.9.1 及以上版本。

获取当前记录名

GET http://127.0.0.1:8844/cmd?fun=getcurrentrecord

需要 v2.9.1 及以上版本。

设置当前记录坐标

GET http://127.0.0.1:8844/cmd?fun=setcurrentrecordlocation&location=经度,纬度
参数必填说明
location是格式 经度,纬度 或 经度_纬度,例如 121.4997,31.2394

清除当前记录坐标

GET http://127.0.0.1:8844/cmd?fun=clearcurrentrecordlocation

按当前 IP 重设坐标

GET http://127.0.0.1:8844/cmd?fun=resetlocationbyip

按当前网络 IP 重新设置当前记录的坐标。

需要 v4.3.7 及以上版本。

获取当前记录参数

GET http://127.0.0.1:8844/cmd?fun=getcurrentrecordparam

参数写入 /var/mobile/zorroresult.plist 的 data 节点。这里拿到的参数名可以直接用于下面的 change 指令。

需要 v2.9.1 及以上版本。

设置当前记录参数

GET http://127.0.0.1:8844/cmd?fun=change&idfa=AFF18523-B306-4E04-BB4D-2DD6CE48C694&idfv=ADF28523-B306-4E04-BB4D-2DD6CE48C694&os=12.1.3&product=iPhone9%2C2&remark=xxxx
  • 只需要传要修改的参数,没传的保持不变。
  • 参数值必须 URL 编码,例如 iPhone9,2 要写成 iPhone9%2C2。
参数说明
name设备名称,对应 DeviceName,如 xxxx iPhone
os系统版本,如 11.2.6,对应 SystemVersion。会连带重置 SystemBuildVersion、Safari 等相关参数
idfa对应 AdvertisingIdentifier
idfv对应 IdentifierForVendor
product产品类型,如 iPhone8,1,对应 ProductType。会连带重置 HWModel、屏幕分辨率等相关参数
UniqueDeviceIDUDID,仅对调用私有函数的企业版 App 有用(v4.2.7 起支持)
remark备注。显示在记录列表中该记录下方,和在记录列表左滑手动备注效果一样

以上为官方已公开的参数,其他参数待整理。

重启服务

GET http://127.0.0.1:8844/cmd?fun=rebootservice

重启 Zorro 的后台服务。

需要 v5.5.0 及以上版本。

Lua 示例(触动精灵)

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

local BASE = "http://127.0.0.1:8844/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

-- 统一调用:返回 retcode 和完整 JSON
function Zorro(query)
    local res, code = http.request(BASE .. query)
    if code ~= 200 then return nil end
    local r = sz.json.decode(res)
    return r.retcode, r
end

-- 启动(所有指令之前必须执行)
runApp("zorro")
mSleep(3 * 1000)

-- 1. 设置要伪装的 App:微信只伪装,支付宝伪装 + 备份
Zorro("setparam&fakeapps=com.tencent.xin&backupapps=com.alipay.iphoneclient")

-- 2. 一键新机
local ret, r = Zorro("newrecord")
if ret == 100 then
    toast("未激活或已过期", 2)
elseif ret ~= 1 then
    toast("新机失败:" .. tostring(r and r.msg), 2)
end

-- 3. 修改当前记录参数(值要 URL 编码)
Zorro("change&os=" .. urlEncode("12.1.3")
    .. "&product=" .. urlEncode("iPhone9,2")
    .. "&remark=" .. urlEncode("微信001"))

-- 4. 设置坐标
Zorro("setcurrentrecordlocation&location=121.4997661114,31.2394855667")

-- 5. 生效指定记录
Zorro("activerecord&record=" .. urlEncode("微信001"))

使用教程见 Zorro 使用教程。

提示

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