标签:# ADB

在后台隐形屏上替你操作 App:解构 Mika 的 VirtualDisplay 焦点隔离、本地 SPAKE2 配对与 PRoot 沙箱架构

随着大语言模型(LLM)与多模态模型(VLM)在推理与工具调用能力的飞跃,移动端操作系统上的“自主代理”(Mobile Agent)成为了极客圈最热门的方向之一。然而,长期以来市面上绝大多数 Android 端侧自动化方案——无论是早期的 AutoJS、Appium 脚本流派,还是近年来在学术界颇为火热的各类基于多模态截屏与无障碍服务的 Agent 实验项目——在真实日常使用中几乎都会沦为无法落地的“工程玩具”。其根本痛点在于:它们无一例外都要霸占手机的物理主屏幕。只要 Agent 开始执行任务,你的手机屏幕就会疯狂闪烁、按键自动翻滚、软键盘频繁弹出;你既不能回复微信,也不能浏览网页,稍有误触就会导致 Agent 的执行流彻底崩溃。

开源项目 Mika(由开发者 wangzan101 主导并完全开源)以一种极其惊艳的 Android 底层系统工程架构,彻底终结了这一痛点:它借助 AOSP 的虚拟显示(VirtualDisplay)技术在后台独立开辟出一块“看不见的虚拟屏”,结合 Android 14 引入的独立焦点隔离标志,让 Agent 在后台隐蔽静默地操作 App,而用户在主屏上的打字、滑屏与多任务切换完全不受丝毫干扰。更令人震撼的是,它彻底摒弃了繁琐的电脑连接与第三方特权工具,在手机内部以纯 Kotlin 实现了 mDNS 探测、TLS 1.3 握手与 SPAKE2 配对协议,仅凭本地无线调试即可完成免 Root 特权提权,甚至还在 Android 端侧深度内嵌了打满内核级补丁的 PRoot Linux 沙箱。在这篇文章中,我将深入其底层源码,全景拆解 Mika 如何在移动操作系统受限沙盒内构建起这套令人惊叹的工业级端侧 Agent 体系。