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命令验证:

      
    1. fileramdisk.img

    输出:

      
    1. ramdisk.img:gzipcompresseddata,fromUnix,
      lastmodified:WedMar1817:16:102009

    Android源码编译后除了生成system.img,userdata.img之外还生成system和 userdata文件夹,因此不需要解压它们。Android源码编译后还生成root文件夹,其实root下的文件与 ramdisk.img 里的文件是一样的,不过这里还是介绍怎样把 ramdisk.img解压出来:

    将ramdisk.img复制一份到任何其他目录下,将其名称改为ramdisk.img.gz,并使用命令

      
    1. gunzipramdisk.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缓存大小

更多相关文章

  1. Android数据存储方式(一)文件
  2. Android工程中R.java文件突然消失
  3. Android 对.properties文件的读取
  4. Delphi Android USB声明文件
  5. Android下载完文件打开
  6. Android AsyncTask异步实现大文件下载
  7. android 调用系统相机程序,存放文件夹创建不了(miui 2.3.9系统)
  8. Android中对XML文件的解析
  9. Android 模拟登陆 保存密码(信息)到手机中 文件信息读取

随机推荐

  1. Android 左右滑动 控件
  2. Android适配器之------BaseAdapter(例子)
  3. Android GridView,Gallery动态更新数据
  4. Android(安卓)Studio 使用二三事----' '
  5. Android的按钮按下效果
  6. Android用悬浮按钮实现翻页效果
  7. android /proc/wake_lock
  8. android sqllite dbhelper
  9. 创建第一个Android工程-Eclipse创建Andro
  10. Android Studio 调试技巧