一个把设备所有者权限分给其他应用的中介工具,到底做什么用
官方对它的定义只有一句话:把设备所有者(DeviceOwner)权限分享给其他应用的工具。设计上明确参考了 Shizuku 的思想——Shizuku 把 ADB / root shell 的能力收拢到一个常驻服务里再分发,这个工具则把「设备所有者」这个身份收拢起来再分发。
中介模式拆开看
整条链路里它扮演三个角色:
- 持有者:通过一条 ADB 命令(
dpm set-device-owner)把系统唯一的设备所有者身份接到自己身上,激活后这个身份重启也不丢; - 中介:常驻一个前台服务,等着其他应用来借权限;
- 审批人:有应用发起请求时弹窗让你决定批不批,批过的应用才能借用设备管理能力。
为什么不直接给每个应用装权限
因为系统不允许。安卓把设备所有者设计成全机唯一的管理员身份,一个应用占了,其他应用就再也设不上。而冻结、隐藏、设备策略管理这类功能又恰恰依赖这个身份——于是「装了 Hail 就装不了 OwnDroid」成了常见死结。中介模式就是把这一个身份变成大家共用的。
一句话记住它的位置
- Shizuku 之于 ADB / shell 权限,正如它之于设备所有者权限;
- 它不替代 Shizuku,反而可以借助 Shizuku 来激活(应用内三张激活卡之一),两者更像上下游。
弄清定位后,建议接着看设备所有者为什么只能有一个和中介授权的运作方式;急着上手的直接跳三条激活路径总览。