系统启动的就几大阶段:
基于高通平台的Android OS启动过程,简单的说,可以分为一下几个部分:
之前一个比较老的平台大概是这样:
现在比较新的5G平台:
差别在这里,重点了解一下新平台的情况。xbl_sc主要就是一个xbl的loader,并且是一个二进制不开源的文件,至于为什么是二进制文件不开放到客户,是为了尽量避免用户进行更改里面地配置,然后避开后面多个客户改动导致地系统问题。目前 ,具体设计到哪些还不是很清楚,但是可以肯定的是有clock相关的改动。
另外,高通在出一个soc的时候,特别是面向IOT产品时,会自己定义一个产品类型和platform ID information相对应。而且,不建议用户进行后面的更改。即使,你想客制化,也不建议改动了。
关于,platform ID information相关的定义如下,可能不是很准确,但可以参考。后面有机会继续和高通确认:
platformType, platformSubType,Hardware Major,Hardware Minor.
这里的platformType可能是一个固定的数值,subType可能是这个平台上的Wi-Fi模块有关,Hardware Major/Minor则与moden有关;都不让随便改,能改的也是基于高通给的选项中动动。所以,如果还有几乎,需要和高通的TAM提前沟通一些配置,能够出客户非常想要的配置。
系统分区名称:
大部分和启动相关的代码位于non-hlos,有关的编译镜像大概有如下的几个:
一个疑问,xbl_sc是单独一个镜像吗?如果是,xbl_sc是高通签名的,那么如果我要签上自己公司的签名,会影响到启动吗?(签名是一个单独的问题,后面再继续讨论)。