ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

极客指南:OpenClaw + Termux + Shizuku 实现安卓设备远程接管,把 endpoint 改到 TaoToken

极客指南:OpenClaw + Termux + Shizuku 实现安卓设备远程接管,把 endpoint 改到 TaoToken 1. 为什么要在安卓上折腾远程接管先说清楚这套方案到底解决什么问题。Android 13/14 之后Scoped Storage 把/sdcard/Android/data/这类目录锁得死死的普通文件管理器点进去就是一片空白自动化脚本想批量清理 App 缓存基本没戏。上 Root 呢Magisk 刷完银行 App 直接闪退KernelSU 也不是每台机器都能玩风险收益比太低。所以思路是绕开 Root用 ADB 无线调试接口拿一个 UID 2000shell级别的身份。这个身份在安卓权限体系里比普通 App 高一大截能读写/Android/data/能调pm、am、dumpsys这些系统命令但又不触发 SafetyNet 检测。Shizuku 就是干这个的——它把 ADB 的 shell 权限常驻在后台再通过rish脚本把命令代理过去。那 Termux 和 OpenClaw 各自扮演什么角色Termux 是落地入口提供完整的 Linux Shell 环境和 SSHD 服务让外部能连进来。OpenClaw 是执行大脑它跑在另一台设备或服务器上通过 SSH 连到 Termux把自然语言指令翻译成 shell 命令序列再经由rish提权执行。三者串起来就是一条「远程 AI Agent → SSH → Termux → rish → shell 权限」的完整链路。这套东西适合谁手里有闲置安卓机想当远程下载机/文件服务器的人需要批量管理多台设备 App 数据但不想 Root 的运维以及想拿安卓当 AI Agent 执行节点的玩家。不适合追求一键脚本的小白因为中间每一步都有坑下面逐个拆。核心检索词先摆出来OpenClaw 远程接管安卓、Termux Shizuku 提权、安卓免 Root 读写 Android/data、TaoToken endpoint 配置。你如果是搜这几个词进来的下面的步骤能直接跟做。我实测下来整条链路最脆弱的环节不是 Shizuku 本身而是国产 ROM 的杀后台策略和 Termux 的 wakelock 管理。这两点不处理好SSH 连上三分钟就断OpenClaw 的请求全部超时。所以第 4 节会重点讲保活配置。另外提前说一句模型 endpoint 这块我统一改到了 TaoToken 的 API 通道一个 Key 管所有模型调用省得在 OpenClaw 里配一堆 provider。具体怎么改在第 3 节有完整的 JSON 片段可以直接抄。2. TaoToken 前置准备与 Key 获取在动手配 OpenClaw 之前先把模型通道的事情解决掉。OpenClaw 这类 Agent 框架本身不带模型它需要你提供一个兼容 OpenAI 格式的 endpoint。你可以选择直连各家官方 API但那样每换一个模型就要改一次配置、管一套 Key设备多了很烦。TaoToken 的做法是提供一个统一的 API 通道Base URL 固定Key 固定模型 ID 按需切换。对 OpenClaw 这种需要频繁调用不同模型比如规划用强模型、执行用快模型的场景来说配置成本低很多。先注册账号。打开官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content 用邮箱注册即可。注册完进控制台找到 API Keys 页面新建一个 Key。这个 Key 只显示一次复制下来存好后面 OpenClaw 配置和 Termux 里的环境变量都要用。控制台地址是 https://taotoken.net/console API Keys 管理页在 https://taotoken.net/api-keys 。如果你只是想先验证模型通不通可以用模型对话页面 https://taotoken.net/chat 直接发一条消息测试不用写代码。Key 拿到后记下两个东西配置项值Base URLhttps://taotoken.net/apiAPI Key你刚创建的那串sk-开头的字符串Model ID按需选比如claude-sonnet-4-20250514、gpt-4o等注意 Base URL 不要加 UTM 参数API 调用地址就是干净的https://taotoken.net/api。OpenClaw 内部走的是 OpenAI 兼容协议所以完整请求路径是https://taotoken.net/api/v1/chat/completions这个在配置里通常只需要填 Base URL框架会自动补/v1/chat/completions。如果你用的是 Claude Code 或者需要 Anthropic 原生协议的场景TaoToken 也提供了对应的接入文档地址是 https://taotoken.net/doc 。Coding Plan 适合长期跑 Agent 任务的用户地址 https://taotoken.net/coding-plan 比按量计费划算。这里有个坑要提前说OpenClaw 的配置文件里base_url字段有的版本要求带/v1有的要求不带。我实测下来填https://taotoken.net/api然后让框架自己拼/v1/chat/completions是最稳的。如果你填了带/v1的有些版本会拼成/v1/v1/chat/completions直接 404。第 5 节会专门讲这个报错怎么排查。Key 存好后下一步是把它写进 OpenClaw 的配置。但在此之前得先把 Termux 和 Shizuku 的环境搭起来因为 OpenClaw 最终是通过 SSH 连到 Termux 执行命令的链路顺序不能乱。3. 可复制配置Termux Shizuku OpenClaw endpoint这一节是全文的核心所有配置片段都可以直接复制。按顺序来先 Termux 基础环境再 Shizuku 提权最后 OpenClaw 的 endpoint 配置。3.1 Termux 安装与 SSH 服务第一件事不要从 Google Play 装 Termux。Play 商店版本 API 级别被锁死很多包装不上。去 F-Droid 或者 GitHub Releases 下载最新版 APK。装完后打开先更新基础环境pkg update -y pkg upgrade -y pkg install openssh nano curl jq -y授予存储访问权限这样 Termux 能读到内部存储的导出文件termux-setup-storage设置 SSH 密码注意 Termux 的 SSH 不走系统用户体系密码是独立设置的passwd输入两遍密码。然后查看当前用户名后面 SSH 连接要用whoami输出类似u0_a410记下来。启动 sshdsshd默认监听 8022 端口。验证一下ss -tlnp | grep 8022看到 LISTEN 就对了。3.2 Shizuku 激活与 rish 导出去 Shizuku 的 GitHub 官方仓库下载 APK 安装。装完后进系统设置 → 关于手机 → 连点版本号开启开发者选项然后在开发者选项里打开「无线调试」。打开 Shizuku App它会引导你通过无线调试配对。按提示操作配对成功后点「启动」。顶部显示「Shizuku 正在运行」即成功。接下来导出 rish。在 Shizuku 里点「在终端应用中使用 Shizuku」→「导出文件」导出到 Download 目录。然后回到 Termuxcp ~/storage/downloads/rish ~/ cp ~/storage/downloads/rish_shizuku.dex ~/ chmod x ~/rish chmod 400 ~/rish_shizuku.dex注意rish_shizuku.dex必须是 400 权限Android 14 上如果给它写权限app_process会拒绝加载报Permission denied。然后改 rish 脚本里的包名把它指向 Termuxsed -i s/PKG/com.termux/g ~/rish验证提权是否生效~/rish -c id如果输出uid2000(shell)说明提权成功。再试一个实际命令~/rish -c ls /sdcard/Android/data | head -n 5能列出目录就说明穿透了 Scoped Storage。3.3 OpenClaw endpoint 配置OpenClaw 的配置文件通常是 JSON 或 TOML 格式取决于你用的版本。下面给一份完整的 JSON 配置片段路径按 OpenClaw 默认的~/.openclaw/config.json来{ llm: { provider: openai-compatible, base_url: https://taotoken.net/api, api_key: sk-你的TaoToken密钥, model: claude-sonnet-4-20250514, max_tokens: 4096, temperature: 0.3 }, agent: { name: android-remote, system_prompt: 你是一个安卓设备管理助手通过 SSH 连接到 Termux使用 rish 提权执行命令。, tools: [shell, file_read, file_write] }, ssh: { host: 127.0.0.1, port: 8022, username: u0_a410, password: 你的Termux密码 } }如果你用的是 TOML 格式部分 OpenClaw 版本默认 TOML等价配置如下[llm] provider openai-compatible base_url https://taotoken.net/api api_key sk-你的TaoToken密钥 model claude-sonnet-4-20250514 max_tokens 4096 temperature 0.3 [agent] name android-remote system_prompt 你是一个安卓设备管理助手通过 SSH 连接到 Termux使用 rish 提权执行命令。 tools [shell, file_read, file_write] [ssh] host 127.0.0.1 port 8022 username u0_a410 password 你的Termux密码三个关键字段必须对齐Base URL 填https://taotoken.net/apiAPI Key 填你创建的那串Model ID 填你要用的模型。这三个就是 OpenClaw 接入任何 OpenAI 兼容通道的三件套。如果你用的是 Claude Code 而不是 OpenClaw配置方式不同参考 https://taotoken.net/doc 里的 ClaudeCodeAnthropic 接入说明。Cline MCP 场景也是类似的Base URL Key Model ID 三件套填对就行。3.4 国产 ROM 保活配置这一步不做前面全白搭。小米/澎湃、华为、OPPO 这些深度定制系统会 aggressively 杀后台。进系统设置 → 应用管理 → Termux → 省电策略 → 设为「无限制」。Shizuku 同样操作。然后在 Termux 里获取 wakelock防止 CPU 休眠断连termux-wake-lock下拉通知栏能看到 Termux 的通知说明 wakelock 生效。如果 SSH 连接还是超时在前台跑调试模式sshd -d这样能看到连接日志连上后再 CtrlC 转后台。实测这个办法对 MIUI 特别有效。4. 验证请求一次完整的远程接管动作配置写完现在验证整条链路通不通。分三层验证模型通道、SSH 通道、提权通道。4.1 验证 TaoToken 模型通道先在 Termux 里用 curl 直接打 TaoToken 的 API确认 Key 和 endpoint 没问题curl -s https://taotoken.net/api/v1/chat/completions \ -H Content-Type: application/json \ -H Authorization: Bearer sk-你的TaoToken密钥 \ -d { model: claude-sonnet-4-20250514, messages: [{role: user, content: 回复OK两个字}], max_tokens: 10 } | jq -r .choices[0].message.content如果输出OK说明模型通道通了。如果报 401检查 Key 有没有复制错如果报 404检查 Base URL 是不是多写了/v1。4.2 验证 SSH 通道从另一台设备你的电脑或 OpenClaw 所在机器连 Termuxssh -p 8022 u0_a410手机IP手机 IP 在 Termux 里用ifconfig或ip addr查。连上后能看到 Termux 的欢迎信息就对了。4.3 验证提权通道在 SSH 会话里执行~/rish -c id输出uid2000(shell)即提权正常。然后跑一个实际接管动作比如列出所有 App 的缓存目录大小~/rish -c du -sh /sdcard/Android/data/* 2/dev/null | sort -rh | head -n 10这个命令会输出占用最大的 10 个 App 数据目录。普通 Termux 用户执行会全部 Permission denied走 rish 就能正常输出。4.4 OpenClaw 端到端验证现在让 OpenClaw 发一条指令走完整链路。在 OpenClaw 所在机器上启动 agentopenclaw run --config ~/.openclaw/config.json然后输入指令帮我列出安卓设备上占用空间最大的 5 个 App 数据目录并给出清理建议。OpenClaw 会做这几件事调用 TaoToken 的模型做规划 → 生成 shell 命令 → 通过 SSH 发到 Termux → Termux 用 rish 提权执行 → 结果回传 → 模型总结成自然语言。如果一切正常你会看到类似输出1. com.tencent.mm - 2.3G 2. com.taobao.taobao - 1.8G 3. com.zhihu.android - 1.2G ... 建议微信缓存可清理 /sdcard/Android/data/com.tencent.mm/cache/ 下的临时文件...到这一步整条「OpenClaw Termux Shizuku TaoToken」链路就跑通了。你可以把这条指令固化成一个 OpenClaw 的 tool以后一句话触发。5. 本篇常见报错排查这一节按真实报错来每个都给出原因和修法。5.1 401 Unauthorized{error:{message:Invalid API key,type:invalid_request_error}}原因TaoToken 的 Key 填错、过期或者复制时带了空格。检查config.json里的api_key字段确保是完整的sk-开头字符串前后无空格。如果 Key 泄露过去 https://taotoken.net/api-keys 重新生成一个。5.2 404 Not Found 或 reading choices 报错{error:{message:Not Found}}或者 OpenClaw 日志里出现error reading choices。原因Base URL 多写了/v1导致请求路径变成/v1/v1/chat/completions。修法把base_url改成https://taotoken.net/api不要带/v1。框架会自动补全。5.3 local proxy failedError: local proxy failed: dial tcp 127.0.0.1:7890: connect: connection refused原因OpenClaw 或 Termux 里配了本地代理但代理没启动。检查环境变量http_proxy、https_proxy、all_proxy如果不需要代理就 unset 掉unset http_proxy https_proxy all_proxyTaoToken 的 API 直连即可不需要额外代理配置。5.4 rish 报 Permission deniedapp_process: Permission denied原因rish_shizuku.dex权限不对。Android 14 要求这个文件不可写chmod 400 ~/rish_shizuku.dex如果还不行检查 rish 脚本里的包名有没有改成com.termuxgrep PKG ~/rish应该看到PKGcom.termux。5.5 SSH 连接超时或频繁断开原因国产 ROM 杀后台或者 CPU 休眠。修法三步省电策略设无限制、termux-wake-lock、必要时sshd -d前台保活。另外检查手机 WiFi 有没有开省电模式有些 ROM 会在息屏后断 WiFi。5.6 OAuth 相关报错如果你用的是 Claude Code 而不是 OpenClaw可能会遇到 OAuth 报错。Claude Code 的接入方式不同需要在 settings 里配置 Anthropic 兼容的 endpoint参考 https://taotoken.net/doc 里的 ClaudeCodeAnthropic 说明。核心还是三件套Base URL、Key、Model ID。5.7 模型返回空内容OpenClaw 日志显示请求成功但choices[0].message.content为空。原因通常是max_tokens设太小或者模型 ID 写错。检查model字段是不是有效的模型 IDmax_tokens至少给 1024。6. 把链路固化成可复用工作流跑通一次不算完得让它能重复用。我的做法是在 OpenClaw 里定义几个固定 tool把常用操作封装起来。比如定义一个android_clean_cachetool内部执行~/rish -c find /sdcard/Android/data/*/cache -type f -mtime 7 -delete 2/dev/null再定义一个android_storage_reporttool执行第 4 节那个du命令并让模型总结。这样以后只需要说「清理安卓缓存」或「出一份存储报告」OpenClaw 就会自动走完整链路。模型调用统一走 TaoToken 的通道换模型只改一个model字段Key 和 Base URL 不动。如果你要长期跑 Agent 任务建议上 Coding Plan地址 https://taotoken.net/coding-plan 比按量计费稳定。模型对话测试用 https://taotoken.net/chat 接入文档在 https://taotoken.net/doc API Keys 管理在 https://taotoken.net/api-keys 。最后提醒一个实际经验Termux 的 sshd 在手机重启后不会自动启动需要手动跑一次sshd。可以写个 Termux:Boot 脚本开机自动拉起 sshd 和 wakelock。Shizuku 也需要每次重启后重新激活除非你有 Root这是非 Root 方案的固有代价接受它就好。
返回列表