標籤:android style blog http ar color sp strong on
android源碼編譯後得到system.img,ramdisk.img,userdata.img映像檔案。其中,ramdisk.img是emulator(模擬器)的檔案系統,system.img包括了主要的包、庫等檔案,userdata.img包括了一些使用者資料,emulator負責載入這3個映像檔案。
下面我們來簡要分析一下這三個鏡像檔案。
如所示是編譯之後產生的相關檔案。
其中三個鏡像對應的檔案夾也很明了了。android系統啟動後,會把system.img和userdata.img分別載入到 ramdisk檔案系統中的system和 userdata目錄下。
init.rc的部分內容
這裡要著重強調一下,從名字上就可以看出來ramdisk檔案系統是一個基於記憶體的檔案系統,所以利用adb shell等修改其內容後,
一旦系統重啟,修改的內容都會被還原的。
前面說了ramdisk.img就是root檔案夾,和在Linux下利用busybox製作的檔案系統一樣,init.rc是要被首先解析的一個設定檔,
裡麵包含了檔案夾的建立,許可權,以及啟動android重要服務的規則。要想修改init.rc裡面的內容,那麼在修改之後要重新打包鏡像。
下面是編譯這些鏡像時的編譯命令:
1.system.img
make systemimage
2.userdata.img
make userdataimage
3.ramdisk.img
make ramdisk
4.boot.img
make bootimage
5.system打包
make snod
這個不檢查依賴關係,只是把 out\target\product\XXX\system 目錄打包成system.img,用於簡單替換檔案時打包。
當然執行make命令會產生所有的系統鏡像,另外說一下boot.img其實是將ramdisk.img和Kernel打成的一個鏡像,在真實產品中會有這個鏡像,模擬器中不需要這個鏡像。
android系統映像檔案