1. 程式人生 > >android檔案系統system-ramdisk-userdata三者之間的關係

android檔案系統system-ramdisk-userdata三者之間的關係

android原始碼編譯後得到system.img,ramdisk.img,userdata.img映像檔案。 
其中, ramdisk.img是emulator的檔案系統, 
system.img包括了主要的包、庫等檔案。 
userdata.img包括了一些使用者資料。 
emulator載入這3個映像檔案後,會把 system和 userdata分別載入到 ramdisk檔案系統中的system和 userdata目錄下。 
因此,我們可以把ramdisk.img裡的所有檔案複製出來,system.img和userdata.img分別解壓到 ramdisk檔案系統中的system和 userdata目錄下。 




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  


Android原始碼編譯後除了生成system.img,userdata.img之外還生成system和 userdata資料夾, 
因此不需要解壓它們。Android原始碼編譯後還生成root資料夾, 
其實root下的檔案與 ramdisk.img 裡的檔案是一樣的。 



不過這裡還是介紹怎樣把 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下。 

這樣就得到一個檔案系統了。

文獻:http://goo.gl/am3S0