一次性搞定 Android 设备管理员授权问题
技术

一次性搞定 Android 设备管理员授权问题

2024-08-03

前言

对于安卓玩家以及对使用体验比较有要求的用户来说,获取设备管理员是很常见的。许多冻结应用或管理系统的软件都需要用到这个权限,就例如 冰箱 这个软件。最近换了新手机,在正常激活冰箱为设备管理员的过程中遇到了一些问题。花了不少时间去查阅资料并解决问题。在此向各位分享完整的检查步骤与解决方案。

问题原因

首先,简单解释一下本文面向解决的问题。安卓系统在授权某特定软件为设备管理员时需要确保设备中没有用户登录,否则就会返回错误。所以本文主要讲解的是如何检查并清除设备中登录的账户以及用户。

当然,最简单的方法就是 恢复出厂设置。通常的方法是 打开设置 -> 然后找到账户 -> 退出里面的所有账户,以及 关闭应用分身 / 访客模式 / MIUI 优化等等,部分手机还需要拔掉 SIM 卡(不过这些在冰箱的文档里面应该都有写)。不过通常如果这样子就能解决,大家大概就不会来网上查教程了罢.. 所以今天还是要分享一些不一样的。(当然,还包含一个额外解决方法)


检查设备中用户

  • 首先下载 ADB 调试软件,然后连接上自己的手机。
  • 然后输入 adb shell pm list users 来查询设备中存在的用户
adb-fastboot-tools> adb shell pm list users
Users:
        UserInfo{0:机主:4c13} running
        UserInfo{999:FlymeParallelSpace:1010} running

此处的 ID 为 0 的就是机主号,无需处理(如果显示的是乱码是命令行编码问题)。我们只需要删除额外的账户即可

  • 使用 adb shell pm remove-user <用户ID> 命令删除多余的用户。
    例如删除用户 999:adb shell pm remove-user 999。 注意删除可能会影响某些功能,注意文件的备份。
  • 重复操作直到只留下机主账户。

完成上面的步骤后,你可以试着再次授权一次,如果成功了就可以开香槟了。如果仍然不成功就跟着继续下一步操作。

检查设备中账户登录

同样,设备中的账户登录也会影响到设备管理员授权。所以我们也使用 ADB 来将它们找出来。

  • 完成手机与 ADB 调试软件的链接。
  • 使用命令 adb shell dumpsys account列出设备中登录的账户。
adb-fastboot-tools> adb shell dumpsys account
User UserInfo{0:机主:4c13}:
  Accounts: 6
    Account {name=xxxxxx, type=com.google}
    Account {name=xxxxxx, type=com.meizu.account}
    Account {name=xxxxxx, type=com.android.email}
    Account {name=xxxxxx, type=net.pixiv}
    Account {name=xxxxxx, type=com.twitter.android.auth.login}
    Account {name=xxxxxx, type=com.github.android}
  • 使用命令 adb shell pm clear <应用包名> 删除账户。
    例如 adb shell pm clear com.github.android
  • 重复直到设备上的账户数量为 0 。

通常,操作到这一步你就应该能正常授权设备管理员了。但如果还不行的话... 先别急,还有一张底牌。

特殊情况

在部分安卓设备中,你需要使用不同的命令来授权管理员:

在大多数安卓设备中,命令可能是这样的:adb shell dpm set-device-owner
但你或许可以试试看用另一个命令:adb shell dpm set-profile-owner

是的,就是这样,十分简单。你只需要将软件的授权命令简单修改一下,例如下面的冰箱授权命令:

// 原版
adb shell dpm set-device-owner --user current --name IceBoxcom.catchingnow.icebox/.receiver.DPMReceiver

// 修改后
adb shell dpm set-profile-owner --user current --name IceBoxcom.catchingnow.icebox/.receiver.DPMReceiver

使用个人资料命令授权的效果在大部分情况下和设备管理员效果相似,但是存在些许的区别。考虑到部分定制系统授权设备管理员存在一些困难,所以也算得上是一个值得考虑的备选方案。

目前已知的有这种情况的设备是帖子中提到的 Nord 20 5G 以及我使用的 MEIZU 21,也是找了好久才最终找到了这个解决方案。
如果有更多的问题与解决方法也欢迎在评论中分享!


参考资料

Comments

_
_RyF
2025-03-16 02:24
好一个换命令解决,谢谢!

Create a Comment