如何编辑、打包system.img文件

各位使用MTK提供的flash_tool进行刷机时,有否注意到刷机包中有一个system.img文件?实际上

不管是何种平台,Android系统代码编译完成后,都会生成system.img这个文件。 它是Android系统最重要的目标文件,其中包含整个Android部分的镜像

本文介绍如何解包、编辑、重新打包此文件。

 

1. system.img文件的格式
  system.img文件实际上是yaffs2格式的压缩包,关于yaffs2格式,如下是重要的参考链接:  . 官方网站:  
http://www.yaffs.net/ . 百度百科: http://baike.baidu.com/view/1655597.htm 


2. 如何解压缩system.img文件
  unyaffs2这个工具是专门用于解压缩yaffs2包的,其官方网址如下:
http://code.google.com/p/unyaffs2/     从这个网址下载到unyaffs2.c和unyaffs2.h后,gcc -o unyaffs2 unyaffs2.c即可得到此工具  然后unyaffs2 system.img,即可在当前目录下生成system.img中保存的所有文件。 为了不污染当前目录,  我一般会生成一个临时目录存放需要解压的system.img,然后在其中进行解压缩的工作。


3. 编辑解压后的内容及注意事项
  你可以用任意工具去编辑生成的文件。 到底哪些文件可以动,哪些不能动,请参看我的《MTK6573智能机平台系统文件夹文件详解》系列文章 你也可以在里面添加需要的文件,例如应用程序。  注意:类似于vi这样的工具,在编辑后会在当前目录生成临时文件,记得在编辑完成后,删除这些临时文件。
4. 重新打包


  打包要用到mkyaffs2image这个工具。这个工具在我们编译过程中会生成,存放在./out/host/linux-x86/bin/mkyaffs2image  但是你也可以从yaffs官方网站下载最新的代码自己来生成此工具,这对于你在Cygwin环境下使用这个工具特别方便。  从官方网站下载代码编译的方法如下:    。 git clone   git://www.aleph1.co.uk/yaffs2   。 cd yaffs2/utils  。 make  接下来,加入你要打包的文件都放在system这个目录下,你就可以用mkyaffs2image -f system system.img这个命令来打包。  然后它就可以被烧录到手机上使用了。     请记住一定要使用-f参数!! 这个参数保证最后烧录到手机后,所有的文件的权限、用户、组都符合目标手机的要求。否则  生成的system.img烧录到手机上后,会出现严重的权限问题。

你可能感兴趣的:(其它)