前言
在某些安卓设备上,获取设备管理员是很常见的。例如激活 Dhizuku 就需要用到这个权限。然而,在部分情况下,即使已经按照步骤,清除了所有用户和账户,使用 set-device-owner 命令激活设备管理员时仍可能因为奇奇怪怪的原因或限制而失败。
问题原因
安卓系统在授权某特定软件为设备管理员时需要确保设备中没有用户登录,否则就会返回错误。然而,部分安卓系统限制了设备管理员的获取,那么只能获取削弱版的设备管理员权限,也就是配置文件管理员权限。
解决方法
将 Dhizuku 提供的 adb 激活命令中的 set-device-owner(设置设备管理员) 改为 set-profile-owner (设置配置文件管理员)即可。
原 Dhizuku 激活命令:
adb shell dpm set-device-owner com.rosan.dhizuku/.server.DhizukuDAReceiver
修改之后的命令就是
adb shell dpm set-profile-owner com.rosan.dhizuku/.server.DhizukuDAReceiver
把修改后的命令,直接在adb环境(例如 Shizuku Runner或者Termux)中执行即可。
命令执行之后若提示 Successful 那么就代表成功获取了配置文件管理员权限,返回 Dhizuku,你应该可以看到已成为所有者的提示,证明 Dhizuku 激活成功了。
注意事项
在使用 set-profile-owner 作为备用方案时,前置要求与 set-device-owner 的相似但有差别。
profile owner 仅要求移除当前用户下的所有账户即可,而 device owner 需要移除所有账户以及其他用户。
但是这样 profile owner 会有一个缺点,所有者权限被限制在当前用户中(不过大部分情况也满足了不是吗 😛)。
在持有该权限时无法再附加 device owner 权限,会报错: Trying to set the device owner, but the user already has a profile owner. 如果有条件激活 device owner 了,那么可以在 Dhizuku 里面取消激活之后再尝试。
参考&致谢
教程到这里就结束啦,如果这个方法对你来说有用的话,欢迎留下评论哦!
本文 参考/借鉴/间接 引用了以下站点的内容,在此对原作者表示感谢~