android系統又一次刷ROM簡記(一)

來源:互聯網
上載者:User

標籤:情況   架構   out   oid   包括   inux   other   字型   介面   

      當須要對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/app  這個裡面主要存放的是常規下載的應用程式,能夠看到都是以APK格式結尾的檔案。在這個目錄下的程式為系統預設的組件,自己安裝的軟體將不會出如今這裡,而是\data\目錄中。

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/priv-app 能夠存放自己編寫的一些app檔案

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簡記(二)

 

 

 

android系統又一次刷ROM簡記(一)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.