Android檔案系統深入剖析

來源:互聯網
上載者:User
    Android檔案系統具有什麼樣的結構?我們如何才能將這一檔案系統分離出來?又能以何種方式掛載檔案系統呢?這些問題都會在文中找到具體的解決答案。

     

    用過Linux的朋友可能對開源的系統有一個非常好的印象。那麼在日益成熟的手機作業系統中,有沒有一款像Linux一樣的開源系統呢?Google公司就退出了一款基於Linux平台的Android 作業系統來滿足人們的需求。在這裡大家可以先來瞭解一下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目錄下。

    2、分離Android檔案系統出來

    system.img,ramdisk.img,userdata.img映像檔案是採用cpio打包、gzip壓縮的,可以通過file命令驗證:

 
  1. file ramdisk.img 

輸出:

 
  1. 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,並使用命令

 
  1. gunzip ramdisk.img.gz 

然後建立一個檔案夾,叫ramdisk吧,進入,輸入命令

 
  1. 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緩衝大小

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.