Chinaunix首页 | 论坛 | 博客
  • 博客访问: 368388
  • 博文数量: 124
  • 博客积分: 30
  • 博客等级: 民兵
  • 技术积分: 11
  • 用 户 组: 普通用户
  • 注册时间: 2011-08-29 22:22
文章分类

全部博文(124)

文章存档

2016年(8)

2015年(52)

2014年(53)

2013年(11)

分类: LINUX

2015-02-27 09:43:44

 boot.img

boot和recovery映像并不是一个完整的文件系统,它们是一种android自定义的文件格式,该格式包括了2K的文件头,后面紧跟着是用gzip压缩过的内核,再后面是一个ramdisk内存盘,

ramdisk映像是一个最基础的小型文件系统,它包括了初始化系统所需要的全部核心文件,例如:初始化init进程以及init.rc(可以用于设置很多系统的参数)等文件。以下是一个典型的ramdisk中包含的文件列表:

./init.trout.rc
./default.prop
./proc
./dev
./init.rc
./init
./sys
./init.goldfish.rc
./sbin
./sbin/adbd
./system
./data

(-) 解压
    (1)下载 split_bootimg.pl
    (2)split_bootimg.pl boot.img  将分解出gzipped kernel 和 boot.img-ramdisk.gz
    (3)gunzip -c boot.img-ramdisk.gz  |cpio -i
        这样就把rootfs 解压出来了
(二) 打包
    (1) 打包rootfs
     在当前目录下,把所有不需要的文件清理掉
    find . | cpio --H newc | gzip > ../newramdisk.cpio.gz
    (2) 制作boot.img
    mkbootimg --cmdline 'no_console_suspend=1 console=null' --kernel your-kernel-file --ramdisk newramdisk
 
 
 
 
对于system.img 文件
  system.img 也就是一个yaffs格式的文件。
  
 
 解包工具unyaffs的代码下载地址为:

编译方法非常地简单,只需要下载源代码,然后运行:
$ gcc -c unyaffs.c
$ gcc -o unyaffs unyaffs.o
即可生成这个unyaffs的解包工具,
unyaffs工具需要放到linux的/bin目录下,并赋予执行权限sudo chmod 777 unyaffs
 
执行unyaffssystem.img
 
2. 编译yaffs2镜像制作工具:mkyaffs2image

//点击左下角的 Download tarball 下整个tar包

解压,进入utils目录,编译
生成 mkyaffs2image 及 mkyaffs

命令格式
#./mkyaffs2image system/ system.img

 

参考:

http://blog.csdn.net/zhenwenxian/archive/2010/09/01/5856583.aspx

 

 

 

 

阅读(2620) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~