使用了一段时间的 Dhizuku ,在自己的网站写了一篇[水文]( https://www.alpacabro.com/archives/use-3rd-apk-installer-with-dhizuku.html),全文如下,权当抛砖引玉,欢迎大佬们不吝赐教。

---

如果把 Android 手机比喻为一栋房屋,那么解锁 Bootloader 后,你才真正拥有了这座房屋的“所有权”而非“使用权”;而诸如 Dhizuku / Shizuku 这类免解锁玩机工具则更像是与房东“扯皮”来获得更多对房屋装修的“支配权”,虽然有种戴着脚铐跳舞的妥协感,但是在部分场景下足矣。

### 解锁玩机已经愈发困难,折腾需求依然存在

由于众所周知的原因,手机厂商对于用户的“折腾”、“玩机”行为不断限制,解锁 Bootloader 的难度与日俱增,就看看[小米 BL 解锁答题裸考]( https://www.bilibili.com/video/BV1bi421e7Y6)下面的热门评论吧:

> KernelSU 作者 weishu 在小米解锁 bootloader 考试中获得了 30 分的好成绩 你也快来试试吧!

小米“高考”果然名不虚传!

当然,忽略“房间里的大象”而直接指责手机厂商固然不妥,但是厂商的一些“流氓行径”着实令人不爽。那么如果跳过成本愈发高昂的解锁,我们是否还能实现一些玩机需求?比如绕过烦人的官方安装器,使用更方便的第三方安装器?

### Shizuku —— 巧借 adb ,获取更高的权限玩机

根据 Shizuku [官网]( https://shizuku.rikka.app/zh-hans/) 和 [GitHub 主页]( https://github.com/RikkaApps/Shizuku) 上面的介绍,开发者将其定义为“让你的应用直接使用系统 API”的工具,其最大亮点就在主页上的“支持 adb 使用”,也就是“如果你的「需要 root 的应用」只需要 adb 权限,则可以使用 Shizuku 轻松地扩大用户群体。”

虽然对于大多数玩机发烧友已经是陈词滥调,但是还是援引一下[Android 调试桥 (adb) - Android Developers]( https://developer.android.google.cn/tools/adb?hl=zh-cn)上面的定义:Android 调试桥 (`adb`) 是一种功能多样的命令行工具,可让您与设备进行通信。`adb` 命令可用于执行各种设备操作,例如安装和调试应用。`adb` 提供对 Unix shell (可用来在设备上运行各种命令)的访问权限……简单来说,adb 就是谷歌给予开发者的一个调试工具,其本意是便于开发者调试应用,不过在 Android 11 或更高版本上,您可以直接从您的设备启动无线调试并启动 Shizuku ,而无需连接到计算机。

![]( https://pic.alpacabro.com/archives/use-3rd-apk-installer-with-dhizuku/1.jpg)

正因为如此,目前已经有大量玩机应用适配了 Shizuku ,具体可以看 [timschneeb/awesome-shizuku]( https://github.com/timschneeb/awesome-shizuku) 上面整理的列表,其中就有可以包含你正在使用的部分甚至所有玩机应用,在此处不再赘述。

不过,由于对于 adb 的强依赖,虽然理论上 Shizuku 在正常开关机后依然能保持激活状态,其易用性在不同厂商的设备上也因不同厂商的“优化”而不尽相同——某些厂商的“安全管家”会把 “USB 调试”作为风险项目,在扫描时关闭;某些厂商的“USB 调试”被魔改,或在高版本 AOSP 中隐藏“无线调试”选项,或需要手动调整为“生产模式”才能使用 adb 完整权限;更有甚者,在拔掉数据线时会自动禁用 adb 权限……在我的设备上,即使允许 Shizuku 后台运行、自启动并忽略省电优化,其依然会在重新开机(不是重启或者更新)后失去激活状态,这样即使使用 Shizuku 激活第三方安装器,也免不了一遍又一遍的重新激活,外加烦人的 USB 安装风险提示对话框,与预期的流畅优雅的安装器体验相去甚远。

### Dhizuku —— 共享 DeviceOwner 权限,更稳定的“旁门左道”

不过,除了方便开发者使用 USB 调试而带来的 adb 权限,Google 为了方便企业进行企业移动管理( EMM )而引入了 DeviceOwner ,相比被频繁“关照”的 adb ,其更为冷门,在部分场景下甚至更为强大。

由于其过于冷门,为了方便后续行文并且让读者不被,还是援引一些资料补充一下背景信息:根据[设备管理概览 - Android Developers]( https://developer.android.google.cn/work/device-admin)中的内容,结合[Android Device Admin and Device Owner Explained]( https://www.esper.io/blog/android-device-admin-and-device-owner-explained)中的内容稍加整理,你会发现 Google:

- 在 2010 年,Android 在 Android 2.2 ( API 级别 8 )中推出了一项名为“Device Admin”(设备管理员)的功能。它从未真正打算用作企业设备管理解决方案,尽管 Google 确实鼓励使用它;
- 在 2014 年,Google 在 Android 5.0 Lollipop 中[推出了“Device Owner”]( https://developer.android.google.cn/about/fersions/lollipop/android-5.0?hl=zh-cn#DeviceOwner),这是 Device Admin 的替代品。Device Owner 提供了更多功能、更好的安全性,并为真正的企业设备配置系统铺平了道路;
- 在 2018 年,Android 9.0 ( API 级别 28 )发布,这是最后一个支持 Device Admin 的 Android 版本;
- 在 2019 年,Android 10.0 ( API 级别 29 )发布,这是第一个不支持设备管理员的 Android 版本;
- 在 2022 年(及以后),Device Admin 已经 4+ 年没有得到 Google 的支持。早在 2014 年,Device Owner 就被引入以取代 Device Admin ,但在 2019 年 Android 10.0 推出之前,Android 同时支持这两种功能。

如果你是从 Android 4.4 时代开始玩机的老发烧有,或许对一些应用(安全软件或是恶意软件)请求激活设备管理员权限来进行“加固”,那便是已经在 Android 10.0 中消亡的“Device Admin”(设备管理员);拜“Device Owner”的广泛支持所赐,本文的主角 Dhizuku 也能能够实现 Android 5.0 ~ 14 的广泛且一致的支持。

好的,现在忘掉那些繁琐的概念,根据 Dhizuku 的[GitHub 主页]( https://github.com/iamr0s/Dhizuku) 介绍,其“参考 Shizuku 的设计思想,分享 DeviceOwner (设备所有者) 权限给其余应用”。不过由于 Android 的一些奇妙限制,其激活过程略显繁琐。根据[激活指南]( https://github.com/iamr0s/Dhizuku/discussions/16),我使用[AndroidAccounts]( https://github.com/iamr0s/AndroidAccounts)找到了所有创建了账户的应用并且使用[雹 Hail]( https://github.com/aistra0528/Hail)进行冻结。不过在我遇到的场景下,“小米账号”和“Google Play 服务”作为系统应用无法使用 Shizuku 模式进行冻结,退出登录,在成功激活后重新登录即可;此外,在 2.8 版本中,通过 Shizuku 激活后会提示“已激活但是权限不完整”,还需要 ADB 运行额外命令才能完成激活,而在最新的 2.9-alpha 版本中,已经无需连接电脑执行额外的命令。

![]( https://pic.alpacabro.com/archives/use-3rd-apk-installer-with-dhizuku/2.jpg)

恭喜,现在不出意外的话,你已经完成了 Dhizuku 激活,此时你的手机锁屏页面和通知页面底部会多出一行小字——“此设备归贵单位所有”(英文版系统为“This device belong to your organization”)。此提示无法隐藏(可能是处于安全和隐私考虑),但是可以通过爱玩机工具箱或者[OwnDroid]( https://github.com/BinTianqi/OwnDroid)自定义“贵单位”/"your organization"的内容。顺带一提,OwnDroid 在最新的 6.0 版已经支持 Dhizuku API 激活,此后便可根据其[文档]( https://owndroid.pages.dev/zh_CN/)体验 Google 为企业管理提供的细致的权限管理。

![]( https://pic.alpacabro.com/archives/use-3rd-apk-installer-with-dhizuku/3.jpg)

Dhizuku 由于起步较晚,现阶段提供支持的应用还相对较少,除了上文提到的 雹 Hail 和 OwnDroid ,目前还有 [Amarok]( https://github.com/deltazefiro/Amarok-Hider) 支持借助 Dhizuku 隐藏应用和文件。不过我个人目前认为最好用的应用当 InstallX 莫属,从其[Telegram Channel]( https://t.me/InstallerX)下载最新版后,在“配置”选项卡新建一个配置,授权器选择“Dhizuku”,此后在设置的默认配置选择刚刚的配置,如果单击“锁定为默认安装器”提示“锁定成功”,即可体验优雅丝滑的安装体验。Dhizuku 在 2.9-alpha 也修复了重启后无法自启动的问题,因此无论是开关机、重启还是更新,Dhizuku 的激活状态依然有效。

![]( https://pic.alpacabro.com/archives/use-3rd-apk-installer-with-dhizuku/4.jpg)

### 瑕不掩瑜——免解锁方案的缺陷

如果说此方案有什么瑕疵,那当属在安装应用后会有一条通知——“……已由您的管理员安装”,此通知和提示文字一样为系统级设计,如果介意可以考虑使用第三方通知收纳软件,不属于本文讨论范围;另外根据酷安社区的讨论,尽管 DeviceOwner 冷门且通用,部分厂商还是通过系统自带的不可删除的账户、屏蔽部分 adb 命令等方式限制 Dhizuku ,而且部分厂商的系统安装器是写死在内核中,无法使用 root 以外的方式修改或绕过,本文的方法同样不适用于这类设备。

当然,此方案还有不少值得优化之处,本文就权当抛砖引玉,欢迎大佬们不吝赐教。
举报· 134 次点击
登录 注册 站外分享
8 条回复  
jjxtrotter 小成 2024-9-2 23:10:53
感谢分享 已收藏
stefwoo 小成 2024-9-3 09:07:46
感谢感谢,学习了一下,有关键词就很不错了。
hicdn 小成 2024-9-3 09:14:28
如果能用 Dhizuku 给 shiziku 授权就完美了
ysxb1145 小成 2024-9-3 09:48:22
root 也不是完全取得所有权,因为解锁会导致 tee 损坏,就好比房东把你拉到一个失信名单然后银行等 APP 拒绝服务。其实 root 有一个不能被取代的功能就是管理根目录文件,尤其是微信这种将数据存储在 data/data 来防止清理并为监管部门存储数据的,由于没有 root 无法访问文件夹而无法清理,卸载重装会丢失聊天记录和登录状态,这种情况就需要 root 清理微信垃圾。
junyee 小成 2024-9-3 09:59:35
虽然 shizuku 应用多,但是在国内魔改系统上容易水土不服。
仅仅是冻结应用为主,dhizuku + hail 确实是不错的选择,已经使用一年多了。

hail 开源要支持,但是效果确实不如收费的冰箱。
TrembleBeforeMe 小成 2024-9-3 10:05:57
@ysxb1145 小米系的解锁后不会 TEE 假死
colorbeta 小成 2024-9-3 10:47:13
安装器也可以试试 PI 了
Zaden 小成 2024-9-3 11:44:53
好,激活了。op 能不能介绍一些好用的支持 Dhizuku 的 app
返回顶部