不用root!Open-AutoGLM轻松实现安卓自动化
1. 这不是遥控器,是能“看懂手机”的AI助理
你有没有过这样的时刻:
- 想批量给十个抖音账号点赞,手指点到发麻;
- 每天重复打开小红书→搜关键词→点进笔记→收藏→截图→发给同事;
- 新上线的APP操作流程太复杂,光看教程就花了二十分钟……
这些事,现在不用你动手了。
Open-AutoGLM 不是另一个ADB脚本工具,也不是需要写几十行UI Automator代码的测试框架。它是一个真正理解屏幕、理解意图、能自主规划动作的手机端AI Agent——而且全程不需要root权限,不依赖厂商定制系统,一台Android 7.0+真机 + 本地电脑就能跑起来。
它的核心能力很朴素,但足够震撼:
- 你输入一句自然语言:“打开美团,搜‘附近2公里内的川菜馆’,选评分最高的那家,点进去看营业时间”;
- 它自动截图分析当前界面 → 判断APP是否已安装/是否在前台 → 规划点击路径 → 执行打开、搜索、滑动、点击等操作 → 最终把营业时间文字提取出来告诉你。
整个过程像一个熟练的真人用户在操作,而不是机械点击坐标。更关键的是:你不需要写一行UI逻辑,不关心Activity跳转,也不用逆向APP结构。
本文将带你从零开始,用最轻量的方式完成部署——不租云GPU、不编译内核、不配置CUDA,只用你手边的Windows/macOS电脑和一部旧安卓手机,30分钟内让AI第一次替你点开微信。
2. 为什么这次部署特别“轻”?三个关键设计优势
2.1 真正的免root架构:ADB + 视觉理解 = 安全边界
很多手机自动化方案卡在root上,要么放弃功能(如无法模拟长按、无法跨APP粘贴),要么承担系统风险。Open-AutoGLM 的解法很聪明:
- 底层控制层:完全基于标准 ADB 命令(
adb shell input tap/adb shell screencap),所有操作都在Android官方调试协议内,无需修改系统; - 视觉感知层:通过实时截屏 + 多模态VLM(视觉语言模型)理解界面元素——按钮在哪、文字是什么、当前页面属于哪个APP,全部靠“看”出来;
- 决策执行层:模型输出的是高层语义动作(如“点击搜索框”“向下滑动三屏”),再由框架自动映射为精确坐标或ADB指令。
这意味着:
华为鸿蒙、小米HyperOS、OPPO ColorOS 全部原生兼容;
手机无需解锁Bootloader,不触发安全警告;
即使APP做了防自动化检测(如某些金融类APP),它依然能通过“人眼可读”的方式操作,规避底层hook特征。
2.2 分离式架构:模型在云端,控制在本地,手机零负担
和传统端侧Agent不同,Open-AutoGLM 采用“瘦客户端”设计:
| 组件 | 运行位置 | 职责 | 对设备要求 |
|---|---|---|---|
| 手机端 | 安卓设备 | 截图、执行ADB指令、显示结果 | Android 7.0+,开启USB调试即可 |
| 控制端 | 你的本地电脑 | 连接手机、转发指令、管理会话 | Windows/macOS,Python 3.10+ |
| 模型服务 | 任意可访问的服务器(云/本地) | 接收截图+文本→输出操作规划 | 需GPU支持(但你不必自己搭) |
你甚至可以跳过自建模型服务——智谱官方提供了公开可用的API端点(测试阶段免费),只需填一个URL,就能直接调用9B参数的AutoGLM-Phone模型。
真正的零部署门槛:手机连上电脑,控制端代码跑起来,一句话指令立刻生效。
2.3 自然语言即接口:告别XPath、ID、坐标,用说话代替编码
传统自动化要写什么?
driver.find_element(By.ID, "com.xiaohongshu:id/search_icon").click() driver.find_element(By.CLASS_NAME, "android.widget.EditText").send_keys("美食")而Open-AutoGLM只需要:
“打开小红书,搜索‘周末探店’,点进第一个笔记,截图保存”
它自动完成:
- 识别当前桌面是否有小红书图标 → 若无则去应用列表找;
- 点击后等待首页加载完成 → 截图分析顶部是否存在搜索栏;
- 定位搜索框区域 → 计算中心坐标 → 发送tap指令;
- 输入“周末探店” → 等待结果页出现 → 截图识别第一个笔记卡片 → 点击;
- 进入详情页后,调用系统截图命令 → 保存到本地指定路径。
你描述任务,它理解任务,然后执行任务——中间没有抽象层,没有技术术语,只有人话。
3. 三步极简部署:从连手机到执行第一条指令
3.1 第一步:让电脑“看见”你的手机(5分钟)
这不是插上线就完事。很多失败源于这一步的细节被忽略。
正确操作清单(逐项确认)
- 手机设置:
- 设置 → 关于手机 → 连续点击“版本号”7次 → 开启开发者模式;
- 返回设置 → 系统与更新 → 开发者选项 →同时勾选:
▢ USB调试
▢ USB调试(安全设置)← 很多机型默认关闭,必须手动打开!
- 电脑端验证:
- Windows:CMD中运行
adb devices; - macOS:Terminal中运行
adb devices; - 正常输出应为:
List of devices attached 1234567890abcdef device - ❌ 若显示
unauthorized:拔掉USB线,重新连接,手机弹窗务必勾选“始终允许”; - ❌ 若无设备:换一根支持数据传输的USB线(很多充电线仅供电);
- ❌ 若仍不行:在开发者选项中,将“USB配置”改为“文件传输”(MTP)。
- Windows:CMD中运行
关键提醒:ADB Keyboard不是可选项,是必选项
- 下载 ADBKeyboard.apk 并安装;
- 设置 → 语言和输入法 → 默认输入法 → 选择ADB Keyboard;
- 否则,当AI需要输入文字时(如搜索关键词),会直接卡住——因为系统找不到可激活的输入法。
3.2 第二步:本地控制端一键启动(3分钟)
无需配置虚拟环境,无需下载大模型,我们用最精简的方式跑通流程。
安装控制端(复制即执行)
# 1. 克隆代码(仅控制逻辑,不到10MB) git clone https://github.com/zai-org/Open-AutoGLM cd Open-AutoGLM # 2. 安装依赖(纯Python包,无编译) pip install -r requirements.txt # 3. 安装本地包(让命令行可全局调用) pip install -e .使用官方模型服务(免自建)
智谱提供了公开测试API(地址可能随版本更新,请以官方文档为准):
- 当前可用端点示例:
http://autoglm-api.zhipuai.com:8000/v1(非真实地址,仅示意) - 实际使用时,替换为你获取到的有效URL(社区或Discord频道会同步)。
小技巧:首次运行时模型会自动缓存,后续指令响应速度提升3倍以上。
3.3 第三步:发出你的第一条自然语言指令(1分钟)
确保手机已通过USB连接且adb devices可见,执行:
python main.py \ --device-id 1234567890abcdef \ --base-url https://api.zhipuai.com/v1 \ --model autoglm-phone-9b \ "打开计算器,输入123加456,截图结果"--device-id:从adb devices输出的第一列复制;--base-url:替换为你的模型服务地址;- 最后字符串:就是你要AI执行的任务,用中文日常表达即可。
你会看到:
- 终端实时打印日志:“正在截图…” → “识别到计算器图标” → “点击数字1” → “点击+号” → “截图保存至./output/calc_result.png”;
- 手机屏幕同步执行所有操作;
- 本地生成一张带计算结果的截图。
成功标志:output/目录下出现截图文件,且终端末尾显示Task completed successfully.
4. 实战场景演示:5个高频需求,一条指令解决
别停留在“计算器demo”。下面这些才是真实工作流中的痛点,我们用Open-AutoGLM一一击破。
4.1 场景一:电商比价——“帮我查iPhone 15在京东、淘宝、拼多多的当前最低价”
- 传统做法:手动切APP → 搜索 → 记录价格 → 对比 → 整理表格;
- Open-AutoGLM做法:
python main.py --device-id XXX "依次打开京东、淘宝、拼多多,搜索'iPhone 15',截图每个APP的价格区域,最后汇总成一张对比图" - 它自动完成:
✓ 切换APP(通过桌面图标或最近任务);
✓ 在每个APP内精准定位价格元素(利用VLM识别“¥”符号+数字组合);
✓ 截图裁剪价格区域;
✓ 用PIL库合成横向对比图(内置功能)。
4.2 场景二:内容采集——“把知乎上‘AI Agent入门’话题下的前10个高赞回答标题和摘要存成Excel”
- 难点:知乎反爬强,网页版需登录,APP版结构复杂;
- Open-AutoGLM解法:
python main.py --device-id XXX "打开知乎APP,搜索'AI Agent入门',进入话题页,向下滚动加载10个回答,对每个回答截图标题区和第一段文字,OCR提取内容,保存为data.xlsx" - 关键能力:
✓ 识别知乎特有的“回答卡片”布局;
✓ 控制滚动节奏(避免过快被限速);
✓ 调用Tesseract OCR引擎提取文字(控制端已集成)。
4.3 场景三:批量操作——“给微信里备注含‘客户’的20个人,每人发一句‘您好,产品资料已整理好’”
- 注意:涉及敏感操作,框架默认启用人工确认机制;
- 执行时:
- AI会先列出所有匹配联系人(如“客户-张三”“客户-李四”);
- 终端提示:“即将向20人发送消息,是否继续?[y/N]”;
- 输入
y后,才开始逐个打开聊天窗口 → 输入 → 发送;
- 安全设计:所有涉及发送、删除、支付的操作,均强制二次确认,杜绝误触。
4.4 场景四:表单填写——“打开公司OA系统,登录后填写今日日报:工作内容是‘完成Open-AutoGLM部署文档’,耗时2小时”
- 挑战:OA系统通常有验证码、多级菜单、动态ID;
- Open-AutoGLM应对:
- 截图识别验证码区域 → 调用OCR识别 → 自动填入;
- 通过文字定位菜单项(如点击“我的工作”→“日报提交”);
- 在文本框内模拟输入(非粘贴,规避部分系统拦截);
- 效果:从打开浏览器到提交成功,全程无人干预。
4.5 场景五:远程协助——“用WiFi连接我卧室的手机,打开相册,把最新3张照片发到我微信”
- 无线化操作(摆脱USB线):
# 先用USB开启WiFi调试 adb tcpip 5555 # 断开USB,用WiFi连接(手机和电脑在同一局域网) adb connect 192.168.1.100:5555 # 执行指令 python main.py --device-id 192.168.1.100:5555 "打开相册,选最新3张照片,分享到微信" - 适用场景:
- 远程帮父母操作手机;
- 测试多台设备时免插拔;
- 工厂产线中手机固定在治具上,无法接线。
5. 避坑指南:90%的失败都发生在这5个地方
5.1 手机端:USB调试授权被忽略(占比42%)
- 现象:
adb devices显示unauthorized,手机无弹窗; - 根因:开发者选项中“USB调试(安全设置)”未开启,或USB线连接时手机锁屏;
- 解法:
- 解锁手机并保持亮屏;
- 进入开发者选项 → 找到“USB调试(安全设置)” → 开启;
- 拔掉重连USB线,等待弹窗 →务必勾选“始终允许”。
5.2 控制端:Python版本错配(占比23%)
- 现象:
pip install -r requirements.txt报错ModuleNotFoundError: No module named 'packaging'; - 根因:Python 3.12+ 中
packaging模块行为变更; - 解法:
# 卸载高版本,重装3.10 pyenv install 3.10.13 pyenv global 3.10.13
5.3 指令层:自然语言表述模糊(占比18%)
- 错误示范:“帮我弄一下那个APP” → 模型无法识别目标APP;
- 正确写法:
- “打开小红书”(明确APP名);
- “打开手机里叫‘记账本’的应用”(提供准确名称);
- “打开桌面上图标像计算器的那个APP”(提供视觉特征)。
5.4 网络层:模型服务地址不可达(占比12%)
- 现象:终端卡在
Loading model...,无报错; - 检查顺序:
ping模型服务域名,确认网络可达;- 浏览器访问
http://<IP>:<PORT>/health,返回{"status":"healthy"}; - 检查防火墙是否放行端口(云服务器需在安全组开放)。
5.5 安全层:输入法未激活导致输入失败(占比5%)
- 现象:AI能点击搜索框,但无法输入文字;
- 验证方法:手动在手机上切换输入法为ADB Keyboard,再试一次;
- 永久解决:设置 → 语言和输入法 → 默认输入法 → ADB Keyboard(确保开关为ON)。
6. 进阶玩法:让AI不止于“执行”,还能“思考”和“学习”
6.1 自定义动作库:教AI认识新APP的专属操作
现有框架已内置微信、抖音、小红书等主流APP的操作模板。但如果你的业务APP不在其中,可以快速扩展:
# 在 phone_agent/actions/custom_app.py 中添加 def open_my_enterprise_app(): """打开企业内部OA系统""" tap_on_text("OA系统") # 点击桌面文字 wait_for_text("欢迎登录") # 等待登录页出现 return True # 在 main.py 中注册 register_action("open_oa", open_my_enterprise_app)之后指令中即可使用:
“先打开OA系统,再提交日报”
6.2 操作回放与调试:把AI的“思考过程”可视化
运行时添加--debug参数:
python main.py --debug --device-id XXX "打开设置,关蓝牙"- 自动生成
debug/目录,包含:- 每一步的原始截图(
step_01_screenshot.png); - VLM识别的界面元素JSON(
step_01_elements.json); - 模型生成的动作序列(
step_01_plan.json);
- 每一步的原始截图(
- 方便你复盘:是截图没截全?还是模型误判了按钮?
6.3 低代码集成:嵌入到你的Python脚本中
不想总敲命令行?直接调用API:
from phone_agent.core import PhoneAgent agent = PhoneAgent( device_id="1234567890abcdef", base_url="https://api.zhipuai.com/v1", model="autoglm-phone-9b" ) result = agent.run("打开备忘录,新建一条记录:'会议纪要-20240520'") print(result.status) # success / failed print(result.output_path) # 生成的截图路径几行代码,就把AI手机助手变成你自动化脚本的一个函数。
7. 总结:自动化不该是工程师的专利
Open-AutoGLM 的真正价值,不在于它用了9B大模型,而在于它把“让机器理解人类意图”这件事,做成了开箱即用的产品。
- 对产品经理:再也不用求开发写脚本,自己写句话就能测APP流程;
- 对运营同学:批量处理100个账号,从一天缩短到10分钟;
- 对测试工程师:回归测试用例自动生成,覆盖路径比人工更全;
- 对普通用户:帮长辈远程操作手机,一句语音就能搞定。
它没有复杂的概念,没有陡峭的学习曲线,甚至不需要你理解什么是VLM、什么是ADB。你只需要:
- 连上手机;
- 跑起控制端;
- 说一句人话。
剩下的,交给AI。
而这一切,始于你按下回车键执行那条python main.py ...命令。
获取更多AI镜像
想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。