android-agent

Polar Sponsor
爱发电 赞助
.NET 9.0

通过USB或网络使用GPT‑4o视觉控制真实Android手机,执行打开应用、输入、点击和自动化脚本等任务。

自动自动控制器

功能概述

自动自动控制器是一项面向实际任务的技能,主要用于将旧的Android手机插入到您的Mac/ PC;现在您的AI助手可以使用它;

核心要点

  • 将旧的Android放到抽屉里;
  • 把它连接到任何运行的机器上。
  • 它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

使用与执行

使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

结果检查与注意事项

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

android-agent — 由 AI 驱动的 Android 手机控制工具

将你的旧 Android 手机接入 Mac/PC。现在,你的 AI 助手即可操控它。

抽屉里躺着一台闲置的 Android 手机?将其连接至任意运行 OpenClaw 的设备——无论是你的网关(如 Mac Mini)、树莓派(Raspberry Pi)或其他兼容设备。你的 AI 现在可以打开应用、点击按钮、输入文字,并在真实手机上完成各类任务:叫一辆出租车、下单外卖、查看银行 App —— 凡是你用拇指能做的事,它都能代劳。

工作原理

AI Agent 通过截图获取手机屏幕画面,据此决定需点击、输入或滑动的位置,并借助 ADB 执行对应操作。底层采用 DroidRun 框架,结合 GPT-4o Vision 进行视觉理解与决策。

┌─────────────┐    screenshots    ┌──────────────┐    ADB commands    ┌─────────────┐
│  GPT-4o     │◄─────────────────│  DroidRun    │──────────────────►│  Android    │
│  Vision     │─────────────────►│  Agent       │◄──────────────────│  Phone      │
│             │   tap/type/swipe  │              │    screen state    │             │
└─────────────┘                   └──────────────┘                    └─────────────┘

两种运行模式

直连模式(Direct Mode)

Android 手机通过 USB 直接接入 OpenClaw 网关设备(如 Mac Mini 或树莓派)。无需任何网络配置。

[Gateway Machine] ──USB──► [Android Phone]

节点模式(Node Mode)

Android 手机接入 Mac Mini、树莓派或任意 OpenClaw 节点设备;网关通过网络远程控制该节点,进而操控手机。

[Gateway] ──network──► [Mac Mini / Pi node] ──USB──► [Android Phone]

在节点模式下,需通过 TCP/WiFi 启用 ADB 连接,使节点可转发命令。

快速开始(3 步)

1. 启用 USB 调试

在你的 Android 手机上执行以下操作:

  • 进入 设置 → 关于手机
  • 连续点击 版本号 7 次,以启用开发者选项
  • 进入 设置 → 开发者选项
  • 启用 USB 调试

2. 连接设备并安装依赖

# 通过 USB 连接手机后执行:
pip install -r requirements.txt
adb devices  # 验证设备是否识别成功 — 若提示授权,请在手机端确认

3. 运行首个任务

export OPENAI_API_KEY="sk-..."
python scripts/run-task.py "打开设置并启用深色模式"

仅此而已。脚本会自动处理所有前置操作:唤醒屏幕、解锁设备、保持屏幕常亮,并执行你指定的任务。

它能做什么?

📱 日常生活

python scripts/run-task.py "为前往机场叫一辆 Uber"
python scripts/run-task.py "为明天早上 6 点设置闹钟"
python scripts/run-task.py "在 PhonePe 中查看我的银行余额"
python scripts/run-task.py "打开 Google 地图,导航至最近的咖啡店"

💬 消息通信

python scripts/run-task.py "向妈妈发送一条 WhatsApp 消息,告知我将迟到"
python scripts/run-task.py "读取我最新的短信内容"
python scripts/run-task.py "打开 Telegram 并检查未读消息"

🛒 购物

python scripts/run-task.py "打开 Amazon,搜索价格低于 2000 卢比的无线耳机"
python scripts/run-task.py "将牛奶和面包加入 Instamart 购物车"

📅 效率办公

