【保姆级教程】旧手机变身 AI 云手机:Termux 部署 OpenClaw-CN 终极攻略 (防卡顿+免审批+Root版)
📱 前言
家里吃灰的旧安卓手机,除了换不锈钢脸盆,还能做什么?
今天教大家利用 Termux + Ubuntu 环境,把旧手机改造成一台 OpenClaw 云手机节点。你可以通过 API 或网页远程控制它,执行自动化任务,甚至让它成为你的 AI Agent 手臂。
为什么要看这篇教程?
网上很多教程部署后会遇到以下“深坑”,本教程已全部填平:
- 卡顿发热:旧手机 CPU 跑不动高清流,导致死机。 -> 解决方案:独家防卡顿脚本 + 降级配置。
- ADB 报错:提示
Binder driver could not be opened,无法控制系统。 -> 解决方案:Selinux 宽容模式 + 正确的 ADB 重启姿势。
- 无法执行命令:提示
spawn /system/bin/sh ENOENT。 -> 解决方案:构建虚拟 Shell 路径映射。
- 审批流死循环:执行命令总要点确认。 -> 解决方案:免审批配置文件。
🛠️ 准备工作
- 硬件:安卓手机一台(建议 Android 10+)。
- Root 权限:必须有 Magisk Root(这是控制手机的前提)。
- 软件:Termux (F-Droid版)、MT管理器。
- 环境:假设你已经安装好了 Ubuntu 22.04 的容器(位于
/data/local/ubuntu22)。
第一步:构建“完美”引导脚本 (start.sh)
痛点解决:普通启动方式会导致 ADB 丢失系统权限(变成黑户)。此脚本使用 ctl.restart 配合 setenforce 0,确保 OpenClaw 拥有完整的系统控制权。
👉 操作位置:手机 Termux 原生界面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| su -c "cat << 'EOF' > /data/local/ubuntu22/start.sh #!/bin/sh MNT_PATH=\"/data/local/ubuntu22\" export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:\$PATH
# --- 核心修复:赋予 ADB 完整系统权限 --- if echo \"\$1\" | grep -q \"run_services\"; then echo \"[Boot] 正在修复 ADB 上下文...\" # 1. 宽容模式:允许 ADB 调用 Binder 驱动 setenforce 0 2>/dev/null # 2. 开启网络调试端口 setprop service.adb.tcp.port 5555 # 3. 正规重启 ADB:继承 init 进程的 Root 权限 setprop ctl.restart adbd sleep 3 fi
# --- 挂载系统目录 --- mount -o bind /dev \"\$MNT_PATH/dev\" 2>/dev/null mount -t devpts devpts \"\$MNT_PATH/dev/pts\" 2>/dev/null mount -t proc proc \"\$MNT_PATH/proc\" 2>/dev/null mount -t sysfs sysfs \"\$MNT_PATH/sys\" 2>/dev/null mount -o bind /sdcard \"\$MNT_PATH/mnt\" 2>/dev/null
# --- 进入系统 --- if [ -n \"\$1\" ]; then chroot \"\$MNT_PATH\" /bin/bash -c \"\$1\" else export HOME=/root export TERM=xterm-256color chroot \"\$MNT_PATH\" /bin/bash fi EOF"
su -c "chmod 777 /data/local/ubuntu22/start.sh"
|
第二步:构建服务管理脚本 (run_services.sh)
痛点解决:
- OpenClaw 找不到安卓的
/system/bin/sh。
- 日志文件无限膨胀导致卡死。
- 进程优先级太高抢占系统资源。
👉 操作位置:手机 Termux 原生界面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
| su -c "cat << 'EOF' > /data/local/ubuntu22/root/run_services.sh #!/bin/bash export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:\$PATH export HOME=/root
# 获取本机 IP CURRENT_IP=\$(ifconfig | grep -Eo 'inet (addr:)?([0-9]*\.){3}[0-9]*' | grep -v '127.0.0.1' | awk '{print \$2}' | sed 's/addr://g' | head -n 1)
echo \"========================================\" echo \"🚀 正在启动服务 (防卡顿 + 环境修复)...\" echo \"========================================\"
# --- 1. 环境欺骗 (修复 spawn ENOENT 报错) --- # OpenClaw 以为在安卓里,硬要找 /system/bin/sh # 我们创建一个软链接,骗它去用 Ubuntu 的 Bash mkdir -p /system/bin ln -sf /bin/bash /system/bin/sh ln -sf /bin/bash /bin/sh
# --- 2. 启动 SSH --- pkill -x sshd mkdir -p /run/sshd /usr/sbin/sshd
# --- 3. 连接 ADB --- adb disconnect > /dev/null 2>&1 sleep 1 adb connect 127.0.0.1:5555 > /dev/null 2>&1 sleep 2
# --- 4. 启动 OpenClaw (性能优化) --- pkill -f openclaw-cn > /dev/null 2>&1 pkill -f node > /dev/null 2>&1
# 优化策略: # nice -n 15: 降低优先级,把 CPU 让给系统,防止死机 # > /dev/null: 丢弃日志,减少闪存读写 nohup nice -n 15 openclaw-cn gateway --port 18789 > /dev/null 2>&1 &
echo \"✅ 启动完成,生成面板...\" sleep 2
# --- 状态检查 --- echo \"\" echo \"========= 📱 运行状态 =========" if adb devices | grep -w \"device\" > /dev/null; then echo \"🔹 [ADB] ✅ 正常 (已授权 Root)\" else echo \"🔹 [ADB] ❌ 异常 (Binder 驱动丢失?)\" fi
if pgrep -f \"openclaw-cn\" > /dev/null; then echo \"🔹 [OpenClaw] ✅ 运行中\" echo \" 👉 远程连接: ssh -p 2222 root@\$CURRENT_IP\" else echo \"🔹 [OpenClaw] ❌ 启动失败\" fi echo \"=================================\" EOF"
su -c "chmod 777 /data/local/ubuntu22/root/run_services.sh"
|
第三步:注入“免审批”配置 (config.yaml)
痛点解决:默认情况下 OpenClaw 执行任何命令都需要在飞书/网页端审批,非常麻烦。此配置将关闭所有询问,开启“上帝模式”。
👉 操作位置:手机 Termux 原生界面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| su -c "mkdir -p /data/local/ubuntu22/root/.openclaw" su -c "cat << 'EOF' > /data/local/ubuntu22/root/.openclaw/config.yaml # --- 基础修复 --- # 显式指定 Shell,防止找不到路径 shell: \"/bin/bash\"
# --- 权限控制 (上帝模式) --- auto_run: true safe_mode: \"off\" offline: true
# 关闭所有工具的审批 approvals: exec: enabled: false fs: enabled: false
# 允许执行任意命令 tools: exec: ask: false security: \"full\"
# --- 性能优化 (关键!) --- # 旧手机必须降级画质,否则必卡 stream: video: width: 960 # 分辨率降为 540P height: 540 fps: 15 # 锁帧 15 bitrate: 800k audio: enabled: false # 关闭音频推流 (防卡死) EOF"
|
第四步:封装一键管理指令
👉 操作位置:手机 Termux 原生界面
一键启动 (./up)
1 2 3
| echo 'su -c "/data/local/ubuntu22/start.sh \"/root/run_services.sh\""' > ~/up chmod +x ~/up
|
一键停止 (./down) —— 包含深度清理,防止关掉程序后手机还烫手
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| cat << 'EOF' > ~/down
echo "🛑 正在执行深度清理..."
su -c "pkill -f openclaw-cn; pkill -f node; pkill -x sshd"
su -c "adb disconnect" > /dev/null 2>&1
MNT="/data/local/ubuntu22" su -c "umount -l $MNT/dev/pts 2>/dev/null" su -c "umount -l $MNT/dev 2>/dev/null" su -c "umount -l $MNT/proc 2>/dev/null" su -c "umount -l $MNT/sys 2>/dev/null" su -c "umount -l $MNT/mnt 2>/dev/null" echo "✅ 服务已彻底停止。" EOF chmod +x ~/down
|
满血模式 (./boost) —— 如果要长期运行,建议配合散热背夹
1 2 3 4 5 6 7 8
| cat << 'EOF' > ~/boost
echo "🔥 开启 CPU 满血模式 (去除温控)..." su -c "stop thermal-engine; stop thermald" echo "⚠️ 警告:请务必使用散热背夹,否则手机可能过热关机!" EOF chmod +x ~/boost
|
🏁 如何使用?
现在你的手机已经准备好了。
- 日常启动:
打开 Termux,输入 ./up。
脚本会自动修复 ADB 权限,启动所有服务,并告诉你 SSH 连接地址。
2. 验证成功:
在电脑 OpenClaw 终端输入 adb shell am start -a android.settings.SETTINGS。
如果手机自动弹出了设置页面,说明一切完美!
3. 停止服务:
输入 ./down。
⚠️ 常见问题排查
Q: 还是提示 Binder driver could not be opened?
A: 确保你使用的是最新的 ./up 脚本。如果还不行,重启手机,先运行 ./up,不要自己手动去连 ADB。
Q: 执行命令提示 spawn ENOENT?
A: 我们的脚本里已经加了 ln -sf /bin/bash /system/bin/sh,重启服务 (./down -> ./up) 即可生效。
Q: 手机非常烫且卡顿?
A: 检查 config.yaml 里是否关闭了 Audio 并降低了分辨率。如果还卡,请购买一个手机散热背夹(几十块钱),这是物理定律,软件很难突破。
希望能帮到所有折腾旧手机的朋友!