android bootimg systemimg dataimg

来源:互联网 发布:妮维雅怎么样知乎 编辑:程序博客网 时间:2024/06/13 03:05

    • bootimg 构成 压缩解压
    • systemimg的解压方法
    • userdata 和 cache

做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.csdn.net/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删除。

0 0