android的system.img,userdata.img,ramdisk.img分析

1.用file命令查询文件类型

file ramdisk.img --> ramdisk.img: gzip compressed data, from Unix

file system.img --> system.img: VMS Alpha executable

file system.img --> userdata.img: VMS Alpha executable

结论:ramdisk.img用gzip打包和解压,file system.img和file system.img用unyaffs解压,用mkyaffs2image压缩而成.

2.mkyaffs2image可在out文件夹里查找到(注意是要在编译成功后的out里查找) find out -name mkyaffs2image

unyaffs下载地址: http://code.google.com/p/tookubuntu/downloads/detail?name=unyaffs.tar.gz&can=2&q=

将上述五个文件拷入同一文件夹,以便操作...

3.gunzip ramdisk.img.gz解压之后,我们发现它是一个小型的文件系统,包含一些对于启动android的很重要的文件,比如内核启动完后加载的第一个进程init、一些重要的配置文件等,总之它控制着整个android的启动。根据 init.rc,init.goldfish.rc来初始化并装载系统库、程序等直到开机完成。init.rc脚本包括了文件系统初始化、装载的许多过程。init.rc的工作主要是:
1)设置一些环境变量
2)创建system、sdcard、data、cache等目录
3)把一些文件系统mount到一些目录去,如,mount tmpfs tmpfs /sqlite_stmt_journals
4)设置一些文件的用户群组、权限
5)设置一些线程参数
6)设置TCP缓存大小

4.解压system.img

./unyaffs system.img

android的应用程序,所需要的库文件,各种资源,framework jar库等均包含在system.img中.

5.解压userdata.img

./unyaffs userdata.img

这里包含部分不太重要的应用程序

你可能感兴趣的:(Android移动开发)