如何为未主动申请权限的Android应用授予Device administrator权限
技术问题解答
一、Android应用申请设备管理员(Device Administrator)权限的实现逻辑
原生Android系统中,应用申请设备管理员权限需满足预设的开发规范,不存在全局授予任意应用该权限的系统入口,具体实现要求如下:
- 应用必须在自身
AndroidManifest.xml中注册DeviceAdminReceiver子类,同时声明android.permission.BIND_DEVICE_ADMIN系统权限,配套新增XML资源文件声明所需使用的设备管理能力(如阻止卸载、修改锁屏策略等) - 应用运行时主动构造动作为
DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN的Intent,跳转至系统权限确认页,由用户手动确认授权后,权限才会激活生效 - 未内置上述组件和申请逻辑的应用,无法在原生系统下主动申请或被第三方授予设备管理员权限
二、为WhatsApp授予设备管理员权限避免企业卸载的可行方案
官方发布的WhatsApp未内置设备管理员权限申请逻辑,原生无Root环境下无法直接授予该权限,可参考以下两种方案实现:
方案1:修改WhatsApp安装包(适配Root/非Root环境)
- 提前备份WhatsApp聊天记录,卸载设备上的官方版本
- 反编译WhatsApp官方APK,在
AndroidManifest.xml中添加DeviceAdminReceiver注册配置、对应权限声明,新增权限策略配置文件,写入“阻止应用卸载”的能力声明 - 回编译APK并签名后安装到设备,打开应用主动触发设备管理员权限申请,完成激活后系统将默认禁用WhatsApp的卸载入口
方案2:Root环境下直接修改系统权限配置(无需修改APK)
- 确保设备已获取Root权限,可访问系统核心数据目录
- 找到路径为
/data/system/device_policies.xml的系统权限配置文件,手动添加WhatsApp包名com.whatsapp对应的设备管理员权限条目,配置阻止卸载的相关策略 - 重启设备后权限即可生效
注意:如果当前设备的企业MDM已获取*设备所有者(Device Owner)*级别的最高管理权限,该权限等级高于普通设备管理员权限,即便给WhatsApp激活了设备管理员权限,企业方依然可以通过MDM强制卸载应用,上述方案在此场景下无效。
内容的提问来源于stack exchange,提问作者Se7en
相关产品推荐
相关产品推荐

