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中负责