android的檔案系統結構及其引導過程的初步理解

2021-08-25 10:15:06 字數 1800 閱讀 6394

android的檔案系統結構及其引導過程的初步理解

1、android檔案系統的結構

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目錄下。

以下是乙個典型的ramdisk中包含的檔案列表:

./init.trout.rc./

default

.prop./

proc./

dev.

/init.rc./

init./

sys.

/init.goldfish.rc./

sbin./

sbin

/adbd./

system./

data

2、分離android檔案系統出來

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下。這樣就得到乙個檔案系統了。

3、使用網路檔案系統方式掛載android檔案系統

因此,我們需要建立/nfsroot目錄,再建立/nfsroot/androidfs目錄,把剛才的android檔案系統改名為androidfs,並鏈結到/nfsroot/androidfs

4、android核心引導檔案系統

android核心掛載/nfsroot/androidfs之後,根據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快取大小

android的檔案系統結構及其引導過程的初步理解

1 android檔案系統的結構 android原始碼編譯後得到system.img,ramdisk.img,userdata.img映像檔案。其中,ramdisk.img是emulator的檔案系統,system.img包括了主要的包 庫等檔案,userdata.img包括了一些使用者數 據,em...

android的檔案系統結構及其引導過程的初步理解

android的檔案系統結構及其引導過程的初步理解 1 android檔案系統的結構 android原始碼編譯後得到system.img,ramdisk.img,userdata.img映像檔案。其中,ramdisk.img是emulator的檔案系統,system.img包括了主要的包 庫等檔案,...

linux 檔案系統 Linux 檔案系統結構介紹

ubuntu 像所有類unix系統一樣 在分層樹中組織檔案,其中的關係就像父母和孩子一樣。目錄可以包含其他目錄以及常規檔案,它們是樹的 葉子 樹的任何元素都可以通過路徑名引用 絕對路徑以字元 標識根目錄,其中包含所有其他目錄和檔案 開頭,然後列出必須遍歷以到達該元素的每個子目錄,每個子目錄用 符號分...