USB HIDiOSAutomation Scripts

What Does USB HID Change for Apple Cluster Control? From "Sign First" to "Plug In and Run"

USB HID brings three changes to Apple cluster control: no more signing IPAs, no jailbreak, and no development board to buy. What that means for script developers: a shorter dev loop, faster debugging, and a lower bar to deploy.

4 min read

Apple cluster control is one computer managing many iPhones at once: watch the screens together, dispatch tasks by group, and collect results in one place. The mainstream implementation does not jailbreak.

When no app is installed, the signing step is gone

Proxy mode starts with applying for a certificate, signing the IPA, installing it on the phone, and trusting the developer, and only then can you debug. A certificate from a free personal Apple ID signature expires in 7 days. After it expires the app will not open, and you sign and install again. A logic change also walks through install again. A personal developer account is 688 yuan a year, up to 100 devices, supporting iOS 12 and later. TrollStore supports iOS 15 through 16.6.1, and a restart drops the signature.

USB HID changes how commands enter the phone. From EC iOS USB 10.7.0 (2026-09-08), the computer emulates a HID peripheral and injects touch and keys over the data cable. No Bluetooth board, and no OTG board. The phone needs iOS 17 or later. It is mutually exclusive with “start automation”, so do not mix the two on the same device. In the mode where no app is installed, there is no IPA to sign.

Proxy mode USB HID (no-app mode)
How commands enter the phone A proxy program on the phone executes them The computer emulates a HID peripheral and injects them over the data cable
Does the phone install something? Yes, a proxy IPA Nothing installed
Does it need a signature? Yes No
Does it need a jailbreak? No No
Does it need extra hardware? No No

The computer presents itself as a USB keyboard and mouse. Touch and keys go to the iPhone over the data cable, and the system treats them as an external device. With no program installed on the phone, there is no IPA to sign. The 7-day expiry of a personal signature, and TrollStore dropping its signature on restart, do not occur in this no-app mode. After you change the script, run it directly. The phone side does not reinstall.

Installing a program is a separate case. On iOS 15 and later, the offline main program v7.2.0 or later can serve as the USB automation program, and you do not have to install a USB proxy IPA as well. The official download page has a pre-signed IPA for testing. The offline edition supports iOS 15 and later only. From 7.0.0, a single-app setup installs only the main program, and a dual-app setup also installs the proxy IPA. Once it is installed, the path is “start automation”, which is mutually exclusive with USB HID.

The call order is fixed: open a session, set the screen size, then act. An empty return means success.

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

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

// 2. Set the screen size (use the actual screenshot or mirroring resolution)
    r = usbHidEvent.setScreenSize(1170, 2532);
    if (!_usbOk(r)) { logw("设置屏幕尺寸失败: " + r); return; }

// 3. Start the actions
    usbHidEvent.clickPoint(200, 400);
    usbHidEvent.typeText("hello");        // English, key by key
    usbHidEvent.inputText("你好");         // Chinese goes through paste
    usbHidEvent.systemKey("home");        // back to the home screen

usbHidEvent.sessionStop();
}

main();

Common functions:

Category Functions
Touch clickPoint / doubleClickPoint / press / swipeToPoint / touchDown·touchMove·touchUp / multiTouch
Input typeText / inputText / setClipboard / keyPressChar / keyPress / keyUp
System systemKey (home/recents/lock) / volumeUp / volumeDown / mute
Session sessionStart / sessionRestart / sessionStop
Screen setScreenSize

Coordinate rule: set the screen size first, then write against screenshot pixels, what you see is what you write. If you do not want EC scripts, central control also exposes an HTTP interface, POST http://中控 IP:8019/openapi/usbhid*, mapped one-to-one to the script functions. Python, Node.js, and C# can all connect.

What it can do, and when you still need the proxy

What it can do: full touch (tap, double tap, long press, swipe, three-phase touch, multi-point paths); text input (Chinese and English); system keys, volume, and mute; clipboard write (read has a known limit); image recognition such as OCR / YOLO / image and color search / template matching (paired with a separate screenshot channel). What it cannot do: node capture (the same as Bluetooth HID and OTG HID); reading what is on the phone screen needs the screenshot interface; reading a clipboard a person copied is unstable on some iOS versions.

Node capture, bulk app installation, and inserting images into the photo album need proxy mode. The proxy and USB HID can be split by device or by task. On the same device, do not mix USB HID with “start automation”. From 10.6.0, the AI agent is iEasyRun, at https://ieasyrun.com .

Related reading: How to write an iOS automation script with USB HID: full tutorial · How to do iOS automation without a signature: the setup · How to choose among Bluetooth HID, OTG HID, and USB HID

About EasyClick: A mobile automation script development platform covering three phone ecosystems: Android without root, iOS without jailbreak, and HarmonyOS. It also offers Apple script writing, Apple cluster control, Android cluster control, remote cloud control, and AI phone cluster control. → Explore all products

Ready to build it for real?

Every approach in this article can be built with EasyClick capabilities on iEasyClick — full documentation, developer tools and automation products, free to try.

Visit iEasyClick →