立即注册
查看: 1178|回复: 0

[MTK软件经验分享] Android app设备管理器默认激活

已绑定手机
发表于 2018-11-11 00:42:48 | 显示全部楼层 |阅读模式 来自 广东省深圳市
代码路径: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");//写入标签属性和值dout.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();
        }
    }
    /*huanghh 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*/

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

合作/建议

TEL: 19168984579

工作时间:
周一到周五 9:00-11:30 13:30-19:30
  • 扫一扫关注公众号
  • 扫一扫打开小程序
Copyright © 2013-2024 一牛网 版权所有 All Rights Reserved. 帮助中心|隐私声明|联系我们|手机版|粤ICP备13053961号|营业执照|EDI证
在本版发帖搜索
扫一扫添加微信客服
QQ客服返回顶部
快速回复 返回顶部 返回列表