Android解包命令:unpackbootimg与打包命令:mkbootimg使用
unpackbootimg&&mkbootimg工具
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。
二.解/打包工具使用
1、解包工具: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参数)
2、打包工具: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的结果
Android解包命令:unpackbootimg与打包命令:mkbootimg使用相关推荐
- 如何解包/编辑/打包boot.img文件
感谢本文的作者:Alansj, DarkriftX, RyeBrye, Will, Try OP9, Tonyb486, Timmmm, Lxrose还有好多不知名的作者们在wiki上的不懈努力. 来 ...
- linux打包tar包命令,Linux tar打包命令详解
Linux 系统中,最常用的归档(打包)命令就是 tar,该命令可以将许多文件一起保存到一个单独的磁带或磁盘中进行归档.不仅如此,该命令还可以从归档文件中还原所需文件,也就是打包的反过程,称为解打包. ...
- Android解包打包system img的方法
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 1. ...
- linux文件分别打包命令,Linux文件打包命令
15.1 gzip gzip(1) 是GNU的压缩程序.它只对单个文件进行压缩.基本用法如下: $ gzip filename 程序执行以后,文件名会变成filename.gz,而且一般情况下大小会比 ...
- linux ext4 img解包打包教程,安卓解包、修改、打包system.img/system.img.ext4教程
自从得知ROM助手可以解包IMG的文件后,再也不用安装LINUX系统来解包和打包system.img文件,这对于新手 机友朋友无疑是一个劲爆的消息,很多朋友都对安装和操作LINUX系统的繁琐望而却步 ...
- php phar解包,关于php的打包 解包 Phar
最近用php连接hive,找到了php-thrift-sql,发现readme里面有一句: 第一次接触是韩老大的创建swooole打包文章 php -c php.ini build.php 因为php ...
- Android抓包方法(二) 之Tcpdump命令+Wireshark
前言 做前端测试,基本要求会抓包,会分析请求数据包,查看接口是否调用正确,数据返回是否正确,问题产生是定位根本原因等.学会抓包分析是测试人员必备的功课之一.最先想的基本上都会是Fiddler代理抓包, ...
- linux命令:find、打包解包、vi编辑器、用户权限
搜索命令 1.find 搜索 1.1 目标 通过find命令 在特定目录下(包含它的后代目录) 搜索 符合条件的文件 1.2 实现 : 在指定目录中 根据名称 搜索 命令格式 序号 命令格式 作用 0 ...
- ubuntu打包/解包tar命令格式
打包/解包 tar是Linux中常用的备份工具,此命令可以把一系列文件打包成一个大的文件,也可以把一个打包的大文件恢复成一系列文件. tar命令格式如下: #打包文件tar -cvf 打包文件.tar ...
最新文章
- python好学嘛-python语言好学吗
- Qt vlc视频开发libvlc_new返回空的问题
- 关于微机开操作票的研究22437
- XML和HTML的区别
- springboot+activiti工作流mybatis冲突解决办法
- OSPFv3中LSA详解(七)——Type4类LSA详解
- Windows上的Spark环境搭建后,运行时报错的问题
- 计算机画图照片大小,如何压缩图片大小,用电脑系统自带画图工具即可
- html报406错误,Ajax请求出现406的原因和解决方法
- tesseract-ocr识别英文和中文图片文字以及扫描图片实例讲解
- 计算机中的云指的是什么,古语有云,古语有云中的云指的是什么
- writing idiomatic python 读书笔记(2)
- 基于JAVA和MYSQL数据库实现的图书资料管理信息系统
- 集成 12 种协议、可于USBC端口的快充协议芯片IP2188
- 机器人搏击大赛冠军_喜报|2019中国智能机器人格斗大赛,石大学子在轮式自主格斗A、B组中包揽双冠!...
- Android 自动抓取网站图标实现分享样式的定制
- 利用TensorFlow搭建CNN,DNN网络实现图像手写识别,总结。
- 关于对《Spring Security3》翻译 (第一章 - 第三章)
- No.=Number的来历
- 齐鲁工业大学计算机科学与技术专业分数线,齐鲁工业大学计算机科学与技术专业2017年在山西理科高考录取最低分数线...