我已经成为了一个使用ADB的应用程序设备所有者,通过以下链接:How to make my app a device owner?
但现在,我不能还原它。
在设备管理选项卡中,此选项处于禁用状态。无法更改此应用程序的值。
发布于 2018-11-14 06:33:56
通过在AndroidManifest.xml
中指定android:testOnly="true"
属性,可以使用以下命令卸载应用程序或删除管理员:
adb shell dpm remove-active-admin package.name/MyDeviceAdminReceiver
但在生产设备上,不应包含此属性,并且应用程序将是非测试管理员。从这一点,它将不可能删除它或卸载的应用程序没有擦除/出厂重置。
值得庆幸的是,当应用程序使用相同的密钥签名,并且版本代码等于或更高时,可以完成更新:
adb install -r path/to/kiosk.apk
如果你想在编程上摆脱生产设备上的管理和应用程序,你必须重新安装它,并进行一些新的更改。首先,如果您在device_admin_receiver.xml中拥有<wipe-data \>
权限,则可以通过编程方式擦除数据:
devicePolicyManager.wipeData(DevicePolicyManager.WIPE_RESET_PROTECTION_DATA)
如果您没有此权限,则新版本不应启动LockTask,并使用以下命令从默认主页应用程序列表中删除其软件包:
devicePolicyManager.clearPackagePersistentPreferredActivities(adminComponentName, packageName)
然后,您可以手动转到设置以执行擦除/出厂重置。
发布于 2018-05-14 15:22:06
您可以通过编程方式取消设置它。您需要在设备所有者应用程序中调用此函数
DevicePolicyManager dpm = (DevicePolicyManager) context.getSystemService(Context.DEVICE_POLICY_SERVICE);
dpm.clearDeviceOwnerApp(context.getPackageName());
有关更多信息,请访问see
更新:此方法在级别26中已弃用
发布于 2018-05-22 14:30:55
您可以使用以下ADB shell命令删除设备所有者
adb shell dpm remove-active-admin ComponentInfo{}
禁用活动管理员,管理员必须在其清单中的应用程序中声明android:testOnly。这还将删除设备和配置文件所有者
https://stackoverflow.com/questions/49128293
复制相似问题