为了账号安全,请及时绑定邮箱和手机立即绑定

如何使我的应用成为设备所有者?

如何使我的应用成为设备所有者?

ITMISS 2019-09-21 11:31:05
该装置策略管理器API文档和安卓5.0概述都提到了一些关于设备所有者的应用程序。如何将我的应用设置为设备所有者?编辑:除了生根和NFC之外,还有其他方法吗,请分享。
查看完整描述

3 回答

?
人到中年有点甜

TA贡献1895条经验 获得超7个赞

实际上,除了NFC之外,还有一种方法可以将应用程序设置为设备所有者应用程序。您可以从中使用dpm命令行工具adb shell。


用法:


usage: dpm [subcommand] [options]

usage: dpm set-device-owner <COMPONENT>

usage: dpm set-profile-owner <COMPONENT> <USER_ID>


dpm set-device-owner: Sets the given component as active admin, and its package as device owner.

dpm set-profile-owner: Sets the given component as active admin and profile owner for an existing user.

更新:该dpm实用程序实际上非常简单。它的目标是创建一个新的文件device_owner.xml,/data/system/device_owner.xml该文件下引用了设备/配置文件所有者应用。


然后,Android平台正在读取此文件,以检查哪个应用程序被视为设备所有者或配置文件所有者应用程序。


在有根设备上,您确实可以自己创建此文件,但是由于该dpm工具正在执行此操作,因此最好使用它(DRY原理):


例如,通过Runtime.exec()命令:


Runtime.getRuntime().exec("dpm set-device-owner com.foo.deviceowner/.DeviceAdminRcvr");

另请注意,只有在使用前未为用户设置任何帐户(确保在“设置”>“帐户”中未设置任何帐户)的情况下,此工具才有效。


来源和更多信息在Android的shell命令工具:设备规范管理


查看完整回答
反对 回复 2019-09-21
?
慕工程0101907

TA贡献1887条经验 获得超5个赞

更新:


在我的Android 7.1.2机顶盒(AOSF和root机顶盒)上,我发现了一些随着时间而发展的事情。


exec("dpm set-device-owner ...")抛出异常,除非<uses-permission android:name="android.permission.MANAGE_DEVICE_ADMINS" />在AndroidManifest.xml中声明。但这带来了其他问题,在这里有更多的讨论。

该文件/data/system/device_policy.xml不再显示。相反,现在/data/system/device_policy_2.xml和架构略有不同。dpm set-device-owner com.myDomain.myPackage/.myComponent通过adb shell 运行时,文件生成为:

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>

<root>

    <device-owner package="com.myDomain.myPackage" name="" component="com.myDomain.myPackage/com.myDomain.myPackage.myComponent" userRestrictionsMigrated="true" />

</root>


查看完整回答
反对 回复 2019-09-21
  • 3 回答
  • 0 关注
  • 1256 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号