解决 Android Termux 下 OpenClaw Browser Control 问题

在 Android 的 Termux 环境里跑 OpenClaw 时,如果启用了 browser control,经常会遇到浏览器无法启动、找不到 Chrome/Chromium、或者 browser tool 直接不可用的问题。

核心原因很简单:OpenClaw 需要一个 Linux 环境里的浏览器可执行文件,而 Android 系统自带的 Chrome 是普通 Android App,不是 Termux 里可以直接调用的 chromium 二进制程序。

解决办法是在 Termux 里安装 Chromium,并把它的路径写进 OpenClaw 配置。

安装 Chromium

Termux 的 Chromium 在 x11-repo 仓库里,先启用 X11 软件源:

Terminal window
pkg install x11-repo

然后安装 Chromium:

Terminal window
pkg install chromium

安装完成后,可以检查可执行文件路径:

Terminal window
command -v chromium-browser

正常情况下会输出:

/data/data/com.termux/files/usr/bin/chromium-browser

这个路径就是后面要写入 OpenClaw 配置的 executablePath

写入 OpenClaw 配置

创建配置目录:

Terminal window
mkdir -p ~/.openclaw

编辑配置文件:

Terminal window
nano ~/.openclaw/openclaw.json

写入下面内容:

{
"browser": {
"executablePath": "/data/data/com.termux/files/usr/bin/chromium-browser",
"headless": true,
"noSandbox": true
}
}

如果你已经有 ~/.openclaw/openclaw.json,不要直接覆盖整个文件,只需要把 browser 这一段合并进去。

配置含义

executablePath 用来告诉 OpenClaw 使用 Termux 安装的 Chromium,而不是去找系统 Chrome。

headless: true 表示用无界面模式启动浏览器。在 Android + Termux 场景里,这样最省事,不需要额外配置 X11、VNC 或图形桌面。

noSandbox: true 用来关闭 Chromium sandbox。Termux 运行在 Android 应用沙盒里,Chromium 默认 sandbox 经常无法正常工作,因此这里需要显式关闭。

验证 Chromium 是否可用

可以先在 Termux 里直接测试 Chromium headless 模式:

Terminal window
chromium-browser --headless --no-sandbox --disable-gpu --dump-dom https://example.com

如果能输出 HTML 内容,说明 Chromium 本身可以启动。

接着重启 OpenClaw,再重新调用 browser control。配置文件通常只在启动时读取,所以修改 openclaw.json 后建议完整重启一次 OpenClaw。

这样 OpenClaw 在 Android Termux 里就可以找到并启动 Chromium,browser control 相关功能也能正常工作了。