Android 系统中,应用申请的权限相关信息介绍

在 Android 系统中,应用申请的权限 由 Android Framework 负责管理,并存储在 系统数据库和文件 中。主要存储位置如下:

1. /data/system/packages.xml

  • 存储内容:

    • 记录已安装应用的权限信息

    • 由 Package Manager Service (PMS) 维护

  • 存储路径:

    • 完整路径:/data/system/packages.xml

    • 示例内容:

<package name="com.example.app" codePath="/data/app/com.example.app-1/base.apk">
    <perms>
        <item name="android.permission.CAMERA"  granted="true" flags="0"/>
        <item name="android.permission.ACCESS_FINE_LOCATION"  granted="true" flags="0"/>
    </perms>
</package>
  • 设备使用者存取方式:

需要 root 权限 才能访问

修改此文件可能会导致系统不稳定

2. /data/system/appops.xml (应用权限操作记录)

  • 存储内容:

    • 记录用户对权限的操作(如“始终允许”/“仅在使用时允许”/“拒绝”)

    • 由 AppOpsService 维护

  • 存储路径:

    • 完整路径:/data/system/appops.xml
  • 示例内容:(老版本的

<app-ops>
    <!-- 每个 <pkg> 代表一个应用 -->
    <pkg name="com.example.app">
        <!-- 每个 <uid> 代表该应用的用户 ID -->
        <uid n="10001">
            <!-- 每个 <op> 代表一个权限操作 -->
            <op n="1" mode="0" duration="..." time="..." rejectTime="..." />
            <op n="2" mode="1" />
            <!-- ... -->
        </uid>
    </pkg>
    <!-- 可能有多个 <pkg> -->
</app-ops>

关键字段解析
在这里插入图片描述
android11 新版本,xml的attribute的名字换了,详情参考AppOpsService 的函数void writeState()

例如:




常见的 AppOps 权限代码
在这里插入图片描述

3. 权限管理服务

  • Package Manager Service(PMS)

    • 负责管理应用权限(安装、卸载、查询)
  • AppOpsService

    • 记录应用权限的动态变化(如用户手动更改权限)

总结

在这里插入图片描述
如果你想具体查看某个应用的权限数据,需要 root 权限,然后用 adb shell 或 cat 命令查看相关 XML 文件:

adb root
adb shell cat /data/system/packages.xml
adb shell cat /data/system/appops.xml

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值