當須要對android系統進行大刀闊斧的改造的時候,應該清晰的了解android各個image的組成才幹做到庖丁解牛。
首先在android燒寫過程中須要燒寫的檔案主要包含uboot.bin\boot.img\system.img\userdata.img\recovery.img等檔案。
小公尺的刷機檔案主要包含data\meta-inf\recovery\system\blob\boot.img\file_contexts檔案。
data目錄下僅僅有乙個目錄miui從名字能夠知道裡面存放的檔案主要是小公尺的使用者介面檔案。 。
system/bin
這個資料夾下的檔案都是系統的本地程式,從bin資料夾名稱能夠看出是binary二進位制的程式,裡面主要是linux系統自帶的元件(命令)
system/etc
從目錄名稱來看儲存的都是系統的配置檔案,比方apn接入點設定等核心配置。
system/fonts
字型目錄。除了標準字型和粗體、斜體外能夠看到檔案體積最大的可能是中文字庫。或一些unicode字型檔當中droidsansfallback.ttf檔案大小
system/framework
framework主要是一些核心的檔案。從字尾名為jar能夠看出是是系統平台框架。
system/lib
lib資料夾中存放的主要是系統底層庫,一些so檔案,如平台執行時庫
system/media/audio
鈴聲**目錄,除了常規的鈴聲外另一些系統提示事件音。
system/usr
使用者目錄,包括共享、鍵盤布局、時間區域檔案等
system/vendor
存放產品相關檔案
bootimg檔案是由image和ramdisk.img檔案生成。在/build/core/makefile檔案裡有相關的描寫敘述。# the boot image, which is a collection of other images.
internal_bootimage_args := \
$(addprefix --second ,$(installed_2ndbootloader_target)) \
--kernel $(installed_kernel_target) \
--ramdisk $(installed_ramdisk_target)
在system/core/mkbootimg/bootimg.h中有詳細打包的描寫敘述。
** +-----------------+
** | boot header | 1 page
** +-----------------+
** | kernel | n pages
** +-----------------+
** | ramdisk | m pages
** +-----------------+
** | second stage | o pages
** +-----------------+
從上面可以清晰的看出boot.img檔案的構成主要是將kernel以及ramdisk.img檔案打包而且加入檔案頭完畢。
假設須要改動小公尺官方給出的檔案的情況下,能夠使用
#./split_bootimg.pl boot.img
page size: 2048 (0x00000800)
kernel size: 6695672 (0x00662af8)
ramdisk size: 1276106 (0x001378ca)
second size: 0 (0x00000000)
board name:
command line:
writing boot.img-kernel ... complete.
writing boot.img-ramdisk.gz ...
complete.
解包ramdisk檔案。首先要建立乙個目錄用於存放解壓後的檔案,進入目錄之後,執行以下命令:
#gzip -dc ../boot.img-ramdisk.gz | cpio -i
對檔案作出改動之後,須要又一次做成boot.img檔案。
使用mkbootfs工具(mkbootfs工具是編譯完成android原始碼以後。就會在~/android-src/out/host/linux-x86/bin自己主動生成)來又一次建立ramdisk。能夠使用例如以下命令來操作:
#mkbootfs ./ramdisk | gzip > ramdisk-new.gz
使用mkbootimg來又一次建立boot.img,mkbootimg也能夠在~/android-src/out/host/linux-x86/bin資料夾中能夠找到:
#mkbootimg --cmdline 'no_console_suspend=1 console=null' --kernel boot.img-kernel --ramdisk ramdisk-new.gz -o boot-new.img
android系統又一次刷rom簡記(二)
又一次講課
今天早上1,2節在海韻404給學生上了習題課,講述大概有一節半的時間。台下學生是軟體學院2007級,大概130多號人物,講授課程是計算機網路的習題課。雖然前幾天已做好功課,寫好習題課課件,大概理清要講的內容,但是今天兩節課上完,感覺還是一般,表達技巧和能力停滯不前。講課時有注意到抑揚頓挫 語速 咬字...
又一次錯愕
昨天突然得到訊息,被公司優化了,優化的不是我乙個人,是我和我帶的團隊,本來也曾想過有可能有類似的情況發生,但沒想到這刀會砍到我頭上,到現在還有點緩不過神來,上一次類似的情形是18年6.1和echo分手,再上一次就是17年5.22和雲科談。其實和雲科解約那次並沒有很痛苦,反倒還有點重獲自由以及對未來未...
又一次重灌系統
真是受不了,現在重裝完系統的第一件事就是裝防毒軟體更新到最新,第二件就是把windows更新到最新,然後才能做其它事,不然,什麼病毒就是大堆大堆的來。太可怕了!想想,乙個暑假已經裝了四次系統了,每次都有原因讓偶重灌,有。裝完之除錯而不能用的,只好重灌。有裝完之後dns居然不能解析,找了一天原因也找不...