Shizuku 模式详解 App Ops 最推荐的工作方式
Shizuku 是什么
Shizuku 是一个免费且开源的框架类 Android 应用,由 Rikka Apps(App Ops 同一开发者)开发。它的定位是:让需要 adb 或 root 的应用以更稳定、更高效的方式获得系统级能力。
你可以把 Shizuku 理解为一个"服务提供者"——App Ops 向 Shizuku 请求 Java API 调用能力,Shizuku 作为中间层以更高权限执行请求并返回结果。
为什么推荐 Shizuku 模式
相比"托管设备管理员模式"和已被移除的纯 root 模式,Shizuku 有三个核心优势:
1. 完整权限能力
Shizuku 模式同时支持:
- appops 设置的读取和修改
- 运行时权限(runtime permission)的修改
- 权限标志(permission flags)的读取和设置
这三者缺一不可,正是 Shizuku 模式能实现正确行为的原因。对比之下:
- 托管设备管理员模式无法修改 permission flags,在 Android 11 上无法正确支持"每次都询问"
- 已移除的 root 模式只有 uid 0 的 shell,完全没有 Java API 调用能力
2. 多用户支持
Shizuku 正确处理了 Android 的多用户架构——包括工作资料夹、子账号、不同用户下的独立 appops 设置。
3. 性能与可靠性
Shizuku 在对性能影响最小的情况下,提供了比传统 ADB shell 调用更稳定的 API 通道。特别是频繁操作 appops 时,Shizuku 的 Binder 通信比反复执行 ADB shell 命令高效得多。
Shizuku 的两种激活方式
| 激活方式 | 操作 | 持续性 | 推荐度 |
|---|---|---|---|
| ADB 激活(无 Root) | 电脑上执行 ADB 命令启动 Shizuku 服务 | 每次重启手机后需重新激活 | 非 Root 设备首选 |
| Root 激活 | 如果手机已 Root,Shizuku 可自启动服务 | 开机自动运行,无需电脑 | Root 设备首选 |
"每次重启都要重激活"但设置一直生效
这是一个容易产生误解的点:
- Shizuku 服务:Android 安全机制决定 ADB 激活的服务在手机重启后会被终止,所以确实需要重新激活
- App Ops 的权限设置:它们已经写入了 Android 系统的 appops 数据库,不会因为 Shizuku 服务停止而失效
所以重启后 App Ops 打开可能提示"Shizuku 未运行",但之前设置的权限状态不会丢失——只是你暂时无法用 App Ops 去修改它们。
App Ops 与 Shizuku 的搭档关系
App Ops 并不是第一个使用 Shizuku 的应用。其他也依赖 Shizuku 的知名应用包括:
- Storage Isolation(同 Rikka 开发):让应用有独立存储目录
- Solid Explorer、MT Manager:高级文件管理器
- 冰箱、Island:应用冻结/休眠工具
- Battery Charge Limit:限制电池充电上限
Shizuku 的开源仓库在 GitHub RikkaApps/Shizuku。