旧手机变身云手机:安卓 Termux 部署 OpenClaw-CN 保姆级教程
2026-02-10 00:00:00 # 分享篇

【保姆级教程】旧手机变身 AI 云手机:Termux 部署 OpenClaw-CN 终极攻略 (防卡顿+免审批+Root版)

📱 前言

家里吃灰的旧安卓手机,除了换不锈钢脸盆,还能做什么?
今天教大家利用 Termux + Ubuntu 环境,把旧手机改造成一台 OpenClaw 云手机节点。你可以通过 API 或网页远程控制它,执行自动化任务,甚至让它成为你的 AI Agent 手臂。

为什么要看这篇教程?
网上很多教程部署后会遇到以下“深坑”,本教程已全部填平:

  1. 卡顿发热:旧手机 CPU 跑不动高清流,导致死机。 -> 解决方案:独家防卡顿脚本 + 降级配置。
  2. ADB 报错:提示 Binder driver could not be opened,无法控制系统。 -> 解决方案:Selinux 宽容模式 + 正确的 ADB 重启姿势。
  3. 无法执行命令:提示 spawn /system/bin/sh ENOENT。 -> 解决方案:构建虚拟 Shell 路径映射。
  4. 审批流死循环:执行命令总要点确认。 -> 解决方案:免审批配置文件。

🛠️ 准备工作

  1. 硬件:安卓手机一台(建议 Android 10+)。
  2. Root 权限必须有 Magisk Root(这是控制手机的前提)。
  3. 软件:Termux (F-Droid版)、MT管理器。
  4. 环境:假设你已经安装好了 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)

痛点解决

  1. OpenClaw 找不到安卓的 /system/bin/sh
  2. 日志文件无限膨胀导致卡死。
  3. 进程优先级太高抢占系统资源。

👉 操作位置:手机 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 原生界面

  1. 一键启动 (./up)
    echo 'su -c "/data/local/ubuntu22/start.sh \"/root/run_services.sh\""' > ~/up
    chmod +x ~/up
    
  1. 一键停止 (./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
    
  1. 满血模式 (./boost) —— 如果要长期运行,建议配合散热背夹
    cat << 'EOF' > ~/boost
    #!/bin/bash
    echo "🔥 开启 CPU 满血模式 (去除温控)..."
    su -c "stop thermal-engine; stop thermald"
    echo "⚠️ 警告:请务必使用散热背夹,否则手机可能过热关机!"
    EOF
    chmod +x ~/boost
    

🏁 如何使用?

现在你的手机已经准备好了。

  1. 日常启动
    打开 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 并降低了分辨率。如果还卡,请购买一个手机散热背夹(几十块钱),这是物理定律,软件很难突破。

希望能帮到所有折腾旧手机的朋友!

上一页
2026-02-10 00:00:00 # 分享篇
下一页