zoukankan      html  css  js  c++  java
  • 转载.android 文件系统的提取方法(1)

    有很多方法可以制作提取Android的文件系统,今天我给大家讲一下如何从make完成的source code中把文件系统提取出来。

    在编译完成的android源码目录中,文件系统的存放位置是:source/out/target/product/generic/

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

    root@linux-home:~/kernel/out/target/product/generic# file ramdisk.img
    ramdisk.img: gzip compressed data, from Unix

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

    将ramdisk.img复制一份到任何其他目录下,将其名称改为ramdisk.img.gz,再用gunzip命令将其解压,操作如下

    //将ramdisk复制到当前工作目录

    root@linux-home:~# cp kernel/out/target/product/generic/ramdisk.img ./
    root@linux-home:~# ls
    android2.3.6-source.tar.bz2  Documents  overview.png  qt-book-examples.tar.gz
    android_fs_rjm.tar.bz2       Downloads  Pictures      ramdisk.img
    bin                          kernel     Public        Templates
    Desktop                      Music      qt-book       Videos

    //将其命名为ramdisk.img.gz
    root@linux-home:~# mv ramdisk.img ramdisk.img.gz

    //用gunzip解压
    root@linux-home:~# gunzip ramdisk.img.gz

    接下来,建立一个叫ramdisk的文件夹,进入,输入以下命令

    cpio -i -F ../ramdisk.img

    然后 ls

    过程如下:

    root@linux-home:~# cd ramdisk
    root@linux-home:~/ramdisk# ls
    root@linux-home:~/ramdisk# cpio -i -F ../ramdisk.img
    456 blocks
    root@linux-home:~/ramdisk# ls
    data          dev   init.goldfish.rc  proc  sys     ueventd.goldfish.rc
    default.prop  init  init.rc           sbin  system  ueventd.rc

    至此我们已经可以看到文件系统的内容了。

    最后,把Android源码编译后生成的system和 userdata里的文件复制到 ramdisk/system和 ramdisk/userdata下。这样就得到一个文件系统了。你就可以用nfs或者别的方式去挂载文件系统了。

  • 相关阅读:
    字符串匹配常见算法(BF,RK,KMP,BM,Sunday)
    JSP基本语法总结【1】(jsp工作原理,脚本元素,指令元素,动作元素)
    JUnit【1】断言用法之assertEquals/True/False/ArrayEquals
    软件测试基础配置
    前端入门20-JavaScript进阶之异步回调的执行时机
    前端入门19-JavaScript进阶之闭包
    前端入门18-JavaScript进阶之作用域链
    前端入门17-JavaScript进阶之作用域
    前端入门16-JavaScript进阶之EC和VO
    前端入门15-JavaScript进阶之原型链
  • 原文地址:https://www.cnblogs.com/gooogleman/p/2575781.html
Copyright © 2011-2022 走看看