Android文件系統具有什麼樣的結構?我們如何才能將這一文件系統分離出來?又能以何種方式掛載文件系統呢?這些問題都會在文中找到具體的解決答案。
用過Linux的朋友可能對開源的系統有一個非常好的印象。那麼在日益成熟的手機操作系統中,有沒有一款像Linux一樣的開源系統呢?谷歌公司就退出了一款基於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命令驗證:
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系統移植之文件系統分析
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
android系統移植之概述
1. 概述 移植工作一般的主要不外乎做以下這些事情: A、有的現成好的直接選配 這個工作主要是熟悉該源碼的編譯系統,就是源碼自動化編譯是怎麼組織的。
Mr_OYMS
2020-07-06 16:42:40
高通 Msm835平臺充電功能的開發與調試
布施
2020-06-30 19:51:50
高通關閉插入USB後自動開機的解決方案
布施
2020-06-30 19:51:49
爲Android硬件抽象層(HAL)模塊編寫JNI方法提供Java訪問硬件服務接口
七夜_雪
2020-06-26 23:46:26
爲Android系統的Application Frameworks層增加硬件訪問服務
七夜_雪
2020-06-26 23:46:26
爲Android系統內置Java應用程序測試Application Frameworks層的硬件服務
七夜_雪
2020-06-16 02:53:40
Android seLinux導致的APP訪問設備權限問題
布施
2020-05-20 00:35:22
Android 4.0 源代碼地址
jeffreyliu
2020-02-24 03:02:17
Android4.1.1_r1系統移植------TP移植篇
一块钢板
2020-02-21 11:36:57
Android設備定製爲永不鎖屏
一块钢板
2020-02-21 11:36:57
RK3288開發板GPIO介紹
一块钢板
2018-09-02 07:19:41
window下批處理adb connect自動掃描內網IP和指定端口號
一块钢板
2018-09-02 07:19:41
Android系統移植:開發概述
一块钢板
2018-09-02 07:19:41
mtk M8735平臺android L版本修改記錄
一块钢板
2018-09-02 07:19:40
炬力方案系統修改雜記
一块钢板
2018-09-02 07:19:40