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中保护级别,普通,危险,签名,系统

时间: 2024-11-03 09:52:52

Android PackageManager packages.xml文件格式的相关文章

[gitbook] Android框架分析系列之Android PackageManager

请支持作者原创: https://mr-cao.gitbooks.io/Android/content/android-traces.html点击打开链接 Android PackageManager Table of Contents 1. Android APK文件 1.1. APK签名 2. APK文件的安装 2.1. PackageManagerService 2.2. installd 2.3. PackageInstaller 2.4. pm 命令 本文章围绕着Android的包管理

Android系统中的 packages.xml与packages.list

PackageManagerService将解析的每个apk的信息保存到packages.xml和packages.list文件里,packages.list记录了如下数据:pkgName,userId,debugFlag,dataPath(包的数据路径) packages.xml里面记录了系统当中安装的APK的所有属性,权限等信息.当系统中的APK安装.删除.升级时,文件就会被更新.

Android PackageManager基础知识

一.PackageManagerService启动过程 SystemServer首先启动,创建一个ServerThread线程来启动所有Android核心服务,其中PackageManagerService.main方法启动了PackageManagerService. main方法中就是实例化PackageManagerService对象,并注册到ServiceManager中. PackageManagerService的构造过程设计到几个重要的操作:    1.创建Settings对象,向

Android PackageManager概览

1. 应用程序层    调用ContextImpl类的getPackageManager()函数返回一个PackageManager对象,通过该对象调用各种API接口.    getPackageManager()函数和getSystemService()的过程基本相似,都是从ServiceManager获得指定名称的Ibinder对象,此处名称是"package"——getSystemService("package"). 2. PackageManagerSer

android获取string.xml的值

转自 http://blog.sina.com.cn/s/blog_618199e601011bst.html 为什么需要把应用中出现的文字单独存放在string.xml文件中呢? 一:是为了国际化,当需要国际化时,只需要再提供一个string.xml文件,把里面的汉子信息都修改为对应的语言(如,English),再运行程序时,android操作系统会根据用户手机的语言环境和国家来自动选择相应的string.xml文件,这时手机界面就会显示出英文.这样做国际化非常的方便. 二:为了减少应用的体积

Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-2.xml, reason:

最近接受的这个项目需要Android SDK Tools revision 22.6.2 or above.,所以必须得更新SDK, 然而在SDKmanager中更新android SDK 总是提示: Fetching http://dl-ssl.google.com/android/repository/addons_list-2.xmlFetched Add-ons List successfullyFetching URL: http://dl-ssl.google.com/android

android获取string.xml的值(转)

为什么需要把应用中出现的文字单独存放在string.xml文件中呢? 一:是为了国际化,当需要国际化时,只需要再提供一个string.xml文件,把里面的汉子信息都修改为对应的语言(如,English),再运行程序时,android操作系统会根据用户手机的语言环境和国家来自动选择相应的string.xml文件,这时手机界面就会显示出英文.这样做国际化非常的方便. 二:为了减少应用的体积,降低数据的冗余.假设在应用中要使用"我们一直在努力"这段文字1000次,如果在每次使用时直接写上这几

[转载]关于android SDK安装Failed to fetch URL http://dl-ssl.google.com/android/repository/addons_list-1.xml出错

原文地址为:http://blog.csdn.net/springsky_/article/details/7442388 因为入行移动测试,所以很多测试环境的搭建.从中遇到了和这个GG同样的问题.怕GG哪天删了,就转载了GG的博文~ 最近SDK出问题了,然后在google下载了一个android-sdk-windows.rar,然后点击SDK Manager,结果一直不能刷新API Level,然后就开始在网上找了好多资料,解决这个问题,修改 HOSTS,    HTTP  和  HTTPS 

android的布局xml文件如何添加注释?

xml布局文件如图添加注释后报错,错误内容如下: 上网查阅xml添加注释的语法规则: XML 中的注释 在 XML 中编写注释的语法与 HTML 的语法很相似: <!--This is a comment--> 并不是注释本身的问题. 因此可能是Android中的xml有特殊的规定,继续搜索发现有网友说: Android中的xml只能在组件布局代码后,或者在组件的前面添加注释.如下所示:<RelativeLayout        android:id="@+id/item_l