在安卓手机上搭建 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 code 128
> npm error A git connection error occurred…… >

需要运行一段命令(问 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/

发表回复

后才能评论