Shizuku是一款功能强大的手机开源软件使手机应用免root就能使用,此款软件简单易上手,这款软件用于启动Shizuku Server及管理使用该服务的应用,操作简单,就更加方便了。
Shizuku 的诞生主要有两大目的:
提供一个方便地使用系统 API 的方式。
为部分只需要 adb 权限的应用开发提供便利。
作为普通用户,如何使用 Shizuku?
已 root 设备:直接通过 Shizuku app 启动即可。
未 root 设备:遵照 Shizuku app 中的指引,通过 adb 启动服务。使用 adb 并不难,网络上有不少教程可以帮助您学会使用它。
1. 提供一个方便地使用系统服务方式
2. 为部分只需要 adb 权限的应用开发提供便利
以启用/禁用组件为例,一些需要 root 权限的应用可能会采取直接在 su 中执行 `pm disable` 的做法,这样做的劣势在于需要处理文本来得到返回结果,以及速度比不上直接使用 API。启用/禁用组件实际对应 `android.content.pm.IPackageManager#setComponentEnabledSetting`。如果使用 Shizuku,过程就会变为应用直接与运行在 root 或是 adb 的 Shizuku Server 交互,Shizuku 直接调用 API 并原原本本地返回结果给应用。另外,仅有 adb 拥有 `setComponentEnabledSetting` 所需要的权限 `android.permission.CHANGE_COMPONENT_ENABLED_STATE`,adb 使用也变为可能。
优雅地使用系统API:忘掉root shell吧,你可以「直接使用」需要高权限的APl。此外,这款软件要比 shell 要快得多。
支持adb使用:如果你的「需要root的应用」只需要adb权限,则可以使用它轻松地扩大用户群体。
节省时间:软件有详细的文档引导用户,你只需要让用户安装该款软件。
Shizuku 的做法
app 会引导用户使用 root 或是 adb 方式运行一个进程。
应用进程启动时 软件服务进程发送 binder 至应用进程
应用通过该 binder 与 Shizuku 服务进程交互,Shizuku 服务进程通过 binder 与 system server 交互
优点在于
速度极快
无需处理文本就能获取结果
功能不受制于可用的指令
应用无需 root 权限也可使用
极小额外时间及性能消耗
与直接调用 API 体验几乎一致(应用开发者只需添加少量代码)
启动(针对已root设备):另外,Shizuku可以在开机时自动启动。如果没有,请检查您的系统或是第三方工具是否进行了限制。
通过连接电脑启动(使用adb):对于没有root的设备需要借助adb来启动,Shizuku(需要连接电脑)。这个过程每次设备重新启动后需要重新进行。请阅读帮助。
通过无线调试启动:对于Android 11,无线调试是一个内置功能。请参考此帮助文档。此功能可在所有系统版本上工作。但在Android 11以前,无线调试无法直接启用。