Android ramdisk.img system.img userdata.img 介绍与使用
android源碼編譯后得到system.img,ramdisk.img,userdata.img映像文件。其中,?ramdisk.img是emulator的文件系統,system.img包括了主要的包、庫等文件,userdata.img包括了一些用戶數據,emulator負責加載這3個映像文件后,會把system.img和userdata.img分別加載到?ramdisk文件系統中的system和 userdata目錄下(會發覺有相似性)。
????? 我們會發覺編譯生成的root文件夾內容與android運行時根目錄內容相似,ramdisk根文件系統中包含一些對于啟動android的很重要的文件,比如內核啟動完后加載的第一個進程init、一些重要的配置文件等,總之它控制著整個android的啟動。根據 init.rc,init.goldfish.rc來初始化并裝載系統庫、程序等直到開機完成。init.rc腳本包括了文件系統初始化、裝載的許多過程。init.rc的工作主要是:
1)設置一些環境變量
2)創建system、sdcard、data、cache等目錄
3)把一些文件系統mount到一些目錄去,如,mount tmpfs tmpfs /sqlite_stmt_journals
4)設置一些文件的用戶群組、權限
5)設置一些線程參數
6)設置TCP緩存大小
????? 生成的system.img,ramdisk.img,userdata.img映像文件是采用cpio打包、gzip壓縮的,可以通過file命令驗證:
file?ramdisk.img,輸出:?ramdisk.img: gzip compressed data, from Unix, last modified: Wed Mar 18 17:16:10 2009?,我們可以學習怎么樣把?ramdisk.img解壓出來。將ramdisk.img復制一份到任何其他目錄下,將其名稱改為ramdisk.img.gz,并使用命令?
gunzip?ramdisk.img.gz,然后新建一個文件夾,叫ramdisk吧,進入,輸入命令cpio -i -F ../ramdisk.img,這下,你就能看見并操作ramdisk里面的內容了。然后把Android源碼編譯后生成的system和 userdata里的文件復制到?ramdisk/system和ramdisk/userdata下。這樣就得到一個文件系統了。
????? 還會發現,根文件系統下的sys就是一個linux。
=============================================================
在android 1.5 模擬器上加載 android 2.1 的系統:
本文編譯出來的3個img文件是2.1版的。可以用system.img和ramdisk.img 替換1.5的版本:
命令如下:
打開android 1.5的模擬器 ,同時加載system.img和ramdisk.img
emlator -avd sdk_1_5 -ramdisk [ramdisk.img路徑] -system [system.img的路徑]
啟動后可以看到設置中的手機版本變成了2.1版。
=============================================================
????? 對于android系統文件夾,比如out/target/prod t/smdk6410/system目錄,說明如下:
system\app????? 這個里面主要存放的是常規下載的應用程序,可以看到都是以APK格式結尾的文件。在這個文件夾下的程序為系統默認的組件,自己安裝的軟件將不會出現在這里,而是\data\文件夾中。
system\bin?????? 這個目錄下的文件都是系統的本地程序,從bin文件夾名稱可以看出是binary二進制的程序,里面主要是Linux系統自帶的組件。
system\etc?????? 從文件夾名稱來看保存的都是系統的配置文件,比如APN接入點設置等核心配置。
system\fonts?? 字體文件夾,除了標準字體和粗體、斜體外可以看到文件體積最大的可能是中文字庫,或一些unicode字庫。
system\framework? 主要是一些核心的文件,從后綴名為jar可以看出是是系統平臺框架。
system\lib??????? lib目錄中存放的主要是系統底層庫,如平臺運行時庫。
system\media? 鈴聲音樂文件夾,除了常規的鈴聲外還有一些系統提示事件音
system\usr????? 用戶文件夾,包含共享、鍵盤布局、時間區域文件等。
總結
以上是生活随笔為你收集整理的Android ramdisk.img system.img userdata.img 介绍与使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android的各种*.img 文件
- 下一篇: RK2908开机时间分析及优化