深入解析系统固件中的各类有效负载技术
1. Depthcharge技术解析
Depthcharge在系统启动流程中扮演着关键角色。它会执行一系列特定操作来确保系统的正常启动:
- 运行所有与 INIT_FUNC(func_name) 宏关联的初始化函数,涵盖通用和主板特定的函数。
- 通用驱动和主板特定代码通过 sysinfo_t 结构来获取以平台为中心的信息。
- 在开发者或恢复模式下启动时,在执行vboot功能之前,根据需要清除内存并启用USB。
- 检查Depthcharge shell kconfig是否启用,并决定是否启动预操作系统环境。
- 调用 vboot_select_and_load_kernel() 进入vboot库,以此确定启动模式,如验证、恢复、开发者模式等。
- 在显示控制台绘制本地化的固件屏幕,向用户通知启动模式。
- 根据启动模式,从块设备获取内核映像,验证内核分区,将内核加载到内存中,并跳转到内核映像。
Depthcharge代码结构具有其独特的特点,它尽可能地保持“懒惰”,仅在主板设置期间执行请求的操作,不会在未使用设备时进行设置。其代码结构简单,专注于以安全的方式引导到Chrome操作系统(CrOS)。代码按照以下目录进行组织:
| 目录 | 描述 |
| — | — |
| board | 包含主板配置设置,定义为defconfig,用于选择所需的通用驱动,指定架构支持、内核格式等 |
| src/arch | 包含特定架构的代码 |
| src/boar
超级会员免费看
订阅专栏 解锁全文
20

被折叠的 条评论
为什么被折叠?



