No.1 make解压工具        

下载:ext4_utils源码包编译

下载地址:

解压:ext4_utils

android img 解压工具 手机解压img文件_固件

如果有错误 cannot output_file.c
就需要安装zlib库,运行:
sudo apt-get install zlib1g-dev


No.2   解压 system.img

把得到的make_ext4fs simg2img 和mkuserimg.sh放在你的工作目录下,把固件包里解压出来的sysmtem.img拷贝到工作目录。

[生成ext4格式的文件]

./simg2img system.img system.img.ext4         (输入./simg2img的意思是,执行当前目录下的这个文件)

mkdir tmp

[在tmp中对system系统镜像做修改]

mount -t ext4 -o loop system.img.ext4 tmp/ 

android img 解压工具 手机解压img文件_固件_02


查看tmp目录可以看见如下:

android img 解压工具 手机解压img文件_android img 解压工具_03


这时候可以进入挂载的目录mysys里面查看各个文件,甚至是修改了。不过这时候要注意一点,就是保持文件的原始权限,如果一不小心修改错了,那么你可以将文件权限设置最大的777,然后再修改用户为root既可
小提示:app目录内的文件权限都是644,framework目录也是644,其他目录一般也都是644的,文件夹权限一般都是755


举个例子,我准备把su这个文件加到固件的bin目录下,并且修改权限

cp ~/work/su ./
ls -l su -rwxr-xr-x 1 root root 26264 2011-07-17 21:16 su
sudo chown root.2000 su
ls -l su -rwxr-xr-x 1 root 2000 26264 2011-07-17 21:16 su
sudo chmod 06755 suls -l su -rwsr-sr-x 1 root 2000 26264 2011-07-17 21:16 su



(如果你不知道权限该如何设置,可以使用命令 ls -l sysmain/app 查看文件具体权限,根据其他文件的权限来修改你的文件权限即可)
(当你替换已经存在的文件,无需修改权限,如果放入一个没有存在过的文件,切记修改相应的用户组,使用命令 chown root.root 来修改它的用户和用户组)
如果执行命令权限不足,可以在每个命令前加上sudo命令,这样可以以最高权限执行每个命令了
这个就是将app目录设置为权限高,然后你将文件放入。放入后记得一定要再将你放入的文件权限改好。同时恢复app原始权限
一般建议大家使用命令来移动、复制文件,这样不存在权限问题


No.3      打包

./mkuserimg.sh -s sysmain systest.img.ext4 ext4 tmp 512M

注意:tmp是我在当前目录新建立的一个目录,后面的512M是这个镜像打包后占用空间大小。如果你不知道你的镜像包应该多大,你查看你镜像挂载到目录后,这个镜像分区的大小
当你完成以上步骤,新的systest.img.ext4成功生成了,好了,你可以在fastboot模式下刷入了


有个朋友如此做:避免无权限的问题。temp是个临时挂载目录,需要你手工建立。

sudo /home/xiaolu/work/mkuserimg.sh -s /home/xiaolu/work/ZNKG5  /home/xiaolu/work/ZNKG5-new.img ext4 /home/xiaolu/work/temp 512M

sudo /home/xiaolu/work/mkuserimg.sh -s /home/xiaolu/work/ZNKG5  /home/xiaolu/work/ZNKG5-new.img ext4 /home/xiaolu/work/temp 512M 
in mkuserimg.sh PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin ./make_ext4fs -s -l 512M -a /
home/xiaolu/work/temp /home/xiaolu/work/ZNKG5-new.img /home/xiaolu/work/ZNKG5