导语:ShawnPana 在 GitHub 开源的 phone-harness 工具,让 Claude Code、Codex、Hermes 等 AI Agent 直接控制真实手机——iPhone 通过 Mac 的 iPhone Mirroring 窗口、Android 通过 adb、Cloud 提供托管 iPhone 与 Android,全部不需要越狱。Nous Research 的 Hermes Agent 首发集成插件,红队视角看四个新攻击面。

一、工具定位:让 Agent 看见屏幕、点出动作
phone-harness 解决了一个很直接的问题:此前 AI Agent 只能控制电脑,现在可以控制手机了。它支持三个层面。
第一层,本地 iPhone。 在 Mac 上启用 iPhone Mirroring 之后,手机屏幕被渲染成 Mac 窗口。harness 抓取窗口截图,调用 Apple Vision framework OCR 文本和坐标,最后以 HID 级别模拟触摸与键盘事件。整条链路不需要越狱、不需要 Xcode,手机上也不用装任何东西。
第二层,本地 Android。 通过 adb(USB 或 Wi-Fi 均可)抓取 screencap、读取无障碍树、用 input 命令注入 tap / swipe / type。Android 11 之后的无障碍树本身就是结构化文本,比 OCR 干净得多。
第三层,Cloud phone。 phone-harness.com/cloud 提供托管 iPhone 与 Android,官方原话是 "real numbers, 2FA, and unlimited devices"。Cloud 走 HTTPS,host 端跑 OCR,taps 使用手机原生屏幕坐标点。一台 cloud iPhone 起步价 15 分钟(cloud start),也可以指定 90 秒或 15 分钟。
二、核心助手:五个常用 API
把 phone-harness 接到 Claude Code 或 Codex 之后,自动 import 的助手只有五个,但日常使用已经够了:
open_app(name):打开应用
tap_text(text):通过文字找到坐标并点击
type_text(text):模拟键盘输入
screen():读取当前屏幕文本
find_text(text):只查坐标,不点击
完整调用示例如下:
phone-harness <<'PY'
open_app("Notes")
tap_text("New Note")
type_text("hello from the harness")
print([o["text"] for o in screen()][:10])
PY
底层抽象把 Vision OCR、adb input、HTTPS POST 三套完全不同的传输方式压平到同一组 Python 助手,调用者不用关心目标平台。
三、内部实现:iPhone / Android / Cloud 三套技术
iPhone 路线。 iPhone Mirroring 把 iPhone 屏幕渲染到 Mac 窗口,harness 用 CoreGraphics 抓窗口位图,再用 Apple Vision 框架(VNRecognizeTextRequest)做 OCR 并附带 tap-ready 坐标。坐标直接送入 CGEventCreateMouseEvent 模拟鼠标点击——因为 iPhone Mirroring 会把触摸事件转成 Mac 鼠标事件,整条链路完全处在 App Store 政策允许的范围之内。
Android 路线。 adb 的 screencap 拉取 PNG、uiautomator dump 拉取无障碍树 XML、input tap / input text / input swipe 注入操作。OCR 在 Android 上其实并不必要——无障碍树自带元素文本和 bounds 坐标,效率比 Vision OCR 高出一个量级。
Cloud 路线。 phone-harness cloud login 走 OAuth 浏览器授权,cloud start 拿到 session id。Cloud iPhone 没有 shell,所有操作通过 HTTPS POST 发到 phone-harness 服务端,host 端跑 Vision OCR 解析屏幕,taps 转成屏幕原生坐标。Cloud Android 则走标准 adb over TCP,所有助手照常工作。
四、Hermes 集成首发
@HermesWatcher 在 11 月 14 日的推文让这个工具迅速出圈:
HERMES CAN NOW CONTROL YOUR PHONE. 🤯📱🔥 A new Phone Harness plugin gives Hermes the ability to actually operate an iPhone or Android. We're talking real phone control: • See what's on the screen • Open apps and navigate menus • Tap, swipe, scroll, and type • Read the results and continue working • Handle multi-step tasks inside mobile apps
Hermes 是 Nous Research 的开源 Agent 框架。集成方式只有一条命令:
hermes plugins install ShawnPana/phone-harness/integrations/hermes
装完启用后,Hermes 拿到一个 phone_exec 工具,配合 phone-harness 的 SKILL.md 就能直接驱动手机。这不是 demo,而是已经在生产环境运行的 release 集成。
五、限制与适用边界
读完能力描述,还得看清边界。官方 README 明文列出了五条限制。
iPhone 解锁操作会暂停 iPhone Mirroring——PIN 锁状态下的 iPhone 只能用于解锁后的阶段。Android 解锁同理,需要用户输入 PIN。无标签控件(只带图标的按钮)走 OCR 失败率很高,必须使用具备视觉能力的模型看截图。DRM 视频(如 Netflix、Disney+)渲染黑屏无法处理。多人多点(multi-touch)手势不支持。摄像头、拍照、Face ID 流程不能跑。配对永远需要人工完成首次操作。
这些限制并不是技术缺陷,而是苹果 App Store 政策与操作系统能力的边界。Phone Harness 在灰色地带内推进得相当快,但红线一直没有越过。对防御方来说,这算半个好消息:它并非"全操作系统能力"的工具,而是一个"UX 级"工具。
六、红队视角:四个新攻击面

工具能力摆出来之后,从红队视角能看出四条全新的攻击面。
第一,AI Agent 攻击面正式进入移动端。 此前 Agent 风险评估默认 Agent 跑在 Linux 容器或 Windows 工作站上,控制范围限定在文件系统、浏览器、shell 这三样。Phone Harness 出现之后,Agent 获得了"操控云端手机"的能力——只要云手机开了一台 Telegram / WhatsApp 账户,Agent 就能养号、对话、跑自动话术验证。攻击面从传统 IT 设备扩展到移动设备。
第二,OCR + 坐标点击绕过应用行为分析。 多数银行 App、Telegram、微信对"非人操作"的检测基于鼠标轨迹熵、操作间隔时间分布、手指压力模式。Phone Harness 用 Vision 读屏之后模拟人类点击位置,行为语义上无法区分自动化和真用户。这条绕过能力对钓鱼页面的 A/B 测试、对风控规则的对抗采样都极其有用。
第三,Cloud 隐身号 + 2FA 工厂化养号。 phone-harness.com/cloud 明文标注 "real numbers, 2FA, unlimited devices"。红队可以批量开 Google Voice / ProtonMail / Signal 账户做鱼叉式钓鱼的接码池,单台操作员能跑出过去需要 5 人小组的养号产能。Cloud 计费按 15 分钟起步(最低 90 秒),封号之前的可控测试窗口足够长。
第四,Agent-to-Agent 编排新链路。 "Hermes → phone-harness → 云手机"是一条过去并不存在的链路。Hermes 负责推理与决策,phone-harness 把决策转成云手机上的真实 UI 操作。这种"Agent 操作员"模式让单点 OAST 域名、多步社工链、跨平台信息收集都能全自动跑完。从 ATT&CK 视角看,这把 TA0009(Adversary Use of AI Tools)的可观测性降到了新低。
七、防御方启示与思考题
对蓝队来说,传统移动威胁模型需要加一条假设:"对手可能是 AI Agent,不是人。"行为分析系统需要把"Vision-based 自动化"和真实用户区分开来——具体方法包括:检查操作时间熵、检测 Vision OCR 错误特征("l" 被识别成 "1")、监控 adb 调试桥是否启用、检查 iPhone Mirroring 是否异常启动。2FA 体系需要从"凭据 + 设备"二元模型升级为"凭据 + 设备 + 行为签名"三元模型,因为单凭"是这台手机"已经不足够建立信任。
三道思考题:
- 如果攻击者用 phone-harness 控制云手机跑钓鱼,对端风控系统能不能区分?为什么?
- Vision OCR 识别错误有典型模式("0" vs "O"、"1" vs "l"),能不能用这一点反制 Agent 自动化?
- 企业 MDM 拦截 iPhone Mirroring 和 adb 调试桥的代价是什么,会损失哪些正常业务场景?
八、下载与使用
工具完全开源,使用方式如下:
素材出处
对这类 AI Agent 与移动端自动化工具感兴趣的读者,可以在 云栈社区 继续交流。