解包和打包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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值