UEFI XBL Bootloader 替换开机Logo

本文介绍了高通QCM6125平台如何使用UEFI(XBL+ABL)替代LK,并且详细阐述了两种替换开机Logo的方法:一种是将Logo集成在xbl.elf镜像中,另一种是通过imagefv分区保存。内容包括配置UEFI参数、修改源码、编译和烧录流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        高通QCM6125平台Bootloader使用UEFI(XBL+ABL)代替之前的MSM8953 所使用的LK(Little Kernel),因此QCM6125在Bootloader阶段display初始化以及开机Logo等显示相关的处理都与MSM8953 有所区别。并且QCM6125 UEFI ABL阶段的代码集成在Android/bootable/bootloader/edk2,而UEFI XBL阶段的代码是独立于Android代码存在。至于为什么高通要使用UEFI代替LK,个人猜测是因为UEFI本身在PC端已经极为流行,使用UEFI将大大减少移植Windwos、Ubuntu等桌面操作系统的工作量,华为、MTK等厂商估计也会跟进

        不同于MSM8953 LK Bootloader使用splash分区保存开机Logo,QCM6125 XBL有两种方式替换开机Logo,可以参考boot_images/QcomPkg/Docs/CustomSplashLogo.txt。

        第一种方式将boot_images/QcomPkg/Logo/Common/logo1.bmp文件替换为自定义的开机Logo后重新编译xbl.elf即可,开机Logo会集成在xbl.elf镜像中。这种方式是XBL默认的,建议不要使用这种方式,第一个原因是这种方式要求开机Logo文件不能太大,否则可能会编译失败;第二个原因是无法单独烧写开机Logo

        第二种方式是使用imagefv分区保存开机Logo,以下是修改流程

### Android 系统启动流程 #### XBL 阶段 高通平台上的UEFI实现由XBL和ABL两部分构成。其中,XBL主要负责芯片驱动以及充电等核心应用功能,在此阶段完成硬件初始化并提供必要的底层支持[^2]。 ```c // 假设这是简化版的XBL源码片段 void xbl_main() { initialize_chip_drivers(); enable_charging_circuitry(); } ``` #### ABL 阶段 紧接其后的是ABL阶段,这部分包含了诸如fastboot这样的与具体硬件无关的功能模块。此时会准备环境以便后续引导程序可以顺利执行。 #### Bootloader (Boot) 阶段 当上述准备工作完成后,系统进入传统意义上的bootloader阶段。该过程通常涉及加载内核镜像到内存中,并传递控制权给操作系统内核[^1]。 ```bash # 这里展示了一个典型的命令来启动Linux Kernel bootm ${loadaddr} - ${fdt_addr} ``` #### Kernel 初始化阶段 一旦获得控制权,Linux内核便开始了自身的初始化工作。这期间最重要的一步就是解析设备树文件(Device Tree Blob),它描述了系统的硬件配置情况。通过`setup_arch()`函数中的`unflatten_device_tree()`调用来处理这些信息[^3]。 ```c static void __init setup_arch(char **cmdline_p) { ... unflatten_device_tree(); // 解析DTB数据结构 ... } ``` #### Driver 加载阶段 随着内核框架搭建完毕,接下来便是依照设备树所提供的指引去匹配相应的驱动程序。对于特定类型的总线如PCI/PCIe来说,则遵循着一套标准的过程来进行枚举和绑定操作。 #### Init 和 Initrc 执行阶段 最后,经过一系列复杂的设置之后,整个系统已经准备好运行用户空间的服务进程了。这时init守护进程接管过来,依据预定义好的脚本(init.rc或其他形式),依次激活各个服务直至达到稳定的工作状态。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值