Agentfy
免费试用
· #架构 #phone-farm #决策

为什么 Agentfy 跑在真 iPhone 上,而不是模拟器

模拟器检测是个移动靶子,真硬件不是。这是我们让每一个 Agentfy 宏都跑在物理 iPhone 上(通过 TrollStore)的原因。

作者:evil0ctal

构建 Agentfy 的时候,第一个架构岔路口现在看是显然的,但当时不是:用模拟器还是真硬件?

模拟器的吸引力很真实。按需 provisioning 实例、快照状态、确定性回放测试用例、不用买硬件就能横向扩展。Genymotion 整个公司都建立在这个上面。

我们选了真 iPhone。原因如下。

第三方 app 的问题

Phone farm —— Agentfy 最大的使用场景 —— 几乎都在操作运营方不拥有的 app。TikTok、小红书、银行 app、广告平台、交易所客户端。

这些 app 把模拟器检测当成头等对抗问题。采样时序、GL 指纹、传感器噪声本底、TLS 指纹、IORegistry 怪异、内核扩展存在性。整个团队的 KPI 就是”提高假用户的成本”。

模拟器把这个成本压回零。直到下一次检测更新发布,然后你又得从头重建。

真硬件完全绕开这个问题。一台跑着 Agentfy daemon 的 iPhone,跟你口袋里那台 iPhone 在每一个字节上都一样。TLS 指纹匹配、传感器噪声匹配、内核匹配。没有”破绽”可言。

诚实的代价

真硬件要花真钱。iPhone SE $200,iPhone 15 Pro $1000。无法按需分配。要物理存储、要充电、要网络。也不能 ssh 进去。

我们硬扛了这个成本,然后绕过几个点:

  • TrollStore + daemon 代替越狱。摩擦更低,对运营方实际使用自己设备来说,warranty 几乎不受影响。
  • 反向隧道 让每台设备主动向 dashboard 开一个 outbound WebSocket —— 不要端口转发,不要静态 IP。
  • VNC 镜像 让运营方的浏览器是唯一客户端;不用装客户端 app,不用担心版本漂移。

失去什么

主要是确定性。真设备有:

  • WiFi 质量波动。 AP 不稳定时 700ms 的截图 RPC 比有线模拟器的 50ms 感觉差得多。
  • 电池 + 散热影响。 烫的手机跑得慢;冷的手机从 sleep 唤醒要更长。
  • iOS 更新搅动。 每次 iOS 发版都是新的 debug 战场。

我们接受这三点 —— 因为另一个选项(在真正重要的 app 里被标成 bot)更糟。

收获什么

  • 没有反模拟器检测的军备竞赛。
  • 真设备 ID。 评估”这是不是有使用历史的真手机”的验证码挑战会得到 true-positive 的回答。
  • 多 app 真实感。 浏览器历史、相册、通讯录 —— 你在手机上放什么就在那里。
  • 真正的网络暴露。 同一 WiFi、同一运营商、同一地理位置。没有”什么都伪造”的配置。

如果你测自己的 iOS app 做 QA,Genymotion 或 Appium 完全够用。如果你在规模化运营 phone farm 或跑移动 AI 代理,真 iPhone 是唯一诚实的答案。


想试试?7 天免费试用。