主题
小火箭 · API 文档
小火箭提供两种调用方式:
- HTTP 接口:
http://127.0.0.1:1688/api/v1/...,任何能发 HTTP 请求的工具都能用。 - Lua 脚本库:
rocket(封装了上面的 HTTP 接口,并提供 VPN、输入、图片点击等辅助功能)、shell(系统操作)、plist(plist 读写)。
| 项目 | 值 |
|---|---|
| HTTP 基址 | http://127.0.0.1:1688/api/v1 |
| 默认导出目录 | /var/mobile/Media/Shell/exportdata/ |
| 默认导入目录 | /var/mobile/Media/Shell/importdata/ |
| 脚本目录 | /var/mobile/Media/Shell/lua/ |
HTTP 接口一览
记录以 IDFA 作为唯一标识。
| 功能 | 方法 | 路径 | Lua 函数 |
|---|---|---|---|
| 获取激活状态 | GET | /active | rocket:status() |
| 系统是否就绪 | GET | /ready | rocket:ready() |
| 一键新机 | GET | /machine/switch | rocket:switch() |
| 下一条记录 | GET | /machine/next | rocket:next() |
| 记录列表 | GET | /record/list | rocket:records() |
| 获取当前参数 | GET | /machine/faker | rocket:faker() |
| 修改当前参数 | POST | /machine/faker | rocket:setFaker() |
| 判断记录是否存在 | GET | /machine/have | rocket:have() |
| 删除记录 | GET | /machine/delete | rocket:delete() |
| 导出记录 | GET | /machine/export | rocket:export() |
| 导入记录 | GET | /machine/import | rocket:import() |
| 获取 / 设置备注 | GET / POST | /machine/remark | rocket:remark() · rocket:setRemark() |
| 工作应用列表 | GET | /select/list · /select/add · /select/remove | listSelect() · select() · unselect() |
| 预选应用列表 | GET | /select/shift/list · /select/shift · /select/unshift | listShift() · shift() · unshift() |
| 获取 / 设置小火箭配置 | GET / POST | /prefer | rocket:prefer() · rocket:setPrefer() |
HTTP 接口详情
以下路径都以 http://127.0.0.1:1688/api/v1 开头。
获取激活状态
GET http://127.0.0.1:1688/api/v1/active返回授权状态:
| 字段 | 说明 |
|---|---|
code | 激活码 |
leave | 过期时间戳 |
系统是否就绪
GET http://127.0.0.1:1688/api/v1/ready返回布尔值,表示系统是否已准备好。
一键新机
GET http://127.0.0.1:1688/api/v1/machine/switch?<idfa>&<machine>&<build>| 参数 | 必填 | 说明 |
|---|---|---|
idfa | — | IDFA,留空则随机 |
machine | — | 设备机型,留空则随机 |
build | — | 系统版本(Build),留空则随机 |
返回新机结果:
| 字段 | 说明 |
|---|---|
selected | 工作的应用列表 |
new | 是否是新机 |
faker | 当前机器参数,字段见 机器参数 |
idfa | 当前 IDFA |
下一条记录
GET http://127.0.0.1:1688/api/v1/machine/next返回结构同「一键新机」。Lua 中另有 rocket:first() 切换到第一条记录。
记录列表
GET http://127.0.0.1:1688/api/v1/record/list?<idfa>&<size>&<search>| 参数 | 必填 | 说明 |
|---|---|---|
idfa | — | 从这个 IDFA 之后开始取(用于分页) |
size | — | 获取条数 |
search | — | 搜索关键词 |
获取 / 修改当前参数
GET http://127.0.0.1:1688/api/v1/machine/faker
POST http://127.0.0.1:1688/api/v1/machine/fakerGET 返回当前机器参数;POST 修改参数,请确保参数正确。可修改的字段:
| 字段 | 说明 |
|---|---|
build_version | 系统内部版本号,如 18G82 |
system_version | 系统版本,如 14.7.1 |
hw_machine | 机型标识,如 iPhone12,5 |
hw_machine_name | 机型名称,如 iPhone 11 Pro Max |
name | 设备名称 |
lat / lon | 纬度 / 经度 |
ssid | Wi-Fi 名称 |
remark | 备注 |
localtion | 位置描述 |
current_radioaccess_technology | 蜂窝网络制式,如 CTRadioAccessTechnologyLTE |
network_state | 网络状态,如 WIFI |
判断记录是否存在
GET http://127.0.0.1:1688/api/v1/machine/have?<idfa>删除记录
GET http://127.0.0.1:1688/api/v1/machine/delete?<idfa>导出记录
GET http://127.0.0.1:1688/api/v1/machine/export?<idfa>&<path>| 参数 | 必填 | 说明 |
|---|---|---|
idfa | 是 | 要导出的记录 |
path | — | 导出文件路径,默认 /var/mobile/Media/Shell/exportdata/{idfa}.zip |
注意:导出会同时删除本机上的这条记录,返回导出路径。
导入记录
GET http://127.0.0.1:1688/api/v1/machine/import?<path>导入指定的 zip 文件,导入完成后会删除该 zip,返回导入成功的 IDFA 列表。Lua 中 rocket:importAll() 可一次导入 importdata 目录下的所有数据。
获取 / 设置备注
GET http://127.0.0.1:1688/api/v1/machine/remark?<idfa>
POST http://127.0.0.1:1688/api/v1/machine/remark?<idfa>&<remark>工作应用
GET http://127.0.0.1:1688/api/v1/select/list
GET http://127.0.0.1:1688/api/v1/select/add
GET http://127.0.0.1:1688/api/v1/select/remove查看、添加、移除需要伪装的应用。bid 可以是单个 Bundle ID,也可以是列表。
预选应用
GET http://127.0.0.1:1688/api/v1/select/shift/list
GET http://127.0.0.1:1688/api/v1/select/shift
GET http://127.0.0.1:1688/api/v1/select/unshift获取 / 设置小火箭配置
GET http://127.0.0.1:1688/api/v1/prefer
POST http://127.0.0.1:1688/api/v1/prefer常用配置字段:
| 字段 | 说明 |
|---|---|
jailbreak | 反越狱检测 |
vpnhide | 隐藏 VPN |
location | 虚拟定位 |
location_zh | 随机中国位置 |
location_offset | 地图随机范围(米) |
location_lon / location_lat | 地图起始点 |
new_and_delete | 新后删前 |
disable_open_url | 隐藏用户应用 |
ctr_vpn_alloc | 重连 VPN |
network_arg / network_arg_url | 网络参数开关 / 地址 |
auto_close | 自动关闭对话框 |
vpn_script | VPN 自动脚本位置 |
script_file / script_arg | 选中的脚本 / 脚本参数 |
机器参数(faker)
一键新机、获取参数返回的机器参数字段:
| 字段 | 示例 |
|---|---|
idfa | 91566BBD-C5E6-48B0-85CA-6E0C68663F69 |
name | “GaoRuiZe”的 iPhone |
hw_machine | iPhone12,5 |
hw_machine_name | iPhone 11 Pro Max |
system_version | 14.7.1 |
build_version | 18G82 |
carrier_name | 数码通 |
mobile_network_code | 06 |
locale_identifier | CN |
network_state | WIFI |
current_radioaccess_technology | CTRadioAccessTechnologyLTE |
ssid | Wi-Fi 名称 |
lat / lon | 纬度 / 经度 |
create_time | 创建时间戳 |
remark | 备注 |
Lua 库:rocket
rocket 封装了上面的所有 HTTP 接口,另外还提供以下辅助功能:
| 分类 | 函数 | 说明 |
|---|---|---|
| 网络请求 | json(url, body, headers) | 请求 JSON 接口;body 为空时 GET,否则 POST |
| 网络请求 | get · post · put | 普通 HTTP 请求,返回 body, code, headers |
| VPN | activeRocketVPN() | 激活小火箭 VPN |
| VPN | connectVPN([tips[, openPref]]) | 连接 VPN,已连接会先断开 |
| VPN | connectAppVPN(bids[, tips[, openPref]]) | 为指定 App 单独提供 VPN(仅用户应用) |
| VPN | openShadowrocket(ip, port) · closeShadowrocket() | 打开 Shadowrocket 并连接 socks5 / 断开 |
| 操作 | openApp(bid) | 运行应用 |
| 操作 | move(sx, sy, ex, ey[, step]) | 拖拽 |
| 操作 | tapImage(res[, mode[, threshold[, rect]]]) | 找图并点击 |
| 操作 | inputNumber(number) · pinyinInput(text) | 输入数字 / 模拟拼音输入 |
| 系统 | respring() · reboot() · poweroff() | 注销 / 重启 / 关机 |
| 工具 | sleep(ms) · message(...) | 睡眠 / toast 提示 |
| 工具 | wait · waita · waits | 循环调用函数,直到返回 true |
lua
local rocket = require("rocket")
-- 系统就绪后再操作
if rocket:ready() then
-- 一键新机(参数都可省略,留空则随机)
local ret = rocket:switch()
rocket:message("新机完成:" .. ret.idfa)
-- 设置备注
rocket:setRemark(ret.idfa, "备注")
-- 为指定 App 单独连接 VPN
rocket:connectAppVPN({"com.xxx.xxx"})
endLua 库:shell
系统级操作,也可以通过 rocket.shell 访问。
| 分类 | 函数 |
|---|---|
| 应用 | runApp · closeApp · openURL · appState · appList · appInfo · appIcon · frontmostApp |
| 安装 | isInstall · install(ipa路径) · uninstall |
| VPN | getVPNStatus · setVPNEnable · activeVPN · isActiveVPN · listVPN · createVPN · updateVPN · deleteVPN · startAppVPN · stopAppVPN · appVPNStatus |
| 屏幕与触控 | tap · swipe · touches · press · home · snapshot · snaphash · findImage · safeArea |
| 输入 | inputText · keyboards · getPasteStr · setPasteStr |
| 设备 | unlockScreen · lockScreen · setDeviceName · setAirplaneMode |
| 界面提示 | toast · alert · progressHUD · showUI · onSPAlert(自动处理弹窗) |
| 工具 | mSleep · timestamp · timestamp_millis · base64 / dese64 · hex / dex · pinyin |
lua
local shell = require("shell")
shell.runApp("com.apple.Preferences")
shell.mSleep(1000)
shell.setAirplaneMode(true) -- 打开飞行模式
shell.mSleep(3000)
shell.setAirplaneMode(false)
shell.toast("切换 IP 完成")Lua 库:plist
| 函数 | 说明 |
|---|---|
plist.read(file) | 读取 plist 文件,返回 table |
plist.write(file, object[, type]) | 写入 plist 文件,type 为 xml(默认)或 bin |
plist.encode(object[, type]) | 编码为 plist 数据 |
plist.decode(data) | 解码 plist 数据 |
lua
local plist = require("plist")
local data = plist.read("/tmp/test.plist")
data.A = 1
plist.write("/tmp/test.plist", data, "xml")此外还内置 cURL / lcurl 网络库(libcurl 的 Lua 绑定),用于更复杂的 HTTP 请求。
使用教程见 小火箭 · 使用教程。
