在安卓手机上搭建 OpenClaw 完整教程
在安卓手机上搭建 OpenClaw
家里的旧手机,放着也是放着,既然现在 OpenClaw 这么火,就把旧手机利用起来呗,搭建一个在线的手机版 OpenClaw。
注意: 由于 2026.02.21 版本 Discord 存在编译问题,仍然安装 2026.02.19 版本。
---
一、开始前需要准备的东西
1. 核心容器:Termux
是什么: Android 上最强大的终端模拟器,它无需 Root 就能让你拥有一个迷你的 Linux 环境。
在本教程中的作用: 它是所有程序的"地基"。我们的 Ubuntu 系统、OpenClaw 项目都将运行在 Termux 之上。
2. 灵魂桥梁:Termux:API
(单纯为了体验 OpenClaw 的可以略过)
是什么: 这是一套"软硬结合"的组件。
- 手机上的 App: 负责像普通应用一样,向安卓系统申请"拍照"、"发短信"、"读取位置"的权限
- 终端里的 Package: 负责在代码层面发送指令
为什么必须装: 为了能让 OpenClaw 调用手机硬件。普通的 Linux 程序是无法直接调用安卓摄像头的,Termux:API 就是这个桥梁。
流程: OpenClaw (代码) → Termux 终端命令 → Termux:API (App) → 安卓系统 → 摄像头
3. 兼容性救星:Ubuntu (proot-distro)
是什么: 通过 proot 技术在 Termux 内部运行的一个完整的 Ubuntu 22.04/24.04 操作系统。
为什么不用原生 Termux 跑? 原生 Termux 是安卓环境(Bionic Libc),很多 AI 依赖库(如 PyTorch, Numpy, 甚至 bun)无法直接安装或报错。
结论: 在 Ubuntu 容器里跑 OpenClaw,兼容性最好。
---
⚠️ 重要:SystemError 13 问题
我们有个绕不过去的问题需要解决,就是在安装好 OpenClaw,输入 openclaw onboard 指令后,弹出的 SystemError 13 错误的问题。这完全是 Android 10/11 之后的隐私保护机制导致的。
原因分析:
Node.js 启动时,习惯性地调用底层的 uv_interface_addresses 函数,试图读取 /proc/net/ 目录下的文件,或者通过 Netlink 套接字来获取你手机的网络接口信息(比如 IP 地址、子网掩码、MAC 地址)。
为了防止流氓 APP 通过读取唯一的 MAC 地址来追踪用户的隐私,在 Android 10+ 的内核中彻底封锁了普通应用(包括 Termux)读取这些底层网络信息的权限。
结果: Node.js 伸手去拿数据,手被安卓系统"打"了一下,于是抛出了 SystemError 13 并直接崩溃。
后面会详细讲解怎么解决这个问题。
---
二、Termux 和 Ubuntu 的安装
1. 安装 Termux
GitHub 官方下载地址: https://github.com/termux/termux-app/releases/tag/v0.118.3
如果不知道下载哪个版本,问一下 AI,告诉 AI 你的手机 CPU 型号即可。例如:
- 红米 Turbo 5 Max:选择 termux-app_v0.118.3+github-debug_arm64-v8a.apk
注意: 网传千万不要从 Google Play 上进行安装,说是早已不在 Google Play 上更新
安装完成后,请根据第一部分的提示,给予 Termux "后台弹出界面"、"自启动" 和 "无限制省电策略" 权限。
2. 安装 Termux:API
GitHub 官方下载地址: https://github.com/termux/termux-api/releases/tag/v0.53.0
下载:termux-api-app_v0.53.0+github.debug.apk
核心配置:手动授予权限
安装完 APP 只是第一步,默认情况下它没有任何权限。我们需要手动把它的嘴巴和耳朵"解封"。
操作路径: 设置 → 应用设置 → 应用管理 → 搜索 API → 找到 Termux:API
权限全开: 点开"权限管理",把相机、麦克风、位置信息、存储等所有你希望 OpenClaw 能调用的权限,全部改为"始终允许"或"仅在使用中允许"。
如果不给相机权限,OpenClaw 以后想看世界的时候就是瞎的。
3. 更新系统并安装核心组件
复制并执行以下命令(遇到询问 Do you want to continue? [Y/n] 一律输入 y 回车):
# 更新所有软件包
pkg update -y && pkg upgrade -y
安装 Ubuntu 管理器、API 桥接工具和常用工具
不想体验软硬件连接可不下载 termux-api
pkg install proot-distro termux-api -y
- proot-distro: 我们在安卓上跑 Ubuntu 的神器
- termux-api: 命令行端的接口,配合手机上装的 APP 使用(软硬件连接)
4. 安装 Ubuntu
现在,我们要在 Termux 里"套娃"安装一个完整的 Ubuntu 系统。
步骤 3.1:一键安装 Ubuntu
proot-distro install ubuntu
系统会自动下载 Ubuntu 的文件系统(Rootfs),解压并配置。这个过程取决于网速,通常 1-3 分钟即可完成。
步骤 3.2:登录 Ubuntu
安装完成后,执行命令进入 Ubuntu:
proot-distro login ubuntu
观察提示符变化:
- 登录前(Termux):~ $
- 登录后(Ubuntu):root@localhost:~#
只要看到 root@localhost,恭喜你,你已经处于 Ubuntu 系统内部了!
---
三、Ubuntu 内部环境配置
现在我们在 Ubuntu 内部。虽然是新系统,但它是"裸机",什么都没有。我们需要安装 Node.js 和编译工具,因为 OpenClaw 是基于 Node.js 开发的。
步骤 4.1:更新 Ubuntu 的软件源
apt update && apt upgrade -y
如果觉得慢,可以手动换清华源
步骤 4.2:安装 Node.js 和基础工具
OpenClaw 需要 Node.js 环境。我们直接安装:
# 安装 Node.js, npm, git, 以及编译需要的工具链
apt install curl git build-essential python3 -y
因为在 Ubuntu (即使是 22.04 或 24.04) 中,直接运行 apt install nodejs 安装的通常是比较旧的版本(比如 v12, v18 等),这往往无法满足 OpenClaw 或其他新 AI 项目的依赖需求,所以需要添加 Node.js 源:
curl -fsSL https://deb.nodesource.com/setup_24.x | bash -
正式安装 Node.js: 源添加好了,现在用 apt 安装的就是新版了。
apt install nodejs -y
步骤 4.3:验证安装
检查一下是否安装成功:
node -v
npm -v
如果输出了版本号(例如 v24.x.x 或更高),说明环境准备就绪。
进阶小技巧:设置快捷指令
每次打开 Termux 都要输入 proot-distro login ubuntu 太麻烦了。我们要设置一个快捷指令,以后输入 u 就能进 Ubuntu。
操作方法:
1. 输入 exit 退回到 Termux 原生界面(看到 ~ $ 才是退出来了)
2. 执行以下命令创建快捷方式:
# 在 Termux 的配置文件里加个别名为"u"
echo "alias u='proot-distro login ubuntu'" >> ~/.bashrc
让配置立即生效
source ~/.bashrc
测试: 现在,你只需要在 Termux 里输入 u 并回车,就能瞬间穿越到 Ubuntu 系统了!
---
四、安装 OpenClaw 小龙虾
npm install -g openclaw@2026.02.19
重要: 安装完成不要运行
openclaw onboard!因为配置到最后,你会发现报错 SystemError 13,也就是权限问题,很多厂商在这都不会给权限。文章前面已经讲过这个问题的原因,就不多描述,咱只说怎么绕过去。
这一部分是整个教程最核心、最"极客"的地方。普通人装到这里通常会因为 Android 的系统限制(SystemError 13)而放弃,而我们将通过"打补丁"和"搭建桥梁"来完美解决它。
补充: 如果在运行
npm install -g openclaw@2026.02.19时遇到以下报错:
> npm error A git connection error occurred…… >> npm error code 128
需要运行一段命令(问 AI 解决方法)
---
五、解决 SystemError 13 问题
这是在安卓手机上运行 Node.js 后端最关键的一步。由于 Android 10+ 禁止普通应用读取 /proc/net(网络接口信息),OpenClaw 启动时会直接报错崩溃。我们需要创建一个"假的"接口信息来骗过它。
步骤 5.1:创建补丁文件
我们要在一个固定的地方存放这个补丁脚本。
# 创建配置目录
mkdir -p /root/.openclaw
创建并编辑补丁文件
nano /root/.openclaw/bionic-bypass.js
步骤 5.2:写入补丁代码
此时已经通过 nano 打开了一个编辑器,在打开的编辑器中,完整复制以下代码并粘贴进去(在编辑器中长按屏幕粘贴):
const os = require('os');
const originalNetworkInterfaces = os.networkInterfaces;
os.networkInterfaces = function() {
try {
const interfaces = originalNetworkInterfaces.call(os);
if (interfaces && Object.keys(interfaces).length > 0) {
return interfaces;
}
} catch (e) {}
return {
lo: [{
address: '127.0.0.1',
netmask: '255.0.0.0',
family: 'IPv4',
mac: '00:00:00:00:00:00',
internal: true,
cidr: '127.0.0.1/8'
}]
};
};
跟着我做: 先 Ctrl+O → 键盘回车 → Ctrl+X
步骤 5.3:配置环境变量(让补丁永久生效)
我们需要告诉 Node.js:每次启动任何程序前,先加载这个补丁。
# 将环境变量写入 .bashrc
echo 'export NODE_OPTIONS="--require /root/.openclaw/bionic-bypass.js"' >> ~/.bashrc
让配置立即生效
source ~/.bashrc
---
六、启动 OpenClaw
# 启动 openclaw 配置
openclaw onboard
配置完成之后,如果卡在 completed 界面,按 Ctrl+C,然后输入:
openclaw gateway --verbose
配对聊天软件
如果你在前面设置好了聊天软件的 BOT,现在只要配对就行了。
这里要说一下 Termux 的技巧,如何多开对话窗口:
- 按 Ctrl+B 再按 "
- 你会发现下面多了一个窗口
- 打开的这个窗口是 Termux 的窗口,所以需要输入前面设置好的 u 进入 Ubuntu 系统
- 输入配对指令 openclaw pairing telegram XXXX
完成配对后就可以愉快的对话啦!!!
---
七、最后几个小问题
模型用什么?
当然是 GLM、Minimax 的 coding plan 了,量大、管饱。一个月跑了 4.5 亿 TOKEN,坐等春节 GLM 5 和 MINIMAX 2.2 了。
就这还没算上用 GitHub Copilot 和 Google Antigravity 用掉的 TOKEN,算一算总的能上 7 个亿的 TOKEN。
有没有白嫖的模型?
有的!GitHub Copilot 免费体验 Pro 版 1 个月,可以体验最新模型,有 Claude Opus 4.6、GPT 5.2、Gemini 3 Pro。
不知道是不是 BUG,1月20日免费体验1个月,到1月底的时候基本就用完了(量一般),但是2月1日重置了使用量,所以约等于是可以白嫖2个月。
关于手机问题
只要是能跑安卓系统的都行(Android 11 以上)
安装的时候遇到问题咋办?
复制 → 粘贴 → 问 AI
Termux 耗电量
Termux 耗电量不大,基本排名靠后
用途
能调用摄像头、电话就很有搞头了,很多时候都可以充当家里摄像头了!
---
八、进阶玩法
既然是 Ubuntu 系统了,当然还能装 OpenCode、Claude Code 之类的编程 CLI 了。同时 OpenClaw 里有个 Skill 叫 coding-agent,就是专门调用这几个编程 CLI 的。
npm i -g opencode-ai@latest
---
参考文章: https://www.cnbugs.com/







