Shizuku 免 root 配对 安卓 11+ 无线调试一步步来
Shizuku 路线的核心:借 shell 权限来跑 pm 命令
Shizuku 是 Rikka 开发的一个工具,它让第三发应用可以通过 shell 权限调用系统接口(包括 pm 命令),而不需要 root。Bloker 集成了对 Shizuku 的支持——通过 Shizuku 提供的高权限 API,Bloker 可以执行 pm disable / pm enable 来控制其他应用的组件状态。
Shizuku 的两种启动方式
- USB 调试启动:旧方式,需要数据线连接电脑,用 adb shell 命令启动 Shizuku 服务
- 无线调试启动:安卓 11+ 支持,全程在手机上完成,不需要电脑
无线调试配对步骤(安卓 11+)
步骤一:开启开发者选项
- 进入「设置 → 关于手机」
- 连续点击「版本号」7 次,进入开发者模式
步骤二:开启无线调试
- 返回「设置 → 系统 → 开发者选项」
- 找到「无线调试」,打开开关
- 点入无线调试页面,记下"IP 地址和端口"(类似
192.168.1.100:39127) - 点「使用配对码配对设备」,记下配对码(类似
123456)
步骤三:在 Shizuku 里配对
- 打开 Shizuku 应用
- 首次使用会引导你配置无线调试——点"配对"按钮
- 输入刚才记下的 IP:端口 和配对码
- 配对成功后会提示"已连接"
步骤四:以 root 权限启动 Shizuku
这步很关键——普通 shell 权限的 Shizuku 只能改测试应用的组件,改不了正常应用的组件。必须以 root 权限启动。
- 如果设备已 root,Shizuku 可以通过 Magisk/KernelSU 自动获取 root 权限启动
- 如果设备未 root,Shizuku 服务可以通过无线调试获取 shell 权限启动,但这个 shell 权限不够改普通应用的组件状态——会报
SecurityException: Shell cannot change component state
步骤五:在 Bloker 里授权
- 打开 Bloker,进入设置页
- 找到 Shizuku 相关的授权入口
- 勾选授权 Bloker 使用 Shizuku 的 shell 权限
以 AOSP 源码为依据的限制说明
Android 系统在 PackageManagerService.java 里有硬编码规则:普通应用的组件状态只能由签名匹配的应用或 root 进程修改。Shizuku 的 shell 权限启动后,Bloker 通过 Shizuku 走的是 shell 身份——shell 身份不够改未修改过的普通应用组件。
解决方案:
- 要么给设备 root,让 Shizuku 以 root 启动
- 要么修改目标应用的 APK,把它设为 Test-Only 版本(开发者向操作,不适合普通用户)
Shizuku 路线的坑
- 重启手机后 Shizuku 服务需要手动重新启动(系统限制,Shizuku 无法开机自启)
- 每次重启后要重新进 Shizuku 应用点一下"启动"
- 高版本安卓可能有新限制(以 AOSP 最新实现为准)
- 部分厂商系统(MIUI、ColorOS)的开发者选项里有额外的权限监控限制,要关闭"权限监控"
不 root 能用吗
技术上能配对,但对改普通应用组件这一步来说几乎没用——shell 权限改不动普通应用,会报 SecurityException。所以 Shizuku 路线最终还是要以 root 启动,它只是让 root 授权这个动作更方便(免线)而已。