Android 13.0 第三方无源码apk授予QUERY_ALL_PACKAGES等其他权限的方法

本文介绍了在Android 13.0系统中,针对内置第三方低版本app遇到的权限问题及解决方案。分析了系统在启动时如何处理权限,特别是在PMS扫描和解析APK过程中如何授予QUERY_ALL_PACKAGES等权限。详细探讨了ParsingPackageUtils.java中parseBaseApkTag和parseUsesPermission方法,解析权限申请的过程,并提出了如何为无源码apk添加权限的策略。
摘要由CSDN通过智能技术生成

1.概述

在13.0的系统产品中,对于内置第三方低版本app时,会有某些权限的冲突,导致在启动app时,崩溃掉,在查询相关日志发现是报权限的问题,所以就需要在安装解析app的时候,授予权限

2.第三方无源码apk授予QUERY_ALL_PACKAGES等其他权限的方法的核心类

/frameworks/base/core/java/android/content/pm/parsing/ParsingPackageUtils.java

3.第三方无源码apk授予QUERY_ALL_PACKAGES等其他权限的方法的核心功能分析和实现

在13.0的系统中启动的时候,在pms负责扫描安装app的时候,先读取packages.xml文件,解析后将数据存放到mSettings中,代表上次启动时的应用包信息。
然后扫描所有APK目录并解析APK,最后更新packages.xml文件。而 packages.xml文件 是在 Settings 构造方法中创建。
data/app 是用户已安装App所在的目录,另外还有system/app存放 系统App。PMS构造方法中会对 这两个目录在内的多个目录进行扫描,
我们这里可以猜想到这是开机时对所有已安装App的初始化。scanDirTracedLI()又走到scanDirLI(),
解析安装授权app的时候是在ParsingPackageUtils.java中负责

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

安卓兼职framework应用工程师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值