做android系统的兄弟都知道,android系统编译完成后生成的目标文件会包含几个img boot.img system.img data.img 等
可以通过fastboot 工具,在fastboot 环境下执行fastboot 命令烧录进去。
例如: fastboot flash boot boot.img
烧录完后,这几个img会挂载到文件系统中相应的地方,系统就可以读取操作了。
bootimg 构成 压缩解压
kernel的编译完后的文件格式是zimage格式,而根目录编译完后会以cpio压缩后生成个ramdisk文件。最后会用android 自带的工具mkbootimg生成boot.img文件而boot.img中不光为这两个部分,具体可以用开源工具unbootimg repack-zImage 解压看到由文件头信息boot header,压缩的内核,文件系统数据ramdisk以及second stage loader(可选)组成,它们之间非页面对齐部分用0填充,可以从bootimg.h文件中看到。
** +—————–+
** | boot header | 1 page
** +—————–+
** | kernel | n pages
** +—————–+
** | ramdisk | m pages
** +—————–+
** | second stage | o pages
** +—————–+
second stage可有可无 如上所说kernel再zImge中
根目录内容压缩再ramdisk中,也就是说开机流程中很重要的init进程再ramdisk中如果修改init进程就需要烧写boot.img而不是system.img
http://blog.youkuaiyun.com/zhenwenxian/article/details/6219431/
systemimg的解压方法
system.img 是主要的系统文件所在,framework 各种系统运行的动态库 system文件目录下的东西都会在编译完后压缩在system.img中可以用unyaffs解压 也可以用 simg2img和mount结合解压查看
./simg2img system.img system.img.tmp
mkdir system_extracted
sudo mount -o llop system.img.tmp system_extracted
可以看到相应的文件了。
userdata 和 cache
Userdata.img 和cache.img被用来存储相关的业务数据,所有数据可以通过fastboot -w删除。
Android系统编译后生成boot.img、system.img、data.img等img文件。boot.img包含boot header、kernel、ramdisk(包含init进程)和可选的second stage loader。system.img是主要系统文件,使用unyaffs或simg2img进行解压。userdata.img和cache.img用于存储业务数据,可使用fastboot -w删除。
1414

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



