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
这里包含部分不太重要的应用程序