旧手机变身云手机:安卓 Termux 部署 OpenClaw-CN 保姆级教程
2026-02-10 00:00:00 # 分享篇
【保姆级教程】旧手机变身 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 原生界面
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 原生界面
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 原生界面
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)echo 'su -c "/data/local/ubuntu22/start.sh \"/root/run_services.sh\""' > ~/up chmod +x ~/up
- 一键停止 (
./down) —— 包含深度清理,防止关掉程序后手机还烫手cat << 'EOF' > ~/down #!/bin/bash echo "🛑 正在执行深度清理..." # 杀进程 su -c "pkill -f openclaw-cn; pkill -f node; pkill -x sshd" # 断开 ADB su -c "adb disconnect" > /dev/null 2>&1 # 强制卸载挂载点 (防止系统 I/O 锁死) 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) —— 如果要长期运行,建议配合散热背夹cat << 'EOF' > ~/boost #!/bin/bash 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 并降低了分辨率。如果还卡,请购买一个手机散热背夹(几十块钱),这是物理定律,软件很难突破。
希望能帮到所有折腾旧手机的朋友!
