对于system.img解包
http://www.cnblogs.com/l2rf/p/4229157.html
simg2img system.img system.img.ext4 将system.img转化为system.img.ext4格式
然后,新建一个目录,sytemain,将此img挂载到这个目录上:
mount -t ext4 -o loop system.img.ext4 systemain
挂载成功后,就可以在资源管理器里管理该img内的文件
重新打包:首先看看镜像挂载到目录后镜像分区的大小,如是512M,然后在终端输入:
chmod 777 ./mkuserimg.sh
./mkuserimg.sh -s systemain systest.img.ext4 ext4 512M
随后就要重新打包了
注意:下划线部分必须对应,如果是非M单位要转换成M
如果是打包成.img,则终端输入:
chmod 777 ./make_ext4fs
./make_ext4fs -l 512M -s -a system system_out.img ./systemain
卸载systemain中挂在的system.img.ext4: sudo umount systemain ; rm -rf systemain
chown -R username:users Document/ 修改目录及子目录中文件的用户所属
对于boot.img解包:
http://blog.csdn.net/wh_19910525/article/details/8200372
对于给的boot.img可以使用rom系统已经编译出的工具对其进行解包:
out/host/linux-x86/bin/unpackbooting工具:
unpackbooting -i boot.img -o boots/ 将boot.img文件都解压到boots目录下
在目录下生成了 boot.img-base boot.img-cmdline boot.img-dt boot.img-pagesize boot.img-ramdisk.gz(根文件系统打包文件) boot.img-ramdisk_offset boot.img-second boot.img-second)_offset boot.img-tags_offset boot.img-zImage(内核文件)
然后使用gzip直接解压boot.img-ramdisk.gz,即可得到boot.img系统自带的文件
打包: mkbootimg
使用系统自带的打包工具mkbootimg,使用方法:
mkbootimg --kernel <filename>
--ramdisk <filename>
[ --second <2ndbootloader-filename> ]
[ --cmdline <kernel-commandline> ]
[ --board <boardname> ]
[ --base <address> ]
[ --pagesize <pagesize> ]
-o|--output <filename>
mkbootimg --cmdline 'no_console_suspend=1 console=null' --kernel zIMAGE --ramdisk boot/boot.img-ramdisk.gz -o boot.img --base 02e0000
这句的含义是把内核文件zImage和boot目录下的根文件压缩包boot.img-ramdisk.gz打包成boot.img
其中 cmdline 和base 的值来源于unpackbootimg的结果
关于解system.new.dat文件的情况
工具: sdat2img.py
方法: $ chmod a+x sdat2img.py
#将dat文件转化为img
$ ./sdat2img.py system.transfer.list system.new.dat system.img
#此时,直接挂载system.img到文件夹systemain
$ mkdir systemain
$ sudo mount -t ext4 system.img systemain
即可查看system.img中的所有文件
关于userdata.img解包
工具: simg2img
方法: simg2img userdata.img userdata.img.raw
mkdir -p /mnt/rom/userdata
mount userdata.img.raw /mnt/rom/userdata
http://www.cnblogs.com/l2rf/p/4229157.html
simg2img system.img system.img.ext4 将system.img转化为system.img.ext4格式
然后,新建一个目录,sytemain,将此img挂载到这个目录上:
mount -t ext4 -o loop system.img.ext4 systemain
挂载成功后,就可以在资源管理器里管理该img内的文件
重新打包:首先看看镜像挂载到目录后镜像分区的大小,如是512M,然后在终端输入:
chmod 777 ./mkuserimg.sh
./mkuserimg.sh -s systemain systest.img.ext4 ext4 512M
随后就要重新打包了
注意:下划线部分必须对应,如果是非M单位要转换成M
如果是打包成.img,则终端输入:
chmod 777 ./make_ext4fs
./make_ext4fs -l 512M -s -a system system_out.img ./systemain
卸载systemain中挂在的system.img.ext4: sudo umount systemain ; rm -rf systemain
chown -R username:users Document/ 修改目录及子目录中文件的用户所属
对于boot.img解包:
http://blog.csdn.net/wh_19910525/article/details/8200372
对于给的boot.img可以使用rom系统已经编译出的工具对其进行解包:
out/host/linux-x86/bin/unpackbooting工具:
unpackbooting -i boot.img -o boots/ 将boot.img文件都解压到boots目录下
在目录下生成了 boot.img-base boot.img-cmdline boot.img-dt boot.img-pagesize boot.img-ramdisk.gz(根文件系统打包文件) boot.img-ramdisk_offset boot.img-second boot.img-second)_offset boot.img-tags_offset boot.img-zImage(内核文件)
然后使用gzip直接解压boot.img-ramdisk.gz,即可得到boot.img系统自带的文件
打包: mkbootimg
使用系统自带的打包工具mkbootimg,使用方法:
mkbootimg --kernel <filename>
--ramdisk <filename>
[ --second <2ndbootloader-filename> ]
[ --cmdline <kernel-commandline> ]
[ --board <boardname> ]
[ --base <address> ]
[ --pagesize <pagesize> ]
-o|--output <filename>
mkbootimg --cmdline 'no_console_suspend=1 console=null' --kernel zIMAGE --ramdisk boot/boot.img-ramdisk.gz -o boot.img --base 02e0000
这句的含义是把内核文件zImage和boot目录下的根文件压缩包boot.img-ramdisk.gz打包成boot.img
其中 cmdline 和base 的值来源于unpackbootimg的结果
关于解system.new.dat文件的情况
工具: sdat2img.py
方法: $ chmod a+x sdat2img.py
#将dat文件转化为img
$ ./sdat2img.py system.transfer.list system.new.dat system.img
#此时,直接挂载system.img到文件夹systemain
$ mkdir systemain
$ sudo mount -t ext4 system.img systemain
即可查看system.img中的所有文件
关于userdata.img解包
工具: simg2img
方法: simg2img userdata.img userdata.img.raw
mkdir -p /mnt/rom/userdata
mount userdata.img.raw /mnt/rom/userdata