USB HIDiOS自动化脚本

USB HID 改变了苹果群控的什么?从"必须先签名"到"插上线就能跑"

梳理 USB HID 给苹果群控带来的三个变化:不用再给 IPA 签名、不用越狱、不用买开发板,并说明这对 iOS 自动化脚本开发者的实际影响——开发流程更短、调试更快、部署门槛更低。附 usbHidEvent 的调用方式、能力边界,以及什么时候仍该回到代理模式。

约 7 分钟

一、以前做 iOS 脚本,第一件事是搞签名

写过 iOS 自动化脚本的人,大概都经历过这套流程:

申请证书 → 签名 IPA → 装到手机 → 信任开发者 → 才能开始调试。

而且这套流程不是一次性的。个人签 7 天就过期,过期了 App 打不开,又得重签重装一遍。 改一次代码,就要重新走一遍签名安装,开发节奏被打得很碎。

所以过去很多人的第一感受是:iOS 自动化难的不是写脚本,而是环境

二、USB HID 换掉了哪一环

USB HID 做的事情,可以概括成一句话:把“控制指令怎么进手机”这一环换掉了。

代理模式 USB HID(免装 App 模式)
指令怎么进手机 手机端代理程序执行 电脑模拟 HID 外设,经数据线注入
手机端要装东西吗 要装代理 IPA 不装
要签名吗 不要
要越狱吗 不要 不要
要额外硬件吗 不要 不要

原理不复杂:电脑模拟成一个 USB 键鼠,把触摸、按键事件通过数据线送给 iPhone。系统分不出信号来自真实外接设备还是电脑程序,在它眼里就是插了个正经的外设。

因为手机端什么都没装,所以没有 IPA 需要签名——签名这一环,不是被优化了,而是被绕过去了。

三、给脚本开发者带来的三个实际变化

3.1 开发循环变短

这是最直接的影响。以前改一次逻辑要重签重装,现在改完直接跑——手机端不用动任何东西。

对长期做脚本的人来说,这个提效比省下的证书钱值钱得多

3.2 少了“到点失效”的隐患

签名是有有效期的。证书一过期,同一证书下的设备往往一起打不开,属于周期性风险。

免装 App 的模式没有这个问题:放一周、放一个月,功能照常。

3.3 部署门槛大幅降低

以前要入门,得先搞定证书、开发者镜像、信任流程;现在一根数据线就能跑通第一个脚本

门槛降下来,能动手试的人就多了。

四、usbHidEvent:脚本层怎么调用

顺序是固定的:先开会话 → 再设屏幕尺寸 → 然后操作

function _usbOk(r) {
    return r == null || r === "";
}

function main() {
    // 1. 开启会话
    let r = usbHidEvent.sessionStart(true);
    if (!_usbOk(r)) { logw("开启会话失败: " + r); return; }

    // 2. 设置屏幕尺寸(按截图/投屏实际分辨率)
    r = usbHidEvent.setScreenSize(1170, 2532);
    if (!_usbOk(r)) { logw("设置屏幕尺寸失败: " + r); return; }

    // 3. 开始操作
    usbHidEvent.clickPoint(200, 400);
    usbHidEvent.typeText("hello");        // 英文逐键输入
    usbHidEvent.inputText("你好");         // 中文走粘贴
    usbHidEvent.systemKey("home");        // 回主屏

    usbHidEvent.sessionStop();
}

main();

常用函数一览:

类别 函数
触控 clickPoint / doubleClickPoint / press / swipeToPoint / touchDown·touchMove·touchUp / multiTouch
输入 typeText / inputText / setClipboard / keyPressChar / keyPress / keyUp
系统 systemKey(home/recents/lock)/ volumeUp / volumeDown / mute
会话 sessionStart / sessionRestart / sessionStop
屏幕 setScreenSize

坐标规则:先设好屏幕尺寸,之后按截图像素写,所见即所得。

不想用 EC 脚本:中控还开放了 HTTP 接口,POST http://中控IP:8019/openapi/usbhid*,与脚本函数一一对应,Python、Node.js、C# 都能接。

五、能做什么,不能做什么

能做

  • 完整的触控操作(点击、双击、长按、滑动、三段式触控、多点轨迹);
  • 文字输入(中英文都支持);
  • 系统按键、音量、静音;
  • 剪贴板写入(读取有已知限制);
  • OCR / YOLO / 图色 / 模板匹配等图像识别(配合独立截图通道)。

不能做

  • 节点抓取(与蓝牙 HID、OTG HID 相同);
  • 读取手机屏幕内容需配合截图接口;
  • 读取人手复制的剪贴板在部分 iOS 版本上不稳定。

六、什么时候该换回代理模式

USB HID 不是万能的。当业务依赖下面这些能力时,代理模式仍然不可替代

  • 需要节点抓取(按控件而不是按坐标操作);
  • 需要批量安装应用;
  • 需要向相册插入图片。

实际项目里常见的做法不是二选一,而是共存:代理模式补齐系统级能力,USB HID 承担低风控的批量点击滑动。两套链路功能不冲突,可以在同一套中控里按设备或按任务混用。

说白了:USB HID 降低了入门门槛,但没有取消代理模式的价值。

七、FAQ

  • Q:USB HID 改变了哪一环? 改变“控制指令怎么进手机”:从手机端代理程序执行,改为电脑模拟 HID 外设经数据线注入。手机不装程序,签名也就没了。
  • Q:对写脚本的人最大的好处? 开发循环变短——改完直接跑,手机端不用重签重装。
  • Q:usbHidEvent 复杂吗? 不复杂。顺序固定:开会话 → 设屏幕尺寸 → 操作;返回值 null 或空串为成功。
  • Q:坐标怎么定? 先 setScreenSize 设像素宽高,之后按截图像素写,所见即所得。
  • Q:能用 Python 调吗? 能,走 HTTP 接口,与脚本函数一一对应。
  • Q:做不到什么? 节点抓取、读屏幕内容(需配截图接口);剪贴板读取在部分版本不稳定。
  • Q:什么时候换回代理模式? 需要节点抓取、批量安装、相册插入时;实践中两者常共存。
  • Q:系统版本要求? 两种 USB_HID 模式要求 iOS 17+。

相关阅读USB HID 写 iOS 自动化脚本怎么做?完整教程 · iOS 免签名自动化怎么做?配置流程 · 蓝牙 HID、OTG HID、USB HID 怎么选

iEasyClick:安卓 / 苹果 / 鸿蒙全平台手机自动化,支持 EC 脚本开发、AI 智能体对话操控与 USB HID / 蓝牙 HID / OTG HID 多种控制方式 · 官网 ieasyclick.net


想要真实跑起来?

本文介绍的方案均可基于 EasyClick 能力在 iEasyClick 落地。官网提供完整文档、开发工具与自动化产品,免费体验。

访问 iEasyClick 官网 →