代码路径:
frameworks/base/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java

流程:
每次开机时,loadSettingsLocked()方法会读取data/system/device_policies.xml文件
手动激活时,saveSettingsLocked()方法会写入对应的信息到data/system/device_policies.xml文件

具体方法:
先手动激活,然后pull出该文件,根据里面的多出的信息,在loadSettingsLocked()方法读取xml之前写入xml文件即可。

//写入标签名
out.startTag(null, “policies”);
//写入标签属性和值d
out.attribute(null, “flags”, “31”);
//关闭标签
out.endTag(null, “policies”);

================================================

/zhanghao add begin/
private void setSettingsLocked(int userHandle) {
JournaledFile journal = makeJournaledFile(userHandle);
FileOutputStream stream = null;
try {
stream = new FileOutputStream(journal.chooseForWrite(), false);
XmlSerializer out = new FastXmlSerializer();
out.setOutput(stream, StandardCharsets.UTF_

8.name());
out.startDocument(null, true);

        out.startTag(null, "policies");        out.attribute(null, ATTR_SETUP_COMPLETE,                Boolean.toString(true));            //com.xueleyun.xlylauncher            out.startTag(null, "admin");            out.attribute(null, "name", "com.xueleyun.xlylauncher/com.xueleyun.xlylauncher.deviceAdminReceiver");                 out.startTag(null, "policies");                 out.attribute(null, "flags", "31");                 out.endTag(null, "policies");                 out.startTag(null, "disable-bt-contacts-sharing");                 out.attribute(null, "value", "true");                out.endTag(null, "disable-bt-contacts-sharing");                out.endTag(null, "admin");                out.endTag(null, "policies");            out.endDocument();            stream.flush();            FileUtils.sync(stream);            stream.close();            journal.commit();            sendChangedNotification(userHandle);    } catch (IOException e) {        try {            if (stream != null) {                stream.close();            }        } catch (IOException ex) {            // Ignore        }        journal.rollback();    }}/*zhanghao add end*/private void loadSettingsLocked(DevicePolicyData policy, int userHandle) {    /*zhanghao add begin*/    String tempString = SystemProperties.get("persist.sys.firstboot", "");    boolean isFirstBoot = (tempString != null && "".equals(tempString)) ? true : false;    if (isFirstBoot) {        SystemProperties.set("persist.sys.firstboot", "false");        setSettingsLocked(userHandle);    }    /*zhanghao end*/

更多相关文章

  1. Android(安卓)studio 43 文件存储到sdcard download文件夹下
  2. android多国语言文件夹汇总
  3. Android(安卓)SDK 源码下载,eclipse关联代码
  4. Android中集成QQ登陆和QQ空间分享
  5. Android(安卓)中的 requestWindowFeature 收藏
  6. Android(安卓)G711A 音频编解码,去除“吱吱”电流声,附上so下载地
  7. MTK Android(安卓)N 源码Rom Root
  8. android如何读取assets目录下的资源
  9. Android(安卓)使用RecyclerView的方法

随机推荐

  1. Android(安卓)内存管理工具
  2. Android(安卓)如何设置网关和路由
  3. Android(安卓)5.0WebView选择本地文件
  4. Android(安卓)UI布局练习1(垂直分布)
  5. Android(安卓)Intents and Intent Filter
  6. [Android(安卓)Pro] APK
  7. Android的文件系统结构
  8. Android之ViewPager的使用
  9. android 蓝牙各种UUID
  10. android 学习笔记