AOSP 编译后产生的 img 总结
AOSP 编译完成后在 `out/target/product/****/` 目录下生成的一系列 `.img` 文件。这些 `.img` 文件大多是将来烧录到设备(或模拟器)中的系统分区镜像。下面是对每个镜像文件的详细解释:
🔧 各 .img 文件含义详解
| 文件名 | 说明 |
|---|---|
boot-debug.img |
带有调试信息的 boot 镜像,可能用于开发调试。 |
boot.img |
包含内核 (kernel) 和 ramdisk,是设备启动的核心部分。 |
cache.img |
系统使用的临时缓存分区,运行时用于缓存 OTA 下载内容、安装包等。 |
dtb.img / dtbo.img |
Device Tree Blob(设备树)用于描述硬件布局;dtbo 是 Overlay(覆盖层)。 |
metadata.img |
Android Verified Boot (AVB) 或 FBE(文件级加密)所需的元数据分区。 |
persist.img |
持久性数据存储(如 Wi-Fi 校准数据、蓝牙地址、传感器配置等),系统不会格式化。 |
prebuilt_dtbo.img |
预构建的设备树 Overlay 镜像,有时与 dtbo.img 相同。 |
product.img |
存放设备厂商特有的 App、库等(Project Treble 后新增的分区)。 |
ramdisk-debug.img |
用于调试的 initramfs,可能包含额外日志等信息。 |
ramdisk.img |
与 boot.img 一起使用,启动时加载基础文件系统的临时根目录。 |
ramdisk-recovery.img |
Recovery 模式下使用的 ramdisk。 |
recovery.img |
Recovery 分区镜像,用于进入系统恢复模式。 |
super.img |
动态分区系统的容器,包含 system、product、vendor 等逻辑分区(Android Q 起)。 |
super_empty.img |
空的 super 分区模板,供动态映像生成工具使用。 |
system.img |
系统分区,包含 Android 操作系统的核心组件(framework、核心应用等)。 |
system_ext.img |
系统扩展分区(Project Treble 后),一般用于 AOSP 扩展之外的 system 组件。 |
userdata.img |
用户数据区,用于实际用户数据存储(安装 App、设置、下载等)。 |
userdata-qemu.img |
专为模拟器(QEMU)准备的用户数据分区。 |
vbmeta.img |
AVB 元信息,校验 boot、system 等分区的完整性。 |
vbmeta_system.img |
如果 system 分区启用了独立的 AVB 校验,会生成此镜像。 |
vendor.img |
硬件相关的 HAL、驱动库、二进制 blob 等,和设备厂商强相关。 |
🧠 附加知识:关键系统分区简图
┌──────────────┬────────────────────────────────────┐
│ boot.img │ 启动内核 + ramdisk │
├──────────────┼────────────────────────────────────┤
│ recovery.img │ 恢复模式(启动修复/刷机) │
├──────────────┼────────────────────────────────────┤
│ system.img │ Android 核心系统 │
├──────────────┼────────────────────────────────────┤
│ vendor.img │ 硬件相关代码,驱动库,HAL │
├──────────────┼────────────────────────────────────┤
│ product.img │ 自定义 app, 配置文件 │
├──────────────┼────────────────────────────────────┤
│ userdata.img │ 用户数据、安装的 App │
├──────────────┼────────────────────────────────────┤
│ vbmeta.img │ 启动时验证用,防止 image 被篡改 │
└──────────────┴────────────────────────────────────┘
🛠️ 模拟器或真机烧录常用 img
对于模拟器启动常用:
kernel(可能打包在boot.img)system.imguserdata.img或userdata-qemu.imgramdisk.img(或者直接用boot.img启动)
对于烧录真机:
boot.imgrecovery.imgsystem.imgvendor.imgvbmeta.imgdtbo.imgpersist.imgsuper.img(如果使用动态分区)
如果你想运行模拟器而不是烧录真机,可以使用如下命令(假设你使用的是 AOSP 自带 emulator):
emulator -verbose -show-kernel \
-kernel kernel-ranchu \
-ramdisk ramdisk.img \
-system system.img \
-userdata userdata-qemu.img \
-gpu host
⚠️注意:有的设备不会生成 kernel-ranchu,你可能需要手动指明内核或者直接使用 boot.img。

浙公网安备 33010602011771号