Android系统 boot.img 结构

【前言】
  本文以我使用的 Intel x86 cherrytrail 平台为例进行说明,部分细节可能会与其它设备上看到的不同,比如 easyimage 是我们产品上自定义的分区,其它设备上如果没有是正常的。


【正文】
编译完成后我们可以在out/target/product/<ProductModelName>/obj/PACKAGING/target_files_intermediates/<ImageTypeName>/路径下找到打包前的 Android 各镜像文件的原始数据。该路径下包含了以下目录,对应设备上的各个实际分区:

BOOT/
COUNTRY/
DATA/
EASYIMAGE/
META/
OTA/
RADIO/
RECOVERY/
SYSTEM/

  boot.img 镜像是由 BOOT/ 目录中的数据打包而来。我们进入该目录,查看其中的文件有:

-rw-rw-r--  1  huangqd1 huangqd1     337 Jun 19 16:06 cmdline
-rw-rw-r--  1  huangqd1 huangqd1 8514064 Jun 19 16:06 kernel
drwxrwxr-x  1  huangqd1 huangqd1    4096 Jun 19 16:06 RAMDISK

  其中cmdline文件中存放了 Linux Kernel 的启动参数,使用 file 命令查看文件类型为:cmdline: ASCII text, with very long lines
  而kernel就是可执行的 Linux Kernel 文件,使用 file 命令查看文件类型为:kernel: x86 boot sector(因为是 x86 平台,所以是 x86 启动扇区)
  RAMDISK/目录中存放的自然就是根文件系统的文件和目录,部分目录和文件列表如下:

acct/
cache/
config/
country/
data/
dev/
frp/
lib/
mnt/
oem/
proc/
res/
root/
sbin/
storage/
sys/
system/
...

  在编译 Android 系统镜像时,最终会将 cmdline、kernel、RAMDISK/ 打包并添加上 header 组成我们看到的 boot.img。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值