实战

用 Codex 控制真手机:iPhone 镜像 + Android ADB 双方案实战

2026/9/264 分钟阅读

前置认知:为什么是 Phone Harness?

Agent 操作电脑已经不算新鲜了。但操作手机——真正看见屏幕、点按钮、填文字、交结果——依然是少数派的领域。

Phone Harness(GitHub: ShawnPana/phone-harness,2.7k stars,MIT 协议)是这条链路的开源实现。它不需要在手机上装 App,也不越狱,而是靠两套机制:

  • iPhone:借用 macOS 的 iPhone 镜像功能,把手机画面变成 Mac 上的一个窗口,再用 OCR 识别文字坐标,模拟点击和滑动。
  • Android:通过无线 ADB 读取截屏和控件树,执行点击、滑动、输入。

核心逻辑就一句:观察屏幕 → 执行动作 → 再次观察 → 确认结果。每一步都要验证,不能盲飞。


方案一:iPhone 镜像方案(macOS)

环境准备

  • macOS Sequoia 或更高版本
  • 一部 iPhone(能完成镜像配对)
  • Python 3.12+
  • Codex 桌面端

第一步:安装 Phone Harness

git clone https://github.com/ShawnPana/phone-harness.git ~/.phone-harness
cd ~/.phone-harness
pip install -e .

安装完成后,phone-harness 命令应出现在 PATH 中。如果新开的终端报 command not found,检查 Python scripts 目录是否已加入 PATH。

第二步:注册为 Codex Skill

phone-harness skill > ~/.codex/skills/phone-harness/SKILL.md

更新仓库后,重新执行上述命令,确保 SKILL.md 是最新版本。

第三步:配置 macOS 系统权限(最容易踩坑)

Phone Harness 要做两件事:看屏幕 + 控制鼠标键盘。对应两个系统权限:

open "x-apple.systempreferences:com.apple.preference.security?Privacy_SystemSoftware"
open "x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility"
  • 辅助功能:勾选执行 Phone Harness 的终端 App(决定点击/键盘是否生效)
  • 屏幕与系统录音:勾选同一个终端 App(决定能否截取镜像画面)

权限设好后,完全退出并重新打开终端,再重新建立 iPhone 镜像。

第四步:跑 doctor 自检

phone-harness --doctor

依次检查 PyObjC、辅助功能、屏幕录制、镜像 App、窗口、截图、OCR。看到 FAIL 时从第一个开始修,后面的错误往往是连锁反应。

全部通过后,验证链路是否连通:

phone-harness <<'PY'
print(screen_info())
PY

能返回窗口边界,说明链路已通。

第五步:第一次任务——低风险小事

不要一上来就写复杂流程。先让 Codex 做一个简单任务,比如:

帮我在美团上找公司附近评分 4.5 以上的三家咖啡店,列出名称、距离和评分。

任务过程中你会遇到截图全黑、界面可见却无法点击、OCR 识别错误等问题。每一步 Codex 做完动作后,都会重新截图确认,这就是"每次只做一个动作,做完必须验证"的原则。


方案二:Android 无线 ADB 方案

环境准备

  • Android 11+ 设备(闲置机即可)
  • 电脑安装 adb(brew install android-platform-tools 或下载 Android SDK Platform Tools)
  • iPhone 和 Android 需在同一 Wi-Fi 下

第一步:开启无线调试

手机「设置 → 关于手机 → 连续点击版本号 7 次」开启开发者模式,然后进入「开发者选项」,开启 USB 调试 和 无线调试。

第二步:配对并连接

adb mdns services
adb pair 手机IP:配对端口
adb connect 手机IP:连接端口
adb devices -l

配对端口和连接端口不同,以 adb mdns services 返回的真实地址为准,不要照抄示例。

第三步:注册 Skill 并验证

phone-harness skill > ~/.codex/skills/phone-harness/SKILL.md
phone-harness --platform android

状态返回 ready、能读出当前 App 和控件后,再实际点击并重新读取页面,才算"看"和"动"都接通。

第四步:中文输入特殊处理

原生 adb shell input text 主要支持 ASCII。如需输入中文,安装 ADBKeyBoard:

adb install ADBKeyBoard.apk
adb shell ime set com.android.adbkeyboard/.AdbIME

写入前确认输入框已获得焦点,写入后重新读取页面,并切回原输入法。

第五步:验收测试——只读比价

让 Codex 分别打开淘宝和京东搜索某商品,读取标题、型号、价格,不加入购物车、不进入支付。遇到验证码或登录失效立即停止。这证明安卓设备能完成「打开 App → 搜索 → 读取结果 → 切换 App → 整理信息」的完整循环。


安全红线

  • ✅ 只读、比价、查天气——安全
  • ❌ 支付、身份认证、删除操作——必须人工确认
  • ❌ 不要对外开放 ADB 端口
  • ❌ 远程维护用 SSH,不用 ADB 直连公网

现状与展望

目前的效率还无法和电脑端命令行操作相比,截图识别有误差,偶发断线,点偏也是常有的事。但这条链路已经能跑通基本循环。

桌面端 Agent 功能趋近饱和之后,移动端必然成为下一块战场。Phone Harness 算是迈出了第一步,值得持续关注。

来源:今日头条 @长路寰宇《让Codex接管你的手机点外卖、玩游戏、刷抖音,手把手教你怎么搞》

资料最后核对日期:2026-09-26 · 内容整理自 CodexGuide 社区公开教程