shizukurunner 中文文档 下载 App

Shizuku 服务未启动 - Runner 执行命令时报通道连接失败

典型表现

Runner 打开后,主界面顶部的状态条不是绿色的"SHIZUKU 已运行 已授权",而是灰色的"SHIZUKU 未运行"。执行命令时弹出错误弹窗,类似:

根本原因

Runner 的命令执行能力完全依赖 Shizuku 主应用维护的 Binder 服务进程。服务进程没起来,Runner 就是个空壳——命令发给谁?

常见触发场景

场景一:手机刚重启

无线调试配对方式启动的 Shizuku,手机重启后不会自动启动服务。需要:

  1. 手动打开无线调试(部分系统会自动关)
  2. 打开 Shizuku 主应用
  3. 点击「启动」按钮

这是 Shizuku 生态最大的痛点——无线调试服务不会开机自启。解决办法见 02-setup-basics/03-service-startup-methods.md 的自动启动方案。

场景二:Shizuku 服务被系统杀掉

部分定制系统的后台限制过于激进,会自动杀掉 Shizuku 的后台服务进程:

场景三:无线调试被自动关闭

Android 系统为了省电,会在以下情况自动关闭无线调试:

保持常亮是最简单的短期解决办法。长期方案是用 Tasker 监听无线调试状态,自动重新打开。

场景四:Shizuku 主应用被禁用/冻结

如果你把 Shizuku 主应用自己给冻了……那就先解冻:

pm enable moe.shizuku.privileged.api

快速恢复流程

  1. 打开 Shizuku 主应用——看它自己显示什么状态
  2. 如果 Shizuku 也显示"未启动" → 点启动按钮(无线调试方式)或检查 Magisk 模块(root 方式)
  3. 如果 Shizuku 显示"已启动"但 Runner 说"未运行" → 关闭 Runner 重开,或重启手机(Binder 连接有时需要重建)
  4. 如果 Shizuku 也启动失败 → 看 Shizuku 的错误码,按 08-troubleshooting/03-pairing-failure.md 排查

如何让它长期稳定在运行状态

方案一:Magisk 自动启动(需要 root)

如果你手机已 root 且装了 Magisk,Shizuku 主应用提供 Magisk 模块:

  1. 在 Shizuku 主应用里找 Magisk 模块入口
  2. 下载并刷入 Magisk 模块
  3. 重启手机——Shizuku 服务随开机自动启动,不需要手动开任何东西

这是目前最稳定的方案,没有之一。

方案二:Tasker 自动拉起(无线调试方式)

Trigger: Boot Completed + 延迟 15 秒
Action:
  Activity → Shizuku 主应用的启动 Activity
  (具体 Activity 名因版本不同而异,通常在 Shizuku 设置里能找到)

再加一个定时检查:

Trigger: 每 5 分钟
Action:
  Activity → Shizuku 主应用
  (让 Shizuku 前台跑一下,防止被后台杀掉)

方案三:忽略它(如果不太用)

如果你只是偶尔用 Runner,手机重启后手动去 Shizuku 主应用点一下启动——这个成本是可以接受的。

验证服务真的起来了

Shizuku 主应用和 Runner 两边都要看:

  adb shell sh /sdcard/Android/data/moe.shizuku.privileged.api/start.sh

如果脚本报"服务已启动"说明没问题;如果报"地址已被占用"也说明已启动。