Muka Rust iOS 是本站 Muka Rust 系列工具之一:Rust 实现的 iOS 设备操作工具,是 go-ios 的 Rust 重构。项目只产出一个 ios 可执行文件,普通调用是短生命周期的 client,同一文件的隐藏 server nodaemon 模式是本机常驻 server,持有所有持续资源——forward、userspace/kernel tunnel、dproxy、syslog、ostrace 和 pcap 均由 server 托管,并在 server 重启后按 desired state 自动恢复,不再需要为每项能力保留一个 CLI 进程。当前首版开发快照(0.1.0),Windows 为已完成完整进程测试的首要平台,macOS/Linux 结构边界已建立。工具链要求 Rust 1.96+,edition 2024。

架构概述

Workspace 分为四个 crate,依赖方向严格单向:

  • rust-ios-protocol:IPC 协议定义,不依赖其他 workspace crate 或设备库。
  • rust-ios-core:全部设备协议与 backend(idevice / mock / replay / recording)。
  • rust-ios-server:常驻 server、task manager、desired-state 恢复。
  • rust-ios-cli:命令行入口,不直接调用 idevice

已可用能力

  • ADB 风格自动启动、start-serverkill-serverserver status 和前台调试模式。
  • token 认证、protocol 1.20 握手、16 MiB 帧限制、UUID request ID 和结构化错误。
  • 原子 desired-state、独占 server lock、损坏 state 隔离、优雅关闭和强杀后恢复。
  • server 托管 forward、userspace CoreDevice tunnel、Windows Wintun kernel tunnel、RSD registry、syslog、ostrace、pcap、DVT notifications/sysmontap/device condition、Accessibility inspector、MJPEG screenshot stream、WebInspector CDP、WDA session、WDA/DeviceKit UI runner 与 UI HTTP stream capture;iOS 17+ 的 DVT/WebInspector 命令和 stream 复用同设备 server-owned tunnel。
  • server 托管 USB CoreDevice 与 RemotePairing TCP 两类 userspace tunnel;RemotePairing identity 由 server home 管理,manual consent 为一次性请求。
  • server 托管 dproxy 显式 usbmuxd endpoint:双向 raw dump、初始 usbmuxd plist NDJSON、连接统计、stop/restart/恢复。
  • server-owned WDA/XCTest runner、NDJSON event/result capture;.xctestrun v1/v2 parser、unit XCTest/test filters 和有限测试任务的 completed/failed 恢复语义;iOS 17+ 复用 shared RSD,不再创建第二套 CoreDeviceProxy。
  • WDA/DeviceKit 一次性 UI HTTP/RPC client:status、raw API、tap/swipe/longpress/type/button、screenshot/source/size/orientation 和 app control。
  • host-only UI artifact 下载与纯 Rust .app/.ipa 重签名;ui install 签名后通过真实 backend 调用 installation_proxy。
  • host-only App Store Connect ES256 JWT/JSON:API、iOS Development certificate/P12 和 per-device provisioning profile workflow;profile reuse 模式不创建或 revoke certificate。
  • list/listen/readpair/buid/pair/info/lockdown/apps/fsync/install/uninstall 等基础设备命令;file 同时支持 AFC/HouseArrest 语义。

构建

cargo build --release

默认成员为 crates/rust-ios-cli,产出单一 ios 可执行文件。

开源协议

MIT License