始祖库软件就是被广大安卓发烧友所熟知的Shizuku。这是一款开源的Android系统级权限桥接工具,由RikkaApps开发。它的核心功能是无需Root手机,就能让支持的应用获得类似Root级别的高级权限。通过启动ADB或无线调试服务,Shizuku为应用搭建了一座通往系统API的桥梁,让普通应用能够执行原本需要高权限才能完成的操作。

【“传统”做法】
以启用/禁用组件为例,一些需要 root 权限的应用直接在 su 中执行 pm disable。
1、执行 su
2、执行 pm disable
3、(pre-Pie) 使用 app_process 启动 Java 进程(参见此处 (opens new window))
4、(Pie+) 执行原生程序 cmd(参见此处 (opens new window))
5、处理参数,通过 binder 与 system server 交互,处理结果输出文字结果
其中每个“执行”都意味着新进程建立,su 内部使用 socket 与 su daemon 交互,大量的时间和性能被消耗在这样的过程中。(部分设计不佳的应用甚至会每次执行指令都执行一次 su)
此类做法的缺点在于:
1、极慢
2、需要处理文本来获取结果
3、功能受制于可用的指令
4、即使 adb 有足够权限,应用也需要 root 权限才可使用
【始祖库做法】
Shizuku app 会引导用户使用 root 或是 adb 方式运行一个进程(Shizuku 服务进程)。
应用进程启动时 Shizuku 服务进程发送 binder 至应用进程
应用通过该 binder 与 Shizuku 服务进程交互,Shizuku 服务进程通过 binder 与 system server 交互
Shizuku 的优点在于:
1、极小额外时间及性能消耗
2、与直接调用 API 体验几乎一致(应用开发者只需添加少量代码)

【通过 root 启动】
如果您的设备已经 root,直接启动即可。
【通过无线调试启动】
通过无线调试启动适用于 Android 11 或以上版本。这种启动方式无需连接电脑。由于系统限制,每次重新启动后都需要再次进行启动步骤。
#启用无线调试
1、在网络上搜索如何为您的机型启用“开发者选项”
2、启用“开发者选项”和“USB 调试”

3、进入“无线调试”

4、启用“无线调试”

#配对(仅需一次)
1、在 Shizuku 内开始配对

2、启用无线调试
3、点按“无线调试”中的“使用配对码配对设备”

4、在 Shizuku 的通知中填入配对码

#启动 Shizuku

如果无法启动,尝试禁用并启用无线调试。
Q:通过无线调试启动:一直显示“正在搜索配对服务”
请允许 Shizuku 在后台运行。
搜索配对服务需要访问本地网络,许多厂商在应用不可见后立刻禁止应用访问网络。您可以在网络上搜索如何在您的设备上允许应用在后台运行。
Q:通过无线调试启动:点击“输入配对码”后立刻提示失败
#MIUI(小米、POCO)
在系统设置的“通知管理”-“通知显示设置”将通知样式切换为“原生样式”。
Q:通过无线调试启动/通过连接电脑启动:adb 权限受限
#MIUI(小米、POCO)
在“开发者选项”中开启“USB 调试(安全设置)”。注意,这和“USB 调试”是两个分开的选项。