为什么需要免越狱方案,三条路线
苹果对 iOS 生态的控制是业界最严格的:不提供任何官方远程桌面、触控模拟或界面读取接口,App 必须经 App Store 审核才能上架,且设备必须越狱才能安装非签名应用或使用系统级 API。所以想在 iOS 上实现类似安卓那样“让脚本点击按钮、滑动页面、识别内容”,常规途径完全走不通。但这不代表没有路,过去几年社区和开发者摸索出三条切实可行的路线:代理模式(Proxy),通过描述文件 + IPA 签名让一个中间 App 拦截触控事件;蓝牙 HID 硬件注入,用 ESP32 等 BLE 微控制器伪装成蓝牙鼠标/键盘把指令发给 iPhone;OTG HID 有线方案,通过 Lightning/USB-C 直连 USB HID 设备绕过无线干扰。三者各有优劣、适用不同场景,理解差异后选最适合你业务的那一种,就能在不越狱的前提下完成大多数自动化任务。
三条路线逐个拆解
方案 A 代理模式:给 Apple 提供一个描述文件签名、安装一个中间 App 来拦截系统触控事件——用户手指触摸屏幕时,系统先把事件发给中间 App、再由它转发给目标 App,你就能在中间 App 里注入自定义操作。优点是不需要额外硬件、纯软件部署快,配合辅助功能权限还能读取界面元素、比 HID 更智能,适合日常签到、自动截图等轻量场景。缺点是每次签名有费用(描述文件每年约 ¥600-800,企业证书容易被封)、系统更新后适配频率高、部分旧款 iPhone 签名后稳定性差。搭建步骤:获取描述文件和企业证书;安装中间 App(如 EasyClick 脱机版);授权辅助功能(设置 → 辅助功能 → 无障碍 → 开启目标 App);拖拽节点配置自动化流程;运行测试验证通道。
方案 B 蓝牙 HID(推荐首选,安全性最高且成本最低):用 ESP32 等 BLE 微控制器模拟标准蓝牙键盘/鼠标,iPhone 看到的是一个真实的蓝牙外设,完全不会触发反自动化检测——用的是 Apple 自己设计的蓝牙 HID 协议栈,不存在“绕过安全机制”,在系统眼里它就是一副正常的蓝牙键鼠。核心优势:零签名、零描述文件,不影响设备原有安全性;极低成本,单台只需 ESP32-C3/S3 约 ¥12-30;可离线运行,不需 iPhone 保持网络连接;兼容所有 iOS 版本、不受系统更新影响。硬件准备:
| 型号 | 芯片 | 适用场景 | 参考价 |
|---|---|---|---|
| ESP32-C3 | RISC-V 单核 | 轻载 HID 注入预算优先 | ¥12-18 |
| ESP32-S3 | 双核 Xtensa | 多任务/OTA 升级 | ¥20-30 |
| ESP32-WROOM | 双核 Xtensa | WiFi+BLE 双模 | ¥15-20 |
Arduino IDE 固件编写(HID 描述符与初始化):
#include <BLEDevice.h>
#include "BLEHIDDevice.h"
const char *hidDesc = "\x05\x01" // Usage Page(Generic Desktop)
"\x09\x02" // Usage(Mouse)
"\xA1\x01" // Collection(Application)
"\x09\x01" // Usage(Pointer)
"\xA1\x00" // Collection(Physical)
"\x05\x09" // Usage Page(Button)
"\x19\x01" // Usage Minimum(1)
"\x29\x03" // Usage Maximum(3)
"\x81\x02" // Input(Data,Var,Abs)
"\x05\x01" // Usage Page(Generic Desktop)
"\x09\x30" // Usage(X)
"\x09\x31" // Usage(Y)
"\x81\x06" // Input(Data,Var,Rel)
"\xC0" // End Collection
"\xC0"; // End Collection
void setup() {
BLEDevice::init("EasyClick-HID");
BLEServer *pServer = BLEDevice::createServer();
// ... 后续初始化 HID 服务和广播参数
}
void loop() {
// 接收串口指令并执行 Mouse.move / Mouse.click
delay(100);
}
配对流程:打开 iPhone 设置 → 蓝牙,找到 EasyClick-HID 点击连接,允许配对后状态栏会出现小键盘图标,之后只要设备在蓝牙范围内就自动保持连接。中控端下发指令:
import serial
ser = serial.Serial('/dev/cu.SLAB_USBtoUART', 115200)
def move(x, y): ser.write(f'MOVE {x} {y}\n'.encode())
def click(): ser.write(b'CLICK\n')
def scroll(dy): ser.write(f'SCROLL {dy}\n'.encode())
# 实际业务流程示例
move(100, 50)
click()
scroll(-20)
业务脚本写在电脑上、上百行复杂逻辑随便折腾,ESP32 只是个透明的遥控器转换器。实战(电商上架)走一遍:唤醒页面(点击 Safari 书签导航到卖家后台)→ 登录验证(输账号、密码、点登录)→ 商品编辑(新增、填标题分类规格、上传主图)→ 发布上架(确认提交、等加载、跳转列表页重复),配合图像识别判断元素是否出现,遇到弹窗广告模拟关闭、异常状态记录截图告警。批量的关键是并行和差异化:并行是一台电脑通过 USB Hub 同时连几十片 ESP32、每台对应一台 iPhone;差异化是随机化操作间隔(300-1500ms)、坐标偏移(±5px)、点击时长(50-150ms)模拟真人手感。
方案 C OTG HID 有线方案:通过 Lightning 或 USB-C 转接线直连 USB HID 设备(如蓝牙鼠标适配器),相比蓝牙消除了无线干扰和延迟、提升稳定性,但要处理线缆管理。适合高密度部署(同一区域密集排布多台手机)、对延迟敏感的实时交互、蓝牙信道拥挤的环境。搭建要点:Lightning to USB Camera Adapter(需支持供电)或 USB-C to USB 转接头;USB HID 模块(如 Arduino Pro Micro);用扎带或小支架把转接头固定在设备背面,注意别挡住充电口。
| 维度 | OTG HID | 蓝牙 HID |
|---|---|---|
| 稳定性 | 5/5 | 4/5 |
| 延迟 | 极低 | 低 |
| 布线复杂度 | 高(需理线) | 低(无接触) |
| 并发扩展性 | 受限(USB Hub + 线材) | 高(独立天线) |
| 成本 | 略高(转接头+线缆) | 略低(仅 ESP32) |
三套方案横向对比
| 维度 | 代理模式 | 蓝牙 HID | OTG HID |
|---|---|---|---|
| 硬件成本 | ¥0 | ¥12-30/台 | ¥15-40/台 |
| 是否需要签名 | 是(付费) | 否 | 否 |
| 安装复杂度 | 中 | 低(直插即用) | 中(需布线) |
| 抗系统更新 | 2/5 | 5/5 | 5/5 |
| 并发稳定性 | 3/5 | 4/5 | 5/5 |
| 可扩展性 | 高(纯软件) | 高(自研二次开发) | 受限(线缆管理) |
| 风控安全性 | 2/5 | 5/5 | 5/5 |
| 适合规模 | <10 台 | 10-100 台 | >50 台高密度 |
连不上、点不准怎么排查,选哪套方案
常见问题排查。ESP32 搜不到或连不上 iPhone:最常见是蓝牙配对缓存冲突,在 iPhone 上删掉旧设备、给 ESP32 断电重启再重新扫描,多次失败就刷入最新固件(部分旧版 ESP-IDF 对 BLE 连接有 Bug)。触控不灵敏或有延迟:先检查 ESP32 供电是否充足(电压不足会降低 BLE 发射功率),再看蓝牙信道干扰——微波炉、Wi-Fi 路由器都工作在 2.4GHz、尽量让 ESP32 远离,大量指令堆积时加节流控制,每两条指令至少间隔 20ms 避免 BLE 缓冲区溢出。能不能同时控多台:每片 ESP32 独立连接一台 iPhone,中控侧通过串口编号区分并发发送指令,一台电脑通过 USB Hub 挂 16-32 台是典型上限(受限于 USB 带宽和 CPU 调度),更大规模建议分布式架构。系统更新后能用吗:ESP32 HID 用的是 Apple 官方公开的蓝牙 HID 协议栈、属于基础功能层,除非 Apple 从系统层面禁止 HID 设备(从未发生)否则每次大版本更新都能正常使用,这是相对越狱和描述文件方案的最大优势。续航发热:BLE HID 待机约 3mA、持续发送峰值 50-80mA,接充电宝或 USB 口都无明显发热、连续运行几个月没问题,户外场景配 5000mAh 充电宝能撑一周以上。鸿蒙设备:HarmonyOS 同样支持蓝牙 HID 协议栈、配对方式与 iOS 完全一致,差异只在脚本层面(ArkUI 与 iOS/UIKit 不同,要针对华为的具体页面写定位和点击逻辑)。会不会被 App 检测:不会,ESP32 对 iOS 而言就是标准蓝牙鼠标/键盘,App 收到的触控事件与手指触控完全一致、没有差异字段可区分来源。开源项目:github.com/nkolban/ESP32_BLE_Arduino 提供基础 BLE HID 示例,还有面向 TouchBar 的 ESP32-BLE-HID-Touchbar,生产环境建议在此基础上加心跳保活、断线重连。规模上,USB 3.0 Hub 理论支持 127 个设备、实际受主控芯片驱动能力限制,实践中常见 16-32 台/台中控,更大规模走分布式。
怎么选:<10 台小规模试点选代理模式快速验证;10-50 台规模化运营选蓝牙 HID(性价比最优);>50 台高密度部署选 OTG HID 或混合使用;强风控平台(跨境电商/TikTok)选蓝牙 HID 或 OTG HID。总结一句:蓝牙 HID 以极低的成本和极高的安全性成为当前最佳选择,代理模式适合快速验证但不适合长期运营,OTG HID 在高密度部署、对延迟敏感的场景有独特优势。不管你选哪种方案,记住最好的防封策略不是技术本身、而是行为模式——越像真人存活率越高,工具只是放大器。
关于 EasyClick:手机自动化脚本开发平台,覆盖安卓免 ROOT、iOS 免越狱、鸿蒙三大手机生态,还提供苹果脚本编写、苹果群控、安卓群控、远程云控、AI 群控手机等。→ 了解全部产品
想要真实跑起来?
本文介绍的方案均可在 EasyClick 手机自动化平台落地。官网提供完整文档、开发工具与群控云控产品,免费体验。