答案是按照路径,对于手机用户安装应用都是放在/data/app
,对于系统应用则是分布各个分区中,可以简单的认为是目录,/data
就是data分区,以下的分区都会被扫描,并且只会扫描priv-app和app目录:
-
system分区下的priv-app,app目录
/system/priv-app
,/system/app
-
product分区
-
odm分区
-
oem分区
-
vendor分区
-
system_ext分区
-
data分区,最后扫描
不过这些分区都执行不是特别严格,没涉及到gms测试的基本都不怎么管,那么apk是存在什么地方呢?例如:Settings就放在/system_ext/priv-app/Settings/Settings.apk
,其他分区都是类似的,下面分析应用扫描过程还会说到。这里解释一下,为什么要分priv-app和app两个目录进行扫描? priv-app意思是这个目录里面都是privileged应用,可以获取privilege权限,权限的定义frameworks/base/core/res/AndroidManifest.xml
中找到
答案还是路径,data分区内的应用是普通应用,其他分区安装的应用都是系统应用,系统应用均不可卸载