解包和打包i9100固件factoryfs.img办法

下载ext4_utils源码包编译。
ext4_utils.tar (200KB, 下载次数: 5)
2012-2-24 10:11:23 上传
下载次数: 5

这是我编译好的:
make_ext4fs.tar (80KB, 下载次数: 34)
2012-2-24 10:11:23 上传
下载次数: 34

  1. xiaolu@ubuntu-xiaolu:~/work$ cd ext4_utils
  2. xiaolu@ubuntu-xiaolu:~/work/ext4_utils$ make clean
  3. rm -rf *.o make_ext4fs simg2img
  4. xiaolu@ubuntu-xiaolu:~/work/ext4_utils$ make
  5. gcc -I. -DANDROID -c make_ext4fs.c
  6. gcc -I. -DANDROID -c make_ext4fs_main.c
  7. gcc -I. -DANDROID -c ext4_utils.c
  8. gcc -I. -DANDROID -c allocate.c
  9. gcc -I. -DANDROID -c backed_block.c
  10. gcc -I. -DANDROID -c output_file.c
  11. gcc -I. -DANDROID -c contents.c
  12. contents.c: In function ‘make_directory’:
  13. contents.c:118: warning: format ‘%llu’ expects type ‘long long unsigned int’, but argument 4 has type ‘u32’
  14. gcc -I. -DANDROID -c extent.c
  15. gcc -I. -DANDROID -c indirect.c
  16. gcc -I. -DANDROID -c uuid.c
  17. gcc -I. -DANDROID -c sha1.c
  18. gcc -I. -DANDROID -c sparse_crc32.c
  19. gcc make_ext4fs.o make_ext4fs_main.o ext4_utils.o allocate.o backed_block.o output_file.o contents.o extent.o indirect.o uuid.o sha1.o sparse_crc32.o -o make_ext4fs -lz
  20. gcc -I. -DANDROID -c simg2img.c
  21. gcc simg2img.o sparse_crc32.o -o simg2img
  22. xiaolu@ubuntu-xiaolu:~/work/ext4_utils$
复制代码
如果有错误/usr/bin/ld: cannot find -lz
就需要安装zlib库,运行:
sudo apt-get install zlib1g-dev

2012-2-24 10:13:28 上传
下载附件 (114.8KB)

把得到的make_ext4fs simg2img 和mkuserimg.sh放在你的工作目录下,把固件包里解压出来的factoryfs.img拷贝到工作目录。
2012-2-24 10:13:56 上传
下载附件 (68.61KB)


运行 simg2img factoryfs.img ZNKG5.img 得到512m的 ZNKG5.img,然后就可以挂载了。

  1. xiaolu@ubuntu-xiaolu:~/work$ ./simg2img factoryfs.img ZNKG5.img
  2. xiaolu@ubuntu-xiaolu:~/work$ mkdir ZNKG5
  3. xiaolu@ubuntu-xiaolu:~/work$ sudo mount -o loop ZNKG5.img ZNKG5
复制代码
2012-2-24 10:14:57 上传
下载附件 (107.9KB)

2012-2-24 10:15:33 上传
下载附件 (72.84KB)

这样你就可以对固件做修改了,可以root固件,可以精简固件,这里主要提一下权限问题,不要轻易修改这个目录的权限,要保持默认的权限,不然你打包回去会有问题的,这里我举个例子,我准备把su这个文件加到固件的bin目录下,并且修改权限。


复制代码
2012-2-24 10:16:28 上传
下载附件 (45.72KB)


打包很简单。
我是这么做的,避免无权限的问题。temp是个临时挂载目录,需要你手工建立。

sudo /home/xiaolu/work/mkuserimg.sh -s /home/xiaolu/work/ZNKG5  /home/xiaolu/work/ZNKG5-new.imgext4 /home/xiaolu/work/temp 512M
  1. xiaolu@ubuntu-xiaolu:~/work$ sudo /home/xiaolu/work/mkuserimg.sh -s /home/xiaolu/work/ZNKG5  /home/xiaolu/work/ZNKG5-new.img ext4 /home/xiaolu/work/temp 512M
  2. in mkuserimg.sh PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin
  3. ./make_ext4fs -s -l 512M -a /home/xiaolu/work/temp /home/xiaolu/work/ZNKG5-new.img /home/xiaolu/work/ZNKG5
  4. Creating filesystem with parameters:
  5.     Size: 536870912
  6.     Block size: 4096
  7.     Blocks per group: 32768
  8.     Inodes per group: 8192
  9.     Inode size: 256
  10.     Journal blocks: 2048
  11.     Label:
  12.     Blocks: 131072
  13.     Block groups: 4
  14.     Reserved block group size: 31
  15. Created filesystem with 1224/32768 inodes and 125043/131072 blocks
复制代码
2012-2-24 10:17:14 上传
下载附件 (81.94KB)

得到的ZNKG5-new.img 就可以改名成factoryfs.img打包成tar 刷机 了。
如有错漏请指教,谢谢。

转自:http://www.angeeks.com/thread-1997927-1-1.html

### 回答1: Android系统的boot.img文件是Android固件中的一个重要部分,它包含了Android系统的内核和一些初始化脚本等文件。解包打包boot.img文件是进行Android固件定制或修改的重要步骤之一。 在解包打包boot.img文件时,可以使用一些工具集来辅助完成。以下是一些常用的工具集: 1. Android Kitchen:这是一个基于Linux系统的命令行工具集,可以用来解包打包boot.img文件。它提供了一系列的命令,如unpackbootimg用于解包boot.img,mkbootimg用于打包boot.img。使用Android Kitchen工具集需要一些基本的Linux命令行操作知识。 2. Magisk Manager:这是一个通用的Android系统修改工具,其中包含了解包打包boot.img文件的功能。Magisk Manager可以通过安装Magisk框架来实现对Android系统的修改,并且提供了可视化的操作界面,方便用户进行boot.img解包打包操作。 3. Android Image Kitchen:这是另一个基于Linux系统的命令行工具集,用于解包打包Android系统的映像文件,包括boot.img文件。Android Image Kitchen提供了一系列的命令,如unpackimg用于解包boot.img,repackimg用于打包boot.img。 除了上述工具集外,还有一些第三方的GUI工具可供使用,如Magisk Manager中提供的可视化操作界面,以及一些名为"bootimage-tools"的工具集。 总之,解包打包boot.img文件是进行Android固件定制或修改的重要环节之一,可以通过一些命令行工具集,如Android Kitchen、Android Image Kitchen等,或者一些GUI工具,如Magisk Manager等,来实现这一操作。这些工具集提供了相应的命令或操作界面,方便用户进行boot.img解包打包操作。 ### 回答2: Android boot.img解包打包工具集是用于对Android系统中的boot.img文件进行解包打包操作的一组工具集。 解包工具集包括: 1. binwalk:可以用于识别和提取boot.img文件中的各种结构和组件。 2. Unpackbootimg:可以将boot.img文件解包为ramdisk.img、kernel和cmdline等组成部分。 3. mkbootimg:可以重新打包解包后的ramdisk.img、kernel和cmdline等组成部分为新的boot.img文件。 4. Android Image Kitchen:可以提取和重新打包boot.img文件中的各种文件、分区和可执行程序。 5. Bootimg-tools:提供了一系列工具来处理boot.img文件,包括解包、打印信息、拆分和合并等操作。 使用这些工具集,可以将boot.img文件解包为其包含的ramdisk、kernel和cmdline等文件,可以对这些文件进行修改和定制。然后可以使用mkbootimg或Android Image Kitchen将修改后的文件重新打包为新的boot.img文件。这样,就可以实现对Android系统启动过程中的各种配置和组件进行修改和定制。 这些工具集对于Android系统开发和定制非常有用,可以帮助开发者理解和修改Android系统的启动过程,同时也可以帮助厂商和用户改变和优化系统的启动行为。然而,由于涉及到系统底层,使用这些工具集需要谨慎操作,避免对系统造成损害。 ### 回答3: Android的boot.img是一个包含了Linux内核和设备树的镜像文件,用于引导Android设备的启动过程。解包打包boot.img需要使用一些专门的工具集。 解包boot.img的工具集主要包括以下几个工具: 1. mkbootimg工具:用于解析和生成Android boot.img文件,可以从boot.img中提取出内核、ramdisk、cmdline等信息。 2. unmkbootimg工具:用于解包boot.img文件,将其中的内核、ramdisk、cmdline等内容提取出来。可以使用该工具将boot.img解包为boot.img-zImage(内核文件)、boot.img-ramdisk.gz(ramdisk文件)等。 3. simg2img工具:用于将boot.img中的system.img(系统分区镜像)解包ext4格式的文件系统,以便进行修改和查看。 4. mkdtimg工具:用于打包设备树文件,依赖于设备树编译工具,可以将设备树编译成设备树二进制文件(.dtb)后再使用mkdtimg打包成dt.img 文件,然后将dt.img文件与之前解包得到的zImage、ramdisk等文件一起打包为新的boot.img打包boot.img的工具集主要包括以下几个工具: 1. mkbootimg工具:用于生成新的boot.img文件,需要提供新的zImage(内核文件)、ramdisk(ramdisk文件)、cmdline等参数。 2. mkdtimg工具:用于打包设备树文件,将设备树二进制文件(.dtb)打包为dt.img文件,然后将dt.img文件与zImage、ramdisk等文件一起打包为新的boot.img。 以上是Android boot.img解包打包工具集的一些介绍。需要注意的是,操作boot.img需要一定的技术知识和经验,不当的操作可能导致设备变砖或无法正常启动,因此使用前请谨慎,并在了解清楚操作步骤后进行操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值