Repository navigation
LoopCtrl 0.3.4:把"一来一回"的操控改成批量——设备端 run_steps、动作附带观察、多条件等待;控制页实时显示操作者的触控轨迹 / This release turns step-by-step control into batches: device-side run_steps, observe attachments on actions, multi-condition waits — plus live touch trails on the control page.
⚡ 批量与速度 / Batching and speed
run_steps(设备端批量):一次调用在手机上连续执行最多 20 步({method, params, expect?}),首错即停,not_sent列出没跑的步骤,定屏画面随回复带回。客户端run检测到该能力后整包下发,省掉每步一次的网络往返(中继/蜂窝下每步省 0.3–0.5s)/run_steps(device-side batch): one call runs up to 20 steps on the phone; the first error or failedexpectstops the batch,not_sentlists what never ran, and the settled screen rides home. The Python client'srunhands the whole batch over when the device advertises it.- 动作附带观察(
observe):tap/swipe/type等动作可在回复里直接附带定屏画面——"visible"完整树,"compact"去坐标约 1/4 体积——省掉下一次page_source/observeattachments: actions can carry the settled screen in their reply — full tree, or frames-stripped compact (~1/4 the size) — saving the following page_source call. wait_for多条件等待:{present:[…], absent:[…], foreground}在设备上一次轮询完成,替代"读屏→思考→再读屏"循环;只查前台时跳过读树 /wait_for: several present/absent/foreground conditions polled in one call; foreground-only waits skip the tree read.quiet_window:按页面显式覆盖 settle 静默窗口(0.2–3s) /quiet_window: explicit per-action settle override.- 计时指标:每个方法的 p50/p90 与排队耗时进入
config与/logs/ Timing: per-method p50/p90 and queue wait inconfigand/logs. - 说明书/协议版本升至 1.98.14,新增能力标签
run_steps、wait_for、action_observe、quiet_window/ skill and server version 1.98.14 with new capability tags.
🖥 控制页与推流 / Control page and stream
- 触控轨迹可视化:操作者的点按、长按、拖动在观众控制页上实时画出轨迹(标注发送者)/ Touch trails: the operator's taps, long-presses and drags draw live on viewers' control pages, labeled per sender.
- 推流端口轮换:系统录屏推流轮换使用 48300–48307,并新增
welcome握手(见 docs/remote-control.md)/ Broadcast port rotation: system-broadcast streaming rotates 48300–48307 with awelcomehandshake.
🧪 其他 / Also
- idevice 框架新增 iOS 模拟器切片,runner 可编进模拟器;音量键在模拟器返回明确错误;模拟器通知授权 5 秒超时不再卡启动 / idevice gains an iOS-simulator slice (the runner now builds for the Simulator); volume buttons report a clear error there; notification authorization times out after 5s instead of hanging simulator startup.
Bundle version 0.3.4 (build 8).
Install
Download LoopCtrl.ipa. It is one app and takes one sideloading slot. It
replaces an older LoopCtrl install. Check it against SHA256SUMS.txt if you
like.
- Re-sign and install it: the latest SideStore (My Apps → +) with a free
Apple ID, or on a MacScripts/sign-ipa.sh -i LoopCtrl.ipa.
Signers that skip the nested.xctestproduce an app that crashes on open. - Trust the certificate under Settings → General → VPN & Device Management,
and turn on Developer Mode. - Below iOS 27, pair once over USB with
LoopCtrl Pair (Windows,
macOS, Linux, Android) or import a pairing file. On iOS 27 and later, pair
on the phone. - Open LoopCtrl → mount the Developer Disk Image (with LocalDevVPN or
Shadowrocket connected) → Start. The first start asks for your passcode
and for Notifications and Local Network access.
The package is unsigned, so iOS will not install it as-is. It carries no
provisioning profile, no team id and no device identifiers.
See the README for
requirements by iOS version, pairing approval, LAN and remote access, and the
API.