我正在尝试测试Android L Preview中的任务锁定是否可以通过扎根设备而不是构建自定义ROM来完成。
我已经创建了一个"device_owner.xml"文件,并将其放置在\data\system中。
<?xml version='1.0' encoding='utf-8'?>
<device-owner>
package="com.ta.instrumentcontroller"
name="TA Instrument Controller"
</device-owner>
重新启动后,Nexus 7 2013平板电脑上只有"弹跳安卓球"的标志。如果我进入TWRP并删除该文件,那么引导序列就完成了。
有人知道可能发生了什么吗?
我不相信我所尝试的是可能的,因为它不是在系统映像中构建的。
在这个谷歌Git页面上,DevicePolicyManagerService.java,函数为isInstalled():
static boolean isInstalled(String packageName, PackageManager pm) {
try {
PackageInfo pi;
if ((pi = pm.getPackageInfo(packageName, 0)) != null) {
if ((pi.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) {
return true;
}
}
} catch (NameNotFoundException nnfe) {
Slog.w(TAG, "Device Owner package " + packageName + " not installed.");
}
return false;
}
包信息必须包含ApplicationInfo.FLAG_SYSTEM,这意味着它必须是系统映像的一部分。ApplicationInfo