移动叔叔

标题: boot.img文件的解包/打包/工具/献给需要的人 [打印本页]

作者: 淡释心愁    时间: 2015-8-24 19:01
标题: boot.img文件的解包/打包/工具/献给需要的人
                                              来源于    gl_jiang@126


Android 产品中,内核格式是Linux标准的zImage,根文件系统采用ramdisk格式。这两者在Android下是直接合并在一起取名为boot.img,会放在一个独立分区当中。这个分区格式是Android自行制定的格式。


Android开发时,最标准的做法是重新编译于内核和根文件系统,然后调用Android给的命令行文件mkbootimg(out/host/linux-x86/bin/)来打包。

在制作手机ROM时,有时会单独编译内核或抽出根文件进行修改内容,比如我只编译内核,其余的地方不变。这样重新安装巨大的Android开发环境实在不划算。因此很多boot.img解包工具被人开发出来,这一些工具都是把内核和根文件系统从一个现成的boot.img抽取出来,修发后再次打包还原。


一.常见的解包工具
因为boot.img的格式比较简单,它主要分为三大块(有的可能有四块)


+—————–+
| boot header | 1 page
+—————–+
| kernel | n pages
+—————–+
| ramdisk | m pages
+—————–+
| second stage | o pages
+—————–+
n = (kernel_size + page_size – 1) / page_size
m = (ramdisk_size + page_size – 1) / page_size
o = (second_size + page_size – 1) / page_size
0. all entities are page_size aligned in flash
1. kernel and ramdisk are required (size != 0)
2. second is optional (second_size == 0 -> no second)
因此很多人开发分析工具,有是linux shell脚本,比如repack-zImage,也有人采用perl,还有C语言编写的 unbootimg,



我使用的是在源码位置system/core/mkbootimg/ 下的 mkbootimg。为了简化,蓝点工坊把与mkbootimg中打包工具和解包工具以及所包含的libmincrpty库抽出来,并且重写一个Makefile,作为开源项目。
使用者只需要在linux(需安装gcc,make,一般是标配)或windows(需要安装mingw)的命令行执行make,即可产生可执行文件 mkbootimg ,unpackbootimg。


二.解/打包工具使用
解包工具:unpackbootimg


usage: unpackbootimg
-i|–input boot.img
[ -o|--output output_directory]
[ -p|--pagesize ]
常见格式
unpackbootimg -i .\tmp\boot.img -o .\out

这一句命令行表示把boot.img解包,所有文件输出到out目录下


它会解压出如下文件:

boot.img-zImage (内核文件)

boot.img-ramdisk.gz (根文件系统打包文件)
boot.img-cmdline (mkbootimg cmdline参数)
boot.img-pagesize (mkbootimg pagesize参数)

boot.img-base (mkbootimg base参数)


打包工具:mkbootimg (Android自带)
H:\ttt>mkbootimg.exe
error: no output filename specified
usage: 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 02e00000
这句含义是把内核文件zImage和boot目录下的根文件压缩包 boot.img-ramdisk.gz打包成boot.img.
其中cmdline和base的值均来源于unpackbootimg的结果


需要工具:
  • unpackbootimg        百度网盘:
  • repack-bootimg.pl    百度网盘:



作者: 552110805    时间: 2016-1-14 16:26

作者: Smile笑笑    时间: 2016-1-27 17:55
perlperlperlperlperlperlperlperlperlperl
作者: simplesky    时间: 2016-2-10 13:29
不错哦

作者: fengzgihen    时间: 2016-3-20 10:42
牛逼啊,大神

作者: LONG99688    时间: 2016-3-22 13:29
淡定,淡定,淡定……
作者: 草墨院    时间: 2016-3-25 12:23
卡萨诺看那呢
作者: 明天更好z    时间: 2016-4-6 14:26
我很需要。

作者: 挑战ge    时间: 2016-4-12 20:44
无回帖,不论坛,这才是人道。
作者: nisuangeniao    时间: 2016-5-29 20:29
强烈支持楼主ing……
作者: LCY2550223538    时间: 2016-7-16 15:46
7864534537837837

作者: 小颗    时间: 2016-7-20 11:37
RE: boot.img文件的解包/打包/工具/献给需要的人 [修改]

作者: 13631271817    时间: 2016-8-1 18:06
淡定,淡定,淡定……
作者: 523469389    时间: 2016-8-11 11:54
感谢楼主的热心分享
作者: love9178    时间: 2016-9-21 15:50
boot.img文件的解包/打包/工具/献给需要的人

作者: 三笑数码    时间: 2016-10-28 23:16
谢谢分享,,,

作者: dj360729    时间: 2016-10-29 17:20
提示: 作者被禁止或删除 内容自动屏蔽
作者: 2632144834    时间: 2017-2-18 14:23
饿顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶

作者: styles    时间: 2017-4-26 11:13
感谢楼主分享
作者: lushoujian    时间: 2017-4-28 17:42
东莞黄江进口车林总裁
作者: better113    时间: 2017-8-8 20:53
RE: boot.img文件的解包/打包/工具/献给需要的人

作者: 拚了!我的青春    时间: 2017-8-17 15:55
看看帖子里藏了啥好东西~~~
作者: yangjie164    时间: 2017-9-14 18:22
感谢分享!!!
作者: 游魂无言    时间: 2017-10-4 01:19
回复可见。。。
作者: 123zjn    时间: 2017-10-20 18:48
666666

作者: hardkeep    时间: 2017-11-1 16:50
反反复复反反复复反反复复

作者: ruo67    时间: 2017-12-30 10:46
线刷包转卡刷ROM包工具线刷包转卡刷ROM包工具

作者: w635815155    时间: 2018-3-24 01:37
精品资源,强烈推荐!
作者: sjs16999    时间: 2018-3-24 13:53
谢谢谢谢谢谢谢谢

作者: xk141    时间: 2018-3-27 21:42
这个特别的需要

作者: DingLei1    时间: 2018-5-16 11:18
很感谢!

作者: 18123988006    时间: 2019-3-11 08:32
快快快快快快快

作者: jjss520    时间: 2019-6-28 15:05
这都要隐藏啊……
作者: 哥的红米1S    时间: 2019-8-14 11:18
4444444444444444444

作者: doctorhan    时间: 2020-6-14 23:00
taihaol,buzhidaohaobuhaoyong

作者: 千shou    时间: 2020-7-31 19:30
666666666666666666666


作者: 茴香豆豆    时间: 2021-3-24 23:12
111111111111111111111111111

作者: 2899614575    时间: 2021-4-30 22:56
nbrenxing


作者: 2899614575    时间: 2021-4-30 22:57
111111111111111111


作者: qq1255678909    时间: 2021-5-1 13:44
sddfhdfhd

作者: 297951014    时间: 2021-8-30 00:57
强烈支持楼主ing……
作者: 87567620    时间: 2021-11-1 03:00
77777777777777777777777777777777777777777777

作者: grand88    时间: 2023-9-11 11:29
aw34efrdegr5frt5hyj6dty756ju7ki8tyhiyu7kl8ghuft

作者: 回复封口费    时间: 3 天前
boot.img






欢迎光临 移动叔叔 (http://bbs.ydss.cn/) Powered by Discuz! X3.2