python scripts/run-task.py "打开 Google 日历,查看明天的日程安排"
python scripts/run-task.py "在 Google Keep 中新建一条笔记:购买杂货"

🎵 娱乐休闲

python scripts/run-task.py "在 Spotify 上播放我的 Discover Weekly 歌单"
python scripts/run-task.py "打开 YouTube,搜索 lo-fi 学习音乐"

⚙️ 设置与配置

python scripts/run-task.py "启用深色模式"
python scripts/run-task.py "连接我家的 WiFi 网络"
python scripts/run-task.py "启用请勿打扰模式"
python scripts/run-task.py "关闭蓝牙"

📸 实用工具

python scripts/run-task.py "截取一张屏幕截图"
python scripts/run-task.py "打开相机并拍摄一张照片"
python scripts/run-task.py "清除全部通知"

环境变量

变量 是否必需 说明
OPENAI_API_KEY 是 GPT-4o Vision 所需的 API 密钥
ANDROID_SERIAL 否 设备序列号。若仅连接一台设备,则自动检测
ANDROID_PIN 否 用于自动解锁的手机 PIN/密码。若未设置,则跳过解锁步骤
DROIDRUN_TIMEOUT 否 任务超时时间(单位:秒,默认值为 120)

详细配置说明

直连模式(USB)

  1. 安装 ADB:

    # macOS
    brew install android-platform-tools
    
    # Ubuntu/Debian
    sudo apt install android-tools-adb
    
    # Windows
    # 从 https://developer.android.com/tools/releases/platform-tools 下载
    
  2. 通过 USB 连接手机并验证:

    ./scripts/connect.sh usb
    
  3. 在手机上安装 DroidRun Portal APK:

    • 从 DroidRun 发布页下载
    • 或通过 sideload 安装:adb install droidrun-portal.apk
    • 在手机上打开 Portal 应用,并授予无障碍权限(Accessibility Service)
  4. 安装 Python 依赖:

    pip install -r requirements.txt
    

节点模式(远程 WiFi/TCP)

  1. 在节点设备(Mac Mini、树莓派等)上,通过 USB 连接手机并启用 WiFi ADB:

    adb tcpip 5555
    adb connect :5555
    
  2. 从网关设备连接至节点的 ADB:

    # 若使用 SSH 隧道:
    ssh -L 15555::5555 user@node-ip
    export ANDROID_SERIAL="127.0.0.1:15555"
    
    # 或直接使用 WiFi(同一局域网内):
    ./scripts/connect.sh wifi 
    
  3. 照常运行任务 —— 脚本将依据 ANDROID_SERIAL 环境变量所指向的目标执行操作。

DroidRun Portal 配置

必须在手机上安装并运行 DroidRun Portal APK。该应用提供无障碍服务,使 DroidRun 能够读取屏幕内容并交互 UI 元素。

  1. 安装 APK(从 DroidRun GitHub Releases 下载)
  2. 打开 Portal 应用
  3. 在系统提示时授予 无障碍服务 权限
  4. 保持其在后台持续运行

脚本参考

scripts/run-task.py — 主执行脚本

# 基础用法
python scripts/run-task.py "你的任务描述"

# 带参数用法
python scripts/run-task.py --timeout 180 "从 Play Store 安装 Spotify"
python scripts/run-task.py --model gpt-4o "打开 Chrome 并搜索天气"
python scripts/run-task.py --no-unlock "截取一张屏幕截图"
python scripts/run-task.py --serial 127.0.0.1:15555 "查看通知"
python scripts/run-task.py --verbose "打开设置"

可用参数:

参数 说明
goal 任务描述(位置参数,必需)
--timeout 超时时间(单位:秒;默认为 120,或由 DROIDRUN_TIMEOUT 环境变量指定)
--model 指定使用的 LLM 模型(默认为 gpt-4o)
--no-unlock 跳过自动解锁步骤
--serial 设备序列号(默认为 ANDROID_SERIAL 环境变量值,或自动检测)
--verbose 输出详细调试日志

scripts/connect.sh — 连接建立与状态验证

./scripts/connect.sh          # 自动检测 USB 设备
./scripts/connect.sh usb      # 显式启用 USB 模式
./scripts/connect.sh wifi 192.168.1.100  # 启用 WiFi/TCP 模式

scripts/screenshot.sh — 截图工具(基于 ADB screencap,稳定可靠)

DroidRun 内置截图功能在部分设备上可能失败。该脚本可绕过 DroidRun,直接通过 ADB 获取 PNG 格式截图。

# 默认保存至 /tmp/android-screenshot.png
./scripts/screenshot.sh

# 指定设备序列号与输出路径
./scripts/screenshot.sh 127.0.0.1:15555 /tmp/a03.png

也可通过 Python 脚本调用:

python scripts/run-task.py --screenshot --serial 127.0.0.1:15555 --screenshot-path /tmp/a03.png

scripts/status.sh — 设备状态查询

./scripts/status.sh
# 输出示例:
# 📱 Device: Samsung Galaxy A03 (SM-A035F)
# 🤖 Android: 11 (API 30)
# 🔋 Battery: 87%
# 📺 Screen: ON (unlocked)
# 🔌 Connection: USB
# 📦 DroidRun Portal: installed (v0.5.5)

常见问题排查

"no devices/emulators found"(未发现设备/模拟器)

  • 检查 USB 数据线(请使用支持数据传输的线缆,而非仅充电线)
  • 在手机端 USB 调试授权弹窗中确认授权电脑
  • 尝试执行 adb kill-server && adb start-server

"device unauthorized"(设备未授权)

  • 断开并重新连接 USB 线缆
  • 检查手机屏幕是否弹出授权对话框
  • 若无弹窗,可在开发者选项中选择“撤销 USB 调试授权”,再重新连接

任务执行过程中手机屏幕自动熄灭

  • 脚本已自动启用“保持唤醒”模式,但部分机型会覆盖该设置
  • 手动设置:设置 → 开发者选项 → 保持唤醒(充电时)

任务因弹窗/对话框阻塞而失败

  • 脚本会尝试自动关闭常见系统弹窗
  • 对于持续存在的弹窗,请先手动关闭,再重试任务
  • 使用 --verbose 参数可查看 Agent 当前看到的屏幕内容

WiFi ADB 在手机重启后断开

  • WiFi ADB 模式会在手机重启后重置,需重新通过 USB 启用
  • 先运行 ./scripts/connect.sh usb,再运行 ./scripts/connect.sh wifi

DroidRun Agent 行为异常或判断错误

  • 确保 DroidRun Portal 正在运行,且已启用无障碍服务
  • 关闭不必要的后台应用,降低屏幕界面复杂度
  • 先尝试一个简单任务,验证整体配置是否正常

PIN 自动解锁失败

  • PIN 输入键盘上各数字按键的坐标因设备型号及屏幕分辨率而异
  • 定位坐标方法:adb shell getevent -l,随后依次点击每个数字键
  • 部分设备可回退使用:adb shell input text
  • 通过 ANDROID_PIN 环境变量设置 PIN(切勿硬编码到代码中)

安全须知

  • ADB 授予设备完全控制权限 —— 仅连接你信任且拥有的设备
  • 截图将上传至你的 LLM 提供商(默认为 OpenAI)—— 注意避免屏幕上出现敏感内容(如银行 App、私人消息)
  • PIN 仅从环境变量读取 —— 不会写入任何文件或日志
  • WiFi ADB 未加密 —— 在不可信网络中,请改用 USB 连接,或通过 SSH 隧道封装
  • DroidRun Portal 需要无障碍权限 —— 这是一项高权限能力,请充分理解其作用范围

系统要求

  • Python 3.10+
  • ADB(Android Debug Bridge)
  • Android 8.0+ 设备,已启用开发者选项与 USB 调试
  • 手机已安装 DroidRun Portal APK
  • OpenAI API 密钥(需支持 vision 的 GPT-4o)
  • USB 数据线(非仅充电线)

⚠️ 安全注意事项

请使用专用测试设备,切勿使用主用手机。

  • 截图与屏幕文本将发送至 OpenAI。 Agent 所截取的每张截图均会上传至 GPT-4o 进行视觉分析。请勿在显示敏感信息(如银行 App、两步验证令牌、私密消息、医疗信息)的设备上运行本工具。只要内容出现在屏幕上,即会被上传至云端。
  • ANDROID_PIN 以环境变量形式存储。 尽管不会写入文件或日志,但任何可访问宿主机环境变量的用户均可读取。建议使用一次性、不与其他场景复用的测试 PIN,或自行承担相应风险。
  • 仅从官方渠道安装 DroidRun Portal。 APK 必须严格来自 DroidRun GitHub Releases,禁止从第三方网站 sideload。
  • ADB 授予设备完全控制权限。 结合无障碍权限,这相当于获得 root 级别控制权。仅连接你拥有并愿意暴露的设备。
  • WiFi ADB 未加密。 若在不可信网络中使用 TCP/WiFi 模式,请务必通过 SSH 隧道封装通信。

核心原则: 将已连接的手机视为“AI 专用工作设备”。不要保留个人账号登录态,不要在其上存储任何密钥或敏感信息。如果你不愿把一部已解锁的手机亲手交给陌生人,就不要将这项能力赋予它。

许可证

MIT — 详见 LICENSE 文件

相关专题

更多
Android语音播放功能实现方法
Android语音播放功能实现方法

实现方法有使用MediaPlayer实现、使用SoundPool实现两种。可以根据具体的需求选择适合的方法进行实现。想了解更多语音播放的相关内容,可以阅读本专题下面的文章。

2024.03.01

824

5

android重启应用的方法有哪些
android重启应用的方法有哪些

android重启应用有通过Intent、PendingIntent、系统服务、Runtime等方法。本专题为大家提供Android相关的文章、下载、课程内容,供大家免费下载体验。

2023.10.18

465

5

android权限限制怎么解开
android权限限制怎么解开

android权限限制可以使用Root权限、第三方权限管理应用程序、ADB命令和Xposed框架解开。详细介绍:1、Root权限,通过获取Root权限,用户可以解锁所有权限,并对系统进行自定义和修改;2、第三方权限管理应用程序,用户可以轻松地控制和管理应用程序的权限;3、ADB命令,用户可以在设备上执行各种操作,包括解锁权限;4、Xposed框架,用户可以在不修改系统文件的情况下修改应用程序的行为和权限。

2023.09.19

3917

7

android是什么系统
android是什么系统

Android是一种功能强大、灵活可定制、应用丰富、多任务处理能力强、兼容性好、网络连接能力强的操作系统。本专题为大家提供android相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.22

2247

5

android开发三大框架
android开发三大框架

android开发三大框架是XUtil框架、volley框架、ImageLoader框架。本专题为大家提供android开发三大框架相关的各种文章、以及下载和课程。

2023.08.14

842

4

OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

2026.10.16

0

10

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

2026.10.16

0

10

OpenJDK怎么部署Java应用
OpenJDK怎么部署Java应用

Java项目开发完成后,怎样部署到目标环境并正常运行?本专题介绍OpenJDK应用部署流程,涵盖运行环境准备、版本兼容检查、应用打包、启动参数配置和日志查看,帮助你理清部署前后的操作顺序,减少环境差异造成的运行问题。

2026.10.16

0

10

Revel框架模板渲染与表单验证
Revel框架模板渲染与表单验证

本专题围绕Revel框架视图层开发,介绍模板语法、变量输出、布局复用、表单提交、参数绑定与验证规则,帮助开发者完成安全规范的页面交互。

2026.10.16

0

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Excel 教程
Excel 教程

共162课时 | 44.3万人学习

Java 教程
Java 教程

共578课时 | 191.7万人学习

Uniapp从零开始实现新闻资讯应用
Uniapp从零开始实现新闻资讯应用

共64课时 | 9.6万人学习