Roubao
Android Automation Tool Based on Vision-Language Models
Install / Use
/learn @Turbo1123/RoubaoREADME
项目背景
2025 年 12 月,字节跳动联合中兴发布了「豆包手机助手」,一款能够自动操作手机完成复杂任务的 AI 助手。它能帮你比价下单、批量投简历、刷视频,甚至代打游戏。
首批 3 万台工程机定价 3499 元,上线当天即告售罄,二手市场一度炒到 5000+。
买不到?那就自己做一个。
于是有了肉包——一个完全开源的 AI 手机自动化助手。
为什么叫「肉包」?因为作者不爱吃素。🥟
与同类项目的对比
| 特性 | 肉包 | 豆包手机 | 其他开源方案 | |------|------|----------|--------------| | 需要电脑 | ❌ 不需要 | ❌ 不需要 | ✅ 大多需要 | | 需要购买硬件 | ❌ 不需要 | ✅ 需要 3499+ | ❌ 不需要 | | 原生 Android 实现 | ✅ Kotlin | ✅ 原生 | ❌ Python | | 开源 | ✅ MIT | ❌ 闭源 | ✅ 开源 | | Skills/Tools 架构 | ✅ 完整 | ❓ 未知 | ❌ 无 | | UI 设计 | ⭐⭐⭐½ | ⭐⭐⭐⭐ | ⭐⭐ | | 自定义模型 | ✅ 支持 | ❌ 仅豆包 | ✅ 部分支持 |
我们解决了什么问题?
传统的手机自动化方案痛点:
- 必须连接电脑运行 ADB 命令
- 需要部署 Python 环境和各种依赖
- 只能在电脑端操作,手机必须通过数据线连接
- 技术门槛高,普通用户难以使用
肉包的解决方案:
一个 App,装上就能用。无需电脑、无需数据线、无需任何技术背景。
打开 App → 配置 API Key → 说出你想做的事 → 完成。
为什么选择肉包?
原生 Android 实现,不是 Python 脚本的封装
市面上几乎所有手机自动化开源项目(包括阿里的 MobileAgent)都是 Python 实现,需要:
- 在电脑上运行 Python 脚本
- 手机通过 USB/WiFi ADB 连接电脑
- 截图通过 ADB 传输到电脑,处理后再把操作指令传回手机
肉包完全不同。
我们用 Kotlin 重写了整个 MobileAgent 框架,原生运行在 Android 设备上:
- 截图、分析、执行全部在手机本地完成
- 无需电脑中转,延迟更低
- 利用 Shizuku 获得系统级权限,而非繁琐的 ADB 命令
为什么需要 Shizuku?
Android 系统出于安全考虑,普通 App 无法:
- 模拟用户点击、滑动屏幕
- 读取其他 App 的界面内容
- 执行
input tap、screencap等系统命令
传统方案需要连接电脑执行 ADB 命令。而 Shizuku 是一个优雅的解决方案:
- 通过无线调试或电脑 ADB 启动一次 Shizuku 服务
- 之后普通 App 就可以获得 ADB 级别的权限
- 无需 Root,无需每次都连接电脑
这让肉包可以直接在手机上执行截图、点击、输入等操作,真正实现「一个 App 搞定一切」。
类 Claude Code 的 Tools/Skills 双层架构
受 Claude Code 架构启发,肉包实现了 Tools + Skills 双层 Agent 框架:
用户: "帮我点份外卖"
│
▼
┌─────────────┐
│ SkillManager │ ← 意图识别
└─────────────┘
│
┌────┴────┐
│ │
▼ ▼
🚀 快速路径 🤖 标准路径
(Delegation) (GUI 自动化)
│ │
▼ ▼
直接 DeepLink Agent 循环
打开小美 AI 操作美团 App
Tools 层(原子能力)
底层工具集,每个 Tool 完成一个独立操作:
| Tool | 功能 |
|------|------|
| search_apps | 智能搜索已安装应用(支持拼音、语义) |
| open_app | 打开应用 |
| deep_link | 通过 DeepLink 跳转到 App 特定页面 |
| clipboard | 读写剪贴板 |
| shell | 执行 Shell 命令 |
| http | HTTP 请求(调用外部 API) |
Skills 层(用户意图)
面向用户的任务层,将自然语言映射到具体操作:
| Skill | 类型 | 描述 | |-------|------|------| | 点外卖(小美) | Delegation | 直接打开小美 AI 让它帮你点 | | 点外卖(美团) | GUI 自动化 | 在美团 App 上一步步操作 | | 导航(高德) | Delegation | DeepLink 直达高德搜索 | | 生成图片(即梦) | Delegation | 打开即梦 AI 生成图片 | | 发微信 | GUI 自动化 | 自动操作微信发消息 |
两种执行模式:
-
Delegation(委托):高置信度匹配时,直接通过 DeepLink 打开有 AI 能力的 App(如小美、豆包、即梦),让它们完成任务。快速、一步到位。
-
GUI 自动化:没有 AI 能力的 App(如美团、微信),通过传统的截图-分析-操作循环完成。Skill 会提供操作步骤指导,提高成功率。
核心特性
🤖 智能 AI Agent
- 基于先进的视觉语言模型(VLM),能够"看懂"屏幕内容
- 自然语言指令,说人话就能操作手机
- 智能决策,根据屏幕状态自动规划下一步操作
🎨 精心设计的 UI
这可能是所有手机自动化开源项目中 UI 做得最好看的。
- 现代化 Material 3 设计语言
- 流畅的动画效果
- 深色/浅色主题自适应
- 精心设计的首次使用引导
- 完整的中英文双语支持
🔧 高度可定制
- 支持多种 VLM:阿里云通义千问、OpenAI GPT-4V、Claude 等
- 预设 API 服务商:阿里云、OpenAI、OpenRouter 一键切换
- 从 API 动态获取可用模型列表,支持模糊搜索
- 可配置自定义 API 端点,支持本地模型(Ollama、vLLM 等)
🔐 安全保护
- API Key 使用 AES-256-GCM 加密存储
- 检测到支付、密码等敏感页面自动停止
- 任务执行全程可视,悬浮窗显示进度
- 随时可以手动停止任务
- 可选的云端崩溃上报(可在设置中关闭)
🔓 Root 模式支持
当 Shizuku 以 Root 权限运行时,肉包可以启用 Root 模式:
- Root 模式:解锁更多系统级操作能力
- su 命令:允许执行
su -c命令(需谨慎使用) - 自动检测:自动检测 Shizuku 权限等级(ADB/Root),非 Root 环境下该选项为灰色不可用
快速开始
前置要求
- Android 8.0 (API 26) 或更高版本
- WiFi 网络 - Shizuku 无线调试依赖 WiFi 连接,确保手机已连接 WiFi
- Shizuku - 用于获取系统级控制权限
- VLM API Key - 需要视觉语言模型的 API 密钥(如阿里云通义千问)
安装步骤
1. 安装并启动 Shizuku
Shizuku 是一个开源工具,可以让普通应用获得 ADB 权限,无需 Root。
启动方式(二选一):
无线调试(推荐,需 Android 11+)
- 进入
设置 > 开发者选项 > 无线调试 - 开启无线调试
- 在 Shizuku App 中选择"无线调试"方式启动
电脑 ADB
- 手机连接电脑,开启 USB 调试
- 执行:
adb shell sh /storage/emulated/0/Android/data/moe.shizuku.privileged.api/start.sh
2. 安装肉包
从 Releases 页面下载最新 APK 安装。
3. 授权与配置
- 打开肉包 App
- 在 Shizuku 中授权肉包
- ⚠️ 重要:进入设置页面,配置你的 API Key
获取 API Key
阿里云通义千问(推荐国内用户)
- 访问 阿里云百炼平台
- 开通 DashScope 服务
- 在 API-KEY 管理中创建密钥
OpenAI(需要代理)
- 访问 OpenAI Platform
- 创建 API Key
使用示例
帮我点个附近好吃的汉堡
打开网易云音乐播放每日推荐
帮我把最后一张照片发送到微博
帮我在美团点一份猪脚饭
打开B站看热门视频
技术架构
┌──────────────────────────────────────────────────────────────┐
│ 肉包 App │
├──────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ UI 层 (Compose) │ │
│ │ HomeScreen / Settings / History │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ┌────────────────────────▼────────────────────────────┐ │
│ │ Skills 层 │ │
│ │ SkillManager → 意图识别 → 快速路径/标准路径 │ │
│ │ ┌─────────────────────────────────────────────┐ │ │
│ │ │ 点外卖 │ 导航 │ 打车 │ 发微信 │ AI画图 │ ... │ │ │
│ │ └─────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ┌────────────────────────▼────────────────────────────┐ │
│ │ Tools 层 │ │
│ │ ToolManager → 原子能力封装 │ │
│ │ ┌─────────────────────────────────────────────┐ │ │
│ │ │ search_apps │ open_app │ deep_link │ clipboard │ │
│ │ │ shell │ http │ screenshot │ tap │ swipe │ type │ │
│ │ └─────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ┌────────────────────────▼────────────────────────────┐ │
│ │ Agent 层 │ │
│ │ MobileAgent (移植自 MobileAgent-v3) │ │
│ │ ┌───────────┬───────────┬───────────┬──────────┐ │ │
│ │ │ Manager │ Executor │ Reflector │ Notetaker│ │ │
│ │ │ (规划) │ (执行) │ (反思) │ (记录) │ │ │
│ │ └───────────┴───────────┴───────────┴──────────┘ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
│ ┌────────────────────────▼────────────────────────────┐ │
│ │ VLM Client │ │
│ │ Qwen-VL / GPT-4V / Claude │ │
│ └─────────────────────────────────────────────────────┘ │
│ │ │
├────────────────────────────┼────────────────────────────────┤
│ ▼ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ Shizuku │ │
│ │ System-level Control │ │
│ │ screencap │ input tap │ input swipe │ am start │ │
│ └─────────────────────────────────────────────────────┘ │
└──────────────────────────────────────────────────────────────┘
工作流程
用户输入指令
│
▼
┌─────────────────┐
│ Skills 匹配 │ ← 检查是否有对应的 Skill
└─────────────────┘
│
├── 高置信度 Delegation Skill ──▶ 直接 DeepLink 跳转 ──▶ 完成
│
▼
┌─────────────────┐
│ 标准 Agent 循环 │
└─────────────────┘
│
▼
┌──────────────────────────────────────────────┐
│ 1. 截图 - Shizuku screencap │
│ 2. Manager 规划 - VLM 分析当前状态 │
│ 3. Executor 决策 - 确定下一步操作 │
│ 4. 执行动作 - tap/swipe/type/open_app │
│ 5. Reflector 反思 - 评估操作效果 │
│ 6. 循环直到完成或安全限制 │
└──────────────────────────────────────────────┘
项目结构
app/src/main/java/com/roubao/autopilot/
├── agent/ # AI Agent 核心 (移植自 MobileAgent-v3)
│ ├── MobileAgent.kt # Agent 主循环
│ ├── Manager.kt # 规划 Agent
│ ├── Executor.kt # 执行 Agent
│ ├── ActionReflector.kt # 反思 Agent
│ ├── Notetaker.kt # 笔记 Agent
│ └── InfoPool.kt # 状态池
│
├── tools/ # Tools 层 - 原子能力
│ ├── Tool.kt # Tool 接口定义
│ ├── ToolManager.kt # 工具管理器
│ ├── SearchAppsTool.kt # 应用搜索
│ ├── OpenAppTool.kt # 打开应用
│ ├── DeepLinkTool.kt # DeepLink 跳转
│ ├── ClipboardTool.kt # 剪贴板操作
│ ├── ShellTool.kt # Shell 命令
│ └── HttpTool.kt # HTTP 请求
│
├── skills/ # Skills 层 - 用户意图
│ ├── Skill.kt # Skill 接口定义
│ ├── SkillRegistry.kt # Skill 注册表
│ └──
