vendor_boot.img

`vendor_boot.img` 是 Android 操作系统中的一个重要镜像文件,主要用于设备启动过程中加载与供应商(vendor)相关的特定内容。它是在 Android 11 及以后版本中引入的,用于分离供应商特定的启动项。

### 具体作用和内容:

1. 内核(Kernel)

  1. `vendor_boot.img` 中包含与供应商相关的内核镜像。设备启动时,`vendor_boot` 分区负责加载供应商修改过的内核或部分补充内核内容。

2. 供应商启动脚本

  1. 该镜像文件中包含与设备启动相关的供应商特定启动脚本和引导参数。这些脚本会指示系统如何加载供应商特定的硬件驱动、初始化设备硬件等。

3. 供应商特定驱动和模块

  1. `vendor_boot.img` 文件还可以包含某些供应商特定的设备驱动或启动阶段需要的硬件模块。这些模块通常是与特定设备硬件相关联的,比如摄像头、Wi-Fi、蓝牙等。

4. Ramdisk(虚拟文件系统)

  1. 它可能包含一个供应商定制的 `ramdisk`(虚拟内存磁盘),用于存储设备在启动过程中临时需要的文件或指令。这个 `ramdisk` 主要用于设备的早期初始化,特别是涉及到供应商驱动和配置文件的加载。

### 为什么引入 `vendor_boot.img`? - 分离内核和供应商启动内容:在 Android 11 之前,供应商启动项通常与 `boot.img` 一起存储。但随着 Android 分区结构的变化和系统模块化的推进,Google 在 Android 11 中引入了 `vendor_boot` 分区,目的是将供应商相关的启动内容从 `boot.img` 中分离出来。这有助于更好地管理和更新供应商特定的启动内容,同时减少对 Android 原生启动文件的影响。

- 支持 Project Treble:Android 推出的 Project Treble 项目旨在通过系统与硬件抽象层(HAL)的分离来加快 Android 系统的更新速度。`vendor_boot.img` 是这个模块化结构的一部分,允许不同的设备厂商在不修改 Android 系统的核心部分的情况下,轻松适配其设备的驱动和硬件支持。

### 总结 `vendor_boot.img` 是 Android 11 及以上版本中的一个关键启动镜像文件,主要存储与供应商(vendor)相关的内核、启动参数和硬件驱动,帮助设备在启动过程中正确初始化和识别硬件。这是为了实现更好的系统模块化,尤其是在 Project Treble 架构下的应用。