• Android PackageManager packages.xml文件格式


    packages.xml文件存放在/data/system目录下
        该文件记录了系统中所有应用程序的包管理相关信息
        PmS根据该文件进行包管理的各种操作

    标签 所包含的
    last-platform-version internal="17" external="17"
    <permission-trees /> 暂时不使用
    <permissions>
        <item />
    </permissions>
    <item name="android.permission.CHANGE_WIFI_MULTICAST_STATE" package="android" protection="1" />
    <package>
        <sigs>
            <cert />
        </sigs>
        <perms>
            <item />
        </perms>
    </package>
    <package
        name="com.sec.android.gallery3d"
        codePath="/system/app/SecGallery2013.apk"
        nativeLibraryPath="/data/app-lib/SecGallery2013"
        flags="1621061"
        ft="143fbeddf38"
        it="143fbeddf38"
        ut="143fbeddf38"
        version="17"
        userId="10088">
     
        <sigs count="1">
            <cert index="3" key="30820...." />
        </sigs>
        <perms>
            <item name="android.permission.READ_EXTERNAL_STORAGE" />
            <item name="android.permission.GET_TASKS" />
        </perms>
    </package>
    disabled-components <item name="com.android.email.service.MailService">
    prefered-activities 偏好设置,比如当一个intent对应了两个Activity是,系弹出一对话框提示用户要执行那个Activity,并且提供一个
    选框,用户可以勾选选框,从而使得以后每次都执行相同的Activity,而个信息就保存在该标签中
    <shared-user>
        <sigs>
            <cert/>
        </sigs>
        <perms>
           <item />
        </perms>
    </shared-user>
    <shared-user name="org.simalliance.uid.openmobileapi" userId="1101">
    <sigs count="1">
    <cert index="0" />
    </sigs>
    <perms>
    <item name="android.permission.NFC" />
    <item name="android.permission.READ_PHONE_STATE" />
    <item name="android.permission.READ_EXTERNAL_STORAGE" />
    <item name="org.simalliance.openmobileapi.SMARTCARD" />
    <item name="android.permission.RECEIVE_BOOT_COMPLETED" />
    <item name="android.permission.WRITE_SECURE_SETTINGS" />
    <item name="android.permission.WRITE_EXTERNAL_STORAGE" />
    </perms>
    </shared-user>
    cleaning-package 程序已删除,但是对应的程序数据目录还没有删除,默认卸载不会清除数据
    update-package  

        1. last-platform-version 标签
            系统升级后重新为已安装的程序设置访问权限,重新建立包管理所需懂得XML文件
            一般和相应得SDK版本号相同
            两个属性:internal表示内部存储区上的程序被跟更新前系统的版本号
                external表示外部存储区程序更新前的系统版本号
                这两个号一般相同
        2. permission 标签
            保存了系统所有的权限列表(1. Framework定义的权限(系统权限), 2. App自定义的权限)
                Framework定义的权限是在 android/framework/base/core/res/rs/AndroidManifest.xml中

            每个permission都由一个item标签标识,item标签中分别包含三种属性
                ① name: 权限名称。系统名称一般以android.permission开头。App一般以所属的包名开头。权限名称必须全局唯一
                ② package: 权限所在的包名。Framework对应的包名是android。
                ③ protection:保护级别。一共有4中保护级别,普通,危险,签名,系统

            

  • 相关阅读:
    【免费赠书】前端程序员修炼之路:积土而为山,积水而为海
    开源网站流量统计系统Piwik源码分析——后台处理(二)
    开源网站流量统计系统Piwik源码分析——参数统计(一)
    数学思维修炼
    《代码大全》中的变量
    linux dmesg命令参数及用法详解(linux显示开机信息命令)
    dd命令使用详解
    Linux就这个范儿 第10章 生死与共的兄弟
    Linux就这个范儿 第9章 特种文件系统
    Bash中的shopt选项
  • 原文地址:https://www.cnblogs.com/carlo/p/4877474.html
Copyright © 2020-2023  润新知