无Root手机走Shizuku通道的授权步骤
安卓只让应用管理自己的组件,Blocker 想改别的应用的组件状态,必须有一条高权限通道。设备没 root 时,常规办法是借 Shizuku——它以 shell 权限跑一个服务,把权限转交给被授权的应用。这篇把从启动 Shizuku 到开关生效的完整链路走一遍。工具的获取入口在 Blocker 组件开关工具。
一、先装并启动 Shizuku
安卓 11 及以上可以走无线调试,全程免电脑:
- 打开开发者选项与 USB 调试,进入「无线调试」开启开关;
- 在 Shizuku 里点「通过无线调试启动 → 配对」,再到系统的「无线调试 → 使用配对码配对设备」拿配对码;
- 配对码填进 Shizuku 的通知,回到 Shizuku 点「启动」。
安卓 10 及以下需要连电脑,装好 adb 后执行一条命令启动服务:
adb shell sh /sdcard/Android/data/moe.shizuku.privileged.api/start.sh
二、把权限转给 Blocker
Shizuku 跑起来后,打开 Blocker 的设置,把控制器切到 Shizuku/Sui,在弹出的授权框里允许。
三、一个必须知道的限制
开发者说明里写得很明确:对未做修改的普通应用,shell 权限不足以改变组件状态,点开关会报 SecurityException: Shell cannot change component state。要让 Shizuku 通道对普通应用生效,需要以 root 权限启动 Shizuku。也就是说,完全未 root 的设备上能覆盖的场景有限,报了这个错不要反复点开关,先解决权限来源。
四、配对失败的常见排查
- 一直「正在搜索配对服务」:搜索服务需要访问本地网络,很多系统会在应用退后台后切断网络——先允许 Shizuku 后台运行(含后台联网)再配;
- 输入配对码立刻失败:MIUI/HyperOS 先把通知切回原生样式再试;
- 配对码页要留在前台,可以用分屏让 Shizuku 通知和配对码页同屏;
- 端口号每次开无线调试都会变,重启手机后整套流程要重新做。
五、重启之后
无论哪种启动方式,Shizuku 都无法开机自启。重启手机后要手动再启动一次,并确认 Blocker 还在授权列表里——开关突然全体失灵,先查这一层。
环境就绪后,先从 广告SDK组件关停实战 入手最直观;操作中误关了核心组件的,按 组件误关后的恢复顺序 恢复。