最新动态
AndroidP应用uid的设置过程
2024-10-31 10:54

        目前有个项目,希望部分应用能运行在system uid下,但是这部分应用是第三方的,我们无法去修改这些应用的属性,因此考虑在framework层对这些特定的应用进行处理。

AndroidP应用uid的设置过程

        我们先从底层去找起,看看应用的uid是如何设置下来的。

        Android的Java应用基本都是通过ZygoteProcess来启动一个新的process:

        Zygote创建应用进程时是收到了AMS的uid参数的,从此处逆推回去,溯源找到这个参数传递的地方:

        uid是从ApplicationInfo.uid中获取到的。AMS启动应用进程时设置的uid我们暂且先不研究,我们主要从这条线索往上走,看看什么样的应用uid是为system的。

        应用package的uid实际上是由两个部分决定的,一个是普通的应用,一个是sharedUserId。我们知道,如果应用在AndroidManifest.xml中配置:

        那么应用的uid就为system,我们先来看一下这部分代码的逻辑。

        在PackageManagerService初始化时,就已经将系统的一部分自带的sharedUser添加到系统中:

        那么使用的地方在哪呢,在PackageParser解析package的时候就使用到了:

    以上就是本篇文章【AndroidP应用uid的设置过程】的全部内容了,欢迎阅览 ! 文章地址:http://www78564.xrbh.cn/quote/22817.html 
     动态      相关文章      文章      同类文章      热门文章      栏目首页      网站地图      返回首页 迅博思语移动站 http://www78564.xrbh.cn/mobile/ , 查看更多