国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
boot.img的解包與打包

原文:http://blog.csdn.net/wh_19910525/article/details/8200372

如有侵權(quán),敬請(qǐng)告知,謝謝

Android 產(chǎn)品中,內(nèi)核格式是Linux標(biāo)準(zhǔn)的zImage,根文件系統(tǒng)采用ramdisk格式。這兩者在Android下是直接合并在一起取名為boot.img,會(huì)放在一個(gè)獨(dú)立分區(qū)當(dāng)中。這個(gè)分區(qū)格式是Android自行制定的格式。


Android開(kāi)發(fā)時(shí),最標(biāo)準(zhǔn)的做法是重新編譯于內(nèi)核和根文件系統(tǒng),然后調(diào)用Android給的命令行文件mkbootimg(out/host/linux-x86/bin/)來(lái)打包。

在制作手機(jī)ROM時(shí),有時(shí)會(huì)單獨(dú)編譯內(nèi)核或抽出根文件進(jìn)行修改內(nèi)容,比如我只編譯內(nèi)核,其余的地方不變。這樣重新安裝巨大的Android開(kāi)發(fā)環(huán)境實(shí)在不劃算。因此很多boot.img解包工具被人開(kāi)發(fā)出來(lái),這一些工具都是把內(nèi)核和根文件系統(tǒng)從一個(gè)現(xiàn)成的boot.img抽取出來(lái),修發(fā)后再次打包還原。


一.常見(jiàn)的解包工具

因?yàn)閎oot.img的格式比較簡(jiǎn)單,它主要分為三大塊(有的可能有四塊)

+—————–+
| 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)
因此很多人開(kāi)發(fā)分析工具,有是linux shell腳本,比如repack-zImage,也有人采用perl,還有C語(yǔ)言編寫(xiě)的 unbootimg,


我使用的是在源碼位置system/core/mkbootimg/ 下的 mkbootimg。為了簡(jiǎn)化,藍(lán)點(diǎn)工坊把與mkbootimg中打包工具和解包工具以及所包含的libmincrpty庫(kù)抽出來(lái),并且重寫(xiě)一個(gè)Makefile,作為開(kāi)源項(xiàng)目。
使用者只需要在linux(需安裝gcc,make,一般是標(biāo)配)或windows(需要安裝mingw)的命令行執(zhí)行make,即可產(chǎn)生可執(zhí)行文件 mkbootimg ,unpackbootimg


二.解/打包工具使用

解包工具:unpackbootimg

usage: unpackbootimg
-i|–input boot.img
[ -o|--output output_directory]
[ -p|--pagesize ]
常見(jiàn)格式
unpackbootimg -i .\tmp\boot.img -o .\out

這一句命令行表示把boot.img解包,所有文件輸出到out目錄下


它會(huì)解壓出如下文件:

boot.img-zImage (內(nèi)核文件)

boot.img-ramdisk.gz (根文件系統(tǒng)打包文件)
boot.img-cmdline (mkbootimg cmdline參數(shù))
boot.img-pagesize (mkbootimg pagesize參數(shù))

boot.img-base (mkbootimg base參數(shù))


打包工具: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>
常見(jiàn)的命令格式:
./mkbootimg--cmdline 'no_console_suspend=1 console=null' --kernel zImage --ramdisk boot/boot.img-ramdisk.gz -o boot.img --base 02e00000
這句含義是把內(nèi)核文件zImage和boot目錄下的根文件壓縮包 boot.img-ramdisk.gz打包成boot.img.
其中cmdline和base的值均來(lái)源于unpackbootimg的結(jié)果



本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
如何解包/編輯/打包boot.img文件 - shenhaocn - 博客園
android boot.img 結(jié)構(gòu)
ramdisk.img及boot.img的生成過(guò)程
android文件系統(tǒng)制作教程
Recovery相關(guān)原理分析
zImage文件提取及逆向分析
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服