如何删除Android DPM中的设置设备所有者?
通过以下链接,我使用ADB创建了一个应用程序设备所有者: 但是现在,我无法恢复这个如何删除Android DPM中的设置设备所有者?,android,adb,device-policy-manager,Android,Adb,Device Policy Manager,通过以下链接,我使用ADB创建了一个应用程序设备所有者: 但是现在,我无法恢复这个 在“设备管理”选项卡中,此选项被禁用。无法更改此应用程序的值。唯一的出路是闪存或出厂重置设备。您可以通过编程方式将其取消设置。您需要在设备所有者应用程序中调用此函数 DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE); dpm.clearDeviceOwn
在“设备管理”选项卡中,此选项被禁用。无法更改此应用程序的值。唯一的出路是闪存或出厂重置设备。您可以通过编程方式将其取消设置。您需要在设备所有者应用程序中调用此函数
DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
dpm.clearDeviceOwnerApp(context.getPackageName());
更多信息
更新:此方法在API级别26中不推荐使用您可以使用以下ADB shell命令删除设备所有者
adb shell dpm remove-active-admin ComponentInfo{}
如果禁用活动管理员,则该管理员必须在其清单中的应用程序中声明了android:testOnly。通过在
AndroidManifest.xml
中指定android:testOnly=“true”
属性,也将删除设备和配置文件所有者。可以通过以下方式卸载应用程序或删除管理员:
adb外壳dpm删除活动管理包。名称/MyDeviceAdminReceiver
但在生产设备上,不应包含此属性,并且应用程序将是非测试管理员。从那时起,如果没有擦除/出厂重置,将无法删除或卸载应用程序
谢天谢地,当应用程序使用相同的密钥签名,并且版本代码等于或大于以下值时,可以进行更新:
adb安装-r路径/to/kiosk.apk
如果您想以编程方式摆脱生产设备上的管理和应用程序,您必须通过一些新的更改重新安装它。首先,如果您在device\u admin\u receiver.xml中具有以下权限,则可以通过编程方式擦除数据:
devicePolicyManager.wipeData(devicePolicyManager.WIPE\u RESET\u PROTECTION\u DATA)
如果您没有此权限,则新版本不应启动LockTask并从默认主应用程序列表中删除其程序包,包括:
devicePolicyManager.clearPackagePersistentPreferredActivities(adminComponentName,packageName)
然后,您可以手动转到设置以执行刮水/出厂重置
参考资料:adb shell dpm remove active admin(删除活动管理员)。如果设备所有者处于活动状态,则无法删除设备管理员。在否决回答之前,请先了解事实。只要活动的管理员应用程序的AndroidManifest.xml中没有android:testOnly=“false”,此功能就可以工作。否则,Android(至少6.0版)会变得暴躁,拒绝执行要求的操作。仅供参考:
adb shell dpm remove active admin
仅适用于Android 7此方法在API级别26中被弃用。