Skip to content

小火箭 · 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/activerocket:status()
系统是否就绪GET/readyrocket:ready()
一键新机GET/machine/switchrocket:switch()
下一条记录GET/machine/nextrocket:next()
记录列表GET/record/listrocket:records()
获取当前参数GET/machine/fakerrocket:faker()
修改当前参数POST/machine/fakerrocket:setFaker()
判断记录是否存在GET/machine/haverocket:have()
删除记录GET/machine/deleterocket:delete()
导出记录GET/machine/exportrocket:export()
导入记录GET/machine/importrocket:import()
获取 / 设置备注GET / POST/machine/remarkrocket:remark() · rocket:setRemark()
工作应用列表GET/select/list · /select/add · /select/removelistSelect() · select() · unselect()
预选应用列表GET/select/shift/list · /select/shift · /select/unshiftlistShift() · shift() · unshift()
获取 / 设置小火箭配置GET / POST/preferrocket: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/faker

GET 返回当前机器参数;POST 修改参数,请确保参数正确。可修改的字段:

字段说明
build_version系统内部版本号,如 18G82
system_version系统版本,如 14.7.1
hw_machine机型标识,如 iPhone12,5
hw_machine_name机型名称,如 iPhone 11 Pro Max
name设备名称
lat / lon纬度 / 经度
ssidWi-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_scriptVPN 自动脚本位置
script_file / script_arg选中的脚本 / 脚本参数

机器参数(faker) ​

一键新机、获取参数返回的机器参数字段:

字段示例
idfa91566BBD-C5E6-48B0-85CA-6E0C68663F69
name“GaoRuiZe”的 iPhone
hw_machineiPhone12,5
hw_machine_nameiPhone 11 Pro Max
system_version14.7.1
build_version18G82
carrier_name数码通
mobile_network_code06
locale_identifierCN
network_stateWIFI
current_radioaccess_technologyCTRadioAccessTechnologyLTE
ssidWi-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
VPNactiveRocketVPN()激活小火箭 VPN
VPNconnectVPN([tips[, openPref]])连接 VPN,已连接会先断开
VPNconnectAppVPN(bids[, tips[, openPref]])为指定 App 单独提供 VPN(仅用户应用)
VPNopenShadowrocket(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"})
end

Lua 库:shell ​

系统级操作,也可以通过 rocket.shell 访问。

分类函数
应用runApp · closeApp · openURL · appState · appList · appInfo · appIcon · frontmostApp
安装isInstall · install(ipa路径) · uninstall
VPNgetVPNStatus · 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 请求。

使用教程见 小火箭 · 使用教程。