Shizuku是一款非常强大的adb激活工具,它的主要功能是帮助用户使用系统API,让用户能够更加轻松地使用adb权限来开发应用。Shizuku功能完全免费的,还支持开源,让用户从此不必再借助root shell就能直接使用API,有需要的用户敬请下载。
Shizuku不仅功能强大,而且使用起来很方便,能够帮助用户显著提升应用开发效率,是一个很不错的应用开发工具。
优雅地使用系统 API
忘掉 root shell 吧,你可以「直接使用」需要高权限的 API。此外,Shizuku 比 shell 要快得多。
支持 adb 使用
如果你的「需要 root 的应用」只需要 adb 权限,则可以使用 Shizuku 轻松地扩大用户群体。
节省时间
Shizuku 有详细的文档引导用户,你只需要让用户安装 Shizuku。
“传统”做法
以启用/禁用组件为例,一些需要 root 权限的应用直接在 su 中执行 pm disable。
执行 su
执行 pm disable
(pre-Pie) 使用 app_process 启动 Java 进程
(Pie+) 执行原生程序 cmd(参见此处 (opens new window))
处理参数,通过 binder 与 system server 交互,处理结果输出文字结果
其中每个“执行”都意味着新进程建立,su 内部使用 socket 与 su daemon 交互,大量的时间和性能被消耗在这样的过程中。(部分设计不佳的应用甚至会每次执行指令都执行一次 su)
此类做法的缺点在于:
极慢
需要处理文本来获取结果
功能受制于可用的指令
即使 adb 有足够权限,应用也需要 root 权限才可使用
Shizuku 做法
Shizuku app 会引导用户使用 root 或是 adb 方式运行一个进程(Shizuku 服务进程)。
应用进程启动时 Shizuku 服务进程发送 binder 至应用进程
应用通过该 binder 与 Shizuku 服务进程交互,Shizuku 服务进程通过 binder 与 system server 交互
Shizuku 的优点在于:
极小额外时间及性能消耗
与直接调用 API 体验几乎一致(应用开发者只需添加少量代码)
通过 root 启动
对于已 root 设备,直接启动即可。
由厂商造成的问题(非 root 方式)
1. MIUI(小米)
你需要在“开发者选项”中开启“USB 调试(安全设置)”。
对于 MIUI 11 及以上版本,你必须在 Shizuku 内授予使用者应用权限。这是因为自定义权限功能被破坏。
此外,不要使用 MIUI 的“手机管家”的扫描功能,因为它会禁用“开发者选项”。
2. ColorOS(OPPO)
你需要在“开发者选项”中关闭“权限监控”。
3. Flyme(魅族)
你需要在“开发者选项”中关闭“Flyme 支付保护”。
4. EMUI (华为)
你需要在“开发者选项”中开启「“仅充电”模式下允许 ADB 调试选项」。
5. OriginOS (vivo)
OriginOS 的设置不支持分屏,你需要在“开发者设置”中开启“强行将活动设为可调整大小”。
通过无线调试启动
Android 11 及以上支持无线调试,您可以直接在设备上启动 Shizuku。
以下内容适用于 Shizuku 12.4.0+。
请注意
设备重新启动后需要再次打开“无线调试”选项并重新启动 Shizuku。
无 WiFi 连接时无法启用“无线调试”(已启动的 Shizuku 不受影响)。
不可关闭“开发者选项”或“USB 调试”。
启用无线调试
在网络上搜索如何为您的机型启用“开发者选项”
启用“开发者选项”和“USB 调试”
进入“无线调试”
启用“无线调试”
配对
该步骤只需要进行一次。
部分系统默认禁用通知,您需要在系统的通知设置中允许 Shizuku 发送通知
在 Shizuku 内开始配对
启用无线调试
点按“无线调试”中的“使用配对码配对设备”
在 Shizuku 的通知中填入配对码
启动 Shizuku
配对(只需进行一次)
启用无线调试
启动 Shizuku
如果无法启动,尝试禁用并启用无线调试。
通过连接电脑启动
提示
如果您的设备运行 Android 11 或以上,请通过无线调试启动,无需电脑。
对于未 root 设备,需要借助 adb 启动。使用 adb 并不困难,请阅读下面的教程。
请注意
设备重新启动后需要再次连接电脑。
在一些定制系统上 Shizuku 可能会随机停止。阅读最后的部分可以看到解决方案。
1. 什么是 adb?
Android 调试桥 (adb) 是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试应用,并提供对 Unix shell(可用来在模拟器或连接的设备上运行各种命令)的访问。
更多信息请查看 Android Developer (opens new window)。
2. 安装 adb
下载由 Google 提供的“SDK 平台工具”并解压至任意文件夹
打开文件夹,右键选择
Windows 10:在此处打开 PowerShell 窗口(需要按住 Shift 才会显示该选项)
Windows 7:在此处打开命令行窗口(需要按住 Shift 才会显示该选项)
Mac 或 Linux:打开 Terminal(终端)
输入 adb 如果可以看到一长串内容而不是提示找不到 adb 则表示成功
提示
请不要关闭该窗口,后面提到的“终端”都是指此窗口(如果关闭请重新进行第 2 步)。
如果使用 PowerShell 或是 Linux 及 Mac,所有 adb 都要替换成 ./adb。
3. 设置 adb
要使用 adb 你首先需要在设备上打开 USB 调试功能,通常需要经过以下步骤:
打开系统设置,进入关于
连续数次点击 "Build number" 后看到类似 "You are a developer" 的提示
此时你应该可以在设置中找到“开发者选项”,进入后开启“USB 调试”
连接设备到电脑,在终端中输入 adb devices
此时设备上会出现“是否允许调试”的对话框,勾选“总是允许”后确认
再次在终端中输入 adb devices,如无问题将会看到类似如下内容
List of devices attached
XXX device
TIP
不同设备开启“开发者选项”的步骤可能有所不同,请自己搜索。
4. 启动 Shizuku
复制指令并粘贴到终端中,如无问题你将会在 Shizuku 中看到已启动成功。
适用于 Shizuku v11.2.0+ 的指令
5. Shizuku 随机停止?
首先,不要关闭“USB 调试”及“开发者选项”。
然后你需要保证在连接电脑期间 USB 使用模式不变。通常的做法是在“开发者选项”中将 USB 使用模式改为“仅充电”。在 Android 8 上的选项是“选择 USB 配置”-“仅充电”;在 Android 9+ 上选项是“默认 USB 配置”-“不进行数据传输”。
在一些设备上(如三星),这么做可能不起作用。此时你需要查看连接电脑后出现的通知来查看当前的 USB 使用模式,并将开发者选项中的模式改为该模式。
如果还是不行,你可以尝试打开网络 adb(使用指令 adb tcpip 5555)后再启动 Shizuku。
此外,如果你的系统在连接 USB 后会弹出类似“是否允许访问文件”的对话框,请不要点击它,因为点击后 USB 使用模式会发生变化。
Sony 设备
不要点击连接 USB 后弹出的对话框。
64.40M|实用工具
15.80M|实用工具
20.40M|实用工具
0.00M|实用工具
6.30M|实用工具
对于您的问题快深感抱歉,非常感谢您的举报反馈,小编一定会及时处理该问题,同时希望能尽可能的填写全面,方便小编检查具体的问题所在,及时处理,再次感谢!