android系统移植之文件系统分析

原创 2013年12月03日 22:27:25
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分区增加和reset功能实现

项目需求,陕西联通需要我们在机顶盒上实现如下描述的一个功能。 增加一个reset按键实现,在开机过程中检测到有reset按键就进入recovery找到备份的facbackup分区内的升级包和配置文件...

CyanogenMod 10 修改 Vold 使 Android 自动挂载 NTFS 和 exFAT 格式的 SD 卡

2013-04-25 18:37 2572人阅读 评论(4) 收藏 举报 AndroidNTFSexFAT自动挂载源代码 目录(?)[+] Android 不支持...

Android 文件系统分析

文章出处http://code.google.com/p/androidteam/wiki/AndroidFileSystemAnalysis1 Android 文件系统分析 系统环境...

android启动后根文件系统分析

 转的,以下大部分描述是对的,请结合实际和现在版本看。首先是Android的文件系统根目录的结构:# pwd && ls -a -l/drwxrwxrwt     root            ro...

android 文件系统分析

first step:     explain form sdk doc //------------ Saving cache files If you're using...

Android 根文件系统分析

今天要来分析一下Android文件系统的/system目录的结构。   /system目录是在Android文件系统占有及其重要的位置,基本上所有的工具和应用程序都在这个目录下,我看来是一个真正的...

android编译结果: 文件系统分析

通过工具释放yaffs2 文件系统 yaffs2 image逆向工具 http://blog.csdn.net/absurd/archive/2008/11/05/3223825.aspx 获...

Android文件系统分析

感谢conowen大神 原文地址:http://blog.csdn.net/conowen/article/details/7251057 1、Android文件系统的结构 官方Android...

Fatfs文件系统分析(4)-FATFS文件系统移植笔记

Fatfs文件系统分析(4)-FATFS文件系统移植笔记                  ------STM32的FATFS文件系统移植笔记[转载] 一、序言     经常在网上、群里...
  • joqian
  • joqian
  • 2012年12月06日 08:47
  • 868
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android系统移植之文件系统分析
举报原因:
原因补充:

(最多只允许输入30个字)