zoukankan      html  css  js  c++  java
  • 创建android文件系统(Root file system)

    上网查了一些资料,自己做了个android 文件系统(root file system). 和大家分享一下。
    如何创建android的file system,这里介绍两种方法。
    第一种就是通过build android source得到,source build结束之后,会产生大部分的android文件系统,位置在你的android source build目录下的out/target/product/generic/。其中root/就是你的root fs, 你需要将system/拷贝到root/system下,这样root/就是你得到的一个基本的文件系统。但是,现在root/dev下面是空的,所以,我们需要创建所需要的device, 你可以到系统 /dev下, 把所有的device打一个包,拷贝到 dev下面(最省事的做法);或者使用mknod来自己建所需要的device。
    第二种方法,是通过android镜像文件来得到文件系统。
    android源码编译后得到system.img,ramdisk.img,userdata.img映像文件。其中,是emulator的文件系统,system.img包括了主要的包、库等文件,userdata.img包括了一些用户数 据,emulator加载这3个映像文件后,会把和 userdata分别加载到 ramdisk文件系统中的system和 userdata目录下。 ramdisk.img system
    所以,可以通过下面的方法来建立我们自己的文件系统:
    1.       从android SDK的SDK/ platforms/android-1.5/images下面得到Ramdisk.img
    2.       解开 ramdisk.img
    $ mv ramdisk.img ramdisk.cpio.gz
    $ gzip -d ramdisk.cpio.gz
    $ mkdir rootfs
    $ cd tmp
    $ cpio -i -F ../ramdisk.cpio
    *** 此时 rootfs 目录下的就是 ramdisk.img 的文件和目录了,也就是你的root file system根目录了。
    3.      启动android模拟器,从模拟器里面取出data/ 和 system/两个文件夹。
    具体方法可以参考这里

    ------------------------

    首先先给andriod装上busybox

    1. 下载busybox fro android http://blog.chinaunix.net/u/20947/showart.php?id=1913228

    2. 运行adb shell进入到android emulator

    3. # mkdir /data/busybox

    4. $ adb push busybox /data/busybox/busybox

    5. # cd /data/busybox; ./busybox --install

    6. # chmod 555 /system/bin/busybox

    接下来创建tarball for /system and /data

    #/data/busybox/busybox tar cvf /data/data.tar /data

    #/data/busybox/busybox tar cvf /data/system.tar /system

    最好,提取

    adb pull /data/system.tar system.tar
    adb pull /data/data.tar data.tar

    最好需要将提取出的tar文件转换为img文件,这时候就要用到mkyaffs2image工具了。

    首先,编译yaffs2镜像制作工具:mkyaffs2image
    下载:http://www.aleph1.co.uk/cgi-bin/viewcvs.cgi/yaffs2/
    //点击左下角的 Download tarball 下整个tar包

    解压,进入utils目录,编译
    生成 mkyaffs2image 及 mkyaffs

    命令格式
    #./mkyaffs2image system/ system.img

    ------------------------------
    4.      将这两个文件夹拷贝到rootfs里面,覆盖掉里面相应的那两个同名文件夹。
    5.      最后一步,同第一种方法一样,创建dev/,这里不再赘述。
    原创文章,转载请注明出处:
    http://yishuihe.cublog.cn

  • 相关阅读:
    我对Web开发相关技术的认识过程
    JavaScript、JSP和Java之间的关系
    中断处理中的save_all、restore_all和iret
    实验五:Linux操作系统是如何工作的?破解操作系统的奥秘
    java CPU的乱序执行
    java缓存行对齐(缓存行二)
    解决ojdbc6升级ojdbc8中文乱码问题
    Caused by: java.lang.ClassNotFoundException: com.alibaba.dubbo.common.Version
    springSecurity5 重定向登录页面后 报错:尝试清除 Cookie.net::ERR_TOO_MANY_REDIRECTS status:200
    java 工厂模式 从无到有-到简单工厂模式-到工厂方法模式-抽象工厂模式
  • 原文地址:https://www.cnblogs.com/leaven/p/1716391.html
Copyright © 2011-2022 走看看