精华内容
下载资源
问答
  • 2021-06-05 10:37:44

    Android 下 根文件系统的制作

    主要过程

    1.安装Linux环境

    2.安装编译工具

    3.安装 Android SDK

    4.编译 busybox

    5.获得 本文件系统

    1.Linux 环境 Red Hat Enterprise Linux 4

    2.编译环境 我上面有三个编译工具链:

    arm-linux- arm-elf- arm-none-linux-gnueabi-

    我用的是 arm-none-linux-gnueabi-

    3.安装 Android SDK

    4.编译 busybox

    make menuconfig

    Busybox Settings ->

    Build Options ->

    [*] Build BusyBox as a static binary (no shared libs) 这个要选上,因上这样子编

    译出来的busyBox才是可以独立运行的。

    ()Cross Compiler prefex  打开写上编译工具链的路径跟前缀

    我的是这样的: /opt/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-

    Installation Options->

    [*] Don’t use /usr     这样子编译出来的busybox才不会安装到你主机的/usr目录下

    。一定要选上。

    $ make

    我在此过程中没有出现任何错误

    网上一些帖子说编译的时候找不到头文件,解决的方法是 指定编译工具链的头文件所在

    的路径

    因为要把常用的命令安装到 Android 中

    $ make install 这样就会把所有命令提取出来

    其余任务在下一步完成

    5.获得 本文件系统

    $ cd /android-sdk_m5-rc15_linux-x86/tools

    $ ./emulator &

    $ ./adb shell

    # cd data/

    # mkdir busybox  //在data目录下创建busybox文件夹

    # cd busybox

    # mkdir bin //方便接下来导入命令

    # cd ../../..

    # ./adb /_install/bin /data/busybox/bin

    # export PATH=$PATH:/data/busybox/bin

    # tar -czf system.tar.gz /system

    # tar -czf data.tar.gz /data

    # tar -czf etc.tar.gz /etc

    # tar -czf sbin.tar.gz /sbin

    # exit  // 期间可能出现关于‘ / ’的提示,不过不影响结果

    $ ./adb pull /system.tar.gz ./

    $ ./adb pull /data.tar.gz ./

    $ ./adb pull /etc.tar.gz ./

    $ ./adb pull /sbin.tar.gz ./

    $ ./adb pull /init ./

    // 此时会在 Android 文件夹中出现以上几个 打包文件

    制作initial_ram_disk

    $ mkdir initial_ram_disk

    $ cd initial_ram_disk

    $ mkdir cache d dev proc root sdcard sys tmp var

    把之前的几个打包文件解压缩到此,并把 init文件拷贝过来

    此时 Android根文件系统 initial_ram_disk 就做好了

    当然,这只是内核移植的一部分。等我把Android 内核移植成功后,我会把后续的过程贴

    出来。

    更多相关内容
  • 我们将会针对Android根文件系统的相关目录结构等方面的问题进行一个详细的讲解,以帮助大家快速掌握这方面的知识。我们曾经在一篇文章中为大家详细介绍过Android文件系统的一些基本概念,相信大家已经可以充分了解这...

    我们将会针对Android根文件系统的相关目录结构等方面的问题进行一个详细的讲解,以帮助大家快速掌握这方面的知识。

    我们曾经在一篇文章中为大家详细介绍过Android文件系统的一些基本概念,相信大家已经可以充分了解这一知识点了。在这里大家将会继续对Android根文件系统的基本概念进行一个初步的掌握。

    经过这几天在网上搜索关于Android根文件系统的相关资料,发现已经有很多高手 分析了Android的文件系统,这些高手多从不同的方面分析了其文件系统的结构和运行原理。我这里就写一下自己的理解。

    首先是Android根文件系统目录的结构:# pwd && ls -a -l

    /

    drwxrwxrwt root root 2009-06-10 09:53 sqlite_stmt_journals

    drwxrwx--- system cache 2008-09-06 22:51 cache

    d---rwxrwx system system 1970-01-01 08:00 sdcard

    lrwxrwxrwx root root 2009-06-09 22:11 etc ->/system/etc

    drwxr-xr-x root root 2008-09-06 22:45 system

    drwxr-xr-x root root 1970-01-01 08:00 sys

    drwxr-x--- root root 1970-01-01 08:00 sbin

    -rw-r--r-- root root 117 1970-01-01 08:00 runme.sh

    dr-xr-xr-x root root 1970-01-01 08:00 proc

    -rwxr-x--- root root 1704 1970-01-01 08:00 init.trout.rc

    -rwxr-x--- root root 9329 1970-01-01 08:00 init.rc

    -rwxr-x--- root root 1677 1970-01-01 08:00 init.goldfish.rc

    -rwxr-x--- root root 106636 1970-01-01 08:00 init

    -rw-r--r-- root root 118 1970-01-01 08:00 default.prop

    drwxrwx--x system system 2008-09-06 22:51 data

    drwx------ root root 2009-06-07 16:29 root

    drwxr-xr-x root root 2009-06-09 22:11 dev

    sqlite_stmt_journals :一个根目录下的tmpfs文件系统,用于存放临时文件数据。

    cache : 是缓存临时文件夹,据说是除了T-mobile的OTA更新外,别无用处。

    sdcard :是SD卡 中的FAT32文件系统挂载的目录

    etc :指向 /system/etc ,众所周知的配置文件存放目录

    system :是Android根文件系统中一个很重要的目录,系统中的大部分东西都在这里了,以下是目录结构:

    # ls -a -l /system

    drwxr-xr-x root 208 1970-01-01 08:00 xbin

    drwxr-xr-x root root 1970-01-01 08:00 modules

    drwxr-xr-x root root 2008-08-01 20:00 framework

    drwxr-xr-x root root 2008-08-01 20:00 fonts

    drwxr-xr-x root root 2008-08-01 20:00 etc

    -rw-r--r-- root root 2197 2008-08-01 20:00 build.prop

    drwxr-xr-x root root 2008-08-01 20:00 media

    drwxr-xr-x root shell 2008-08-01 20:00 bin

    drwxr-xr-x root root 2008-08-01 20:00 usr

    drwxr-xr-x root root 2008-08-01 20:00 app

    drwxr-xr-x root root 2008-09-06 22:45 lost+found

    drwxr-xr-x root root 2008-08-01 20:00 lib

    drwxr-xr-x root root 2008-08-01 20:00 sd

    -rw-r--r-- root root 145 2008-08-01 20:00 init.rc

    sys :用于挂载 sysfs文件系统。 在设备模型中,sysfs文件系统用来表示设备的结构.将设备的层次结构形象的反应到用户空间中.用户空间可以修改sysfs中的文件属性来修改设备的属性值

    sbin : 只放了一个用于调试的adbd程序 。

    proc :/proc 文件系统下的多种文件提供的系统信息不是针对某个特定进程的,而是能够在整个系统范围的上下文中使用。

    data :存放用户安装的软件 以及各种数据。

    root :什么都没有。

    dev :不用多说了,设备节点文件的存放地。

    以上就是对Android根文件系统的相关介绍。

    【责任编辑:曹凯 TEL:(010)68476606】

    展开全文
  • 1, 讲解android根文件系统结构和组成 2, 讲解android系统镜像的概念和拆包 3, 讲解Android系统源码结构 4, 讲解Android系统编译规则 5, 讲解Android系统ADB使用和Log日志调试方法 6, 讲解Android系统Android....
  • 1、在主机(server)上安装和配置NFS安装nfs服务软件$sudo apt-get isntall nfs-kernel-server修改nfs配置文件/etc/exports$sudo emacs exports添加下面一行到文件中:/srv *(rw,sync,no_root_squash,no_subtree_check...

    1、在主机(server)上安装和配置NFS

    安装nfs服务软件

    $sudo apt-get isntall nfs-kernel-server

    修改nfs配置文件/etc/exports

    $sudo emacs exports

    添加下面一行到文件中:

    /srv            *(rw,sync,no_root_squash,no_subtree_check)

    /srv是你允许客户机访问的文件路径,*是你允许的客户机IP或机器名(用*表示全体客户都可以访问),()中的参数是访问控制方式:

    ro 只读访问

    rw 读写访问

    sync 所有数据在请求时写入共享

    async nfs在写入数据前可以响应请求

    secure nfs通过1024以下的安全TCP/IP端口发送

    insecure nfs通过1024以上的端口发送

    wdelay 如果多个用户要写入nfs目录,则归组写入(默认)

    no_wdelay 如果多个用户要写入nfs目录,则立即写入,当使用async时,无需此设置。

    hide 在nfs共享目录中不共享其子目录

    no_hide 共享nfs目录的子目录

    subtree_check 如果共享/usr/bin之类的子目录时,强制nfs检查父目录的权限(默认)

    no_subtree_check 和上面相对,不检查父目录权限

    all_squash 共享文件的UID和GID映射匿名用户anonymous,适合公用目录。

    no_all_squash 保留共享文件的UID和GID(默认)

    root_squash root用户的所有请求映射成如anonymous用户一样的权限(默认)

    no_root_squas root用户具有根目录的完全管理访问权限

    anonuid=xxx 指定nfs服务器/etc/passwd文件中匿名用户的UID

    anongid=xxx 指定nfs服务器/etc/passwd文件中匿名用户的GID

    启动nfs服务

    $sudo /etc/init.d/portmap restart

    $sudo /etc/init.d/nfs-kernel-server restart

    测试nfs服务

    $showmount -e

    Export list for user:

    /srv *

    好了到此nfs 的安装和配置工作已经完成,除了可以挂载Android的根文件系统外,我们也可以用一下命令将共享文件挂载到本地磁盘上:

    $ sudo mount -t nfs localhostip:/srv /mnt/disk

    可以运行mount命令查看是否挂载成功。查看后可以使用以下命令卸载:

    $ sudo umount /mnt

    2、在/srv中创建和制作android根文件目录

    $ sudo mkdir nfs

    $sudo mv /root_nfs/* /srv/nfs

    关于root_nfs的制作请参考文章http://zhougaofeng.ixiezi.com/2010/03/02/android%e7%9a%84%e6%96%87%e4%bb%b6%e7%b3%bb%e7%bb%9f%e7%bb%93%e6%9e%84%e5%8f%8a%e5%85%b6%e5%bc%95%e5%af%bc%e8%bf%87%e7%a8%8b/ 3、设置u-boot和kernel command参数 >>setenv ipaddr 192.168.1.101 >>setenv serverip 192.168.1.100 >>setenv bootargs root=/dev/nfs rootfstype=nfs rsize=1024,wsize=1024 nfsroot=${serverip}:/srv/nfs/ ip=${ipaddr}:${serverip}::255.255.255.0::eth0:on console=ttyS0,115200 init=/init android video=dovefb:lcd0:1024x600-16@60,lcd1:1024x768-16@60 clcd.lcd0_enable=1 clcd.lcd1_enable=0 pm_disable >>saveenv ip和nfsroot根据你实际情况来定。 好了,所有工作都做完了

    展开全文
  • linux 内核启动过程以及挂载android 根文件系统的过程
  • 网上找的一篇关于Android 根文件系统启动过程的分析,这方面的东西不多。Android 根文件系统启动过程.doc
  • Android根文件系统认识

    千次阅读 2016-12-07 10:00:30
    根文件系统是Linux系统一种特殊的文件系统,Android是基于Linux的,当然也根文件系统,那么在Android平台上,根文件系统是如何实现的呢? 1,Android是使用busybox构建根文件系统 Linux Kernel需要一个...
            根文件系统是Linux系统一种特殊的文件系统,Android是基于Linux的,当然也根文件系统,那么在Android平台上,根文件系统是如何实现的呢?

    1,Android是使用busybox构建根文件系统

    Linux Kernel需要一个根文件系统来启动用户程序init,这个最根本的文件系统叫做根文件系统。不单纯是Android,所有其它的基于Linux Kernel的系统都需要这个根文件系统,在Android系统中,它的表现为:
    • 在uboot bootargs中表现为ramfs
              bootargs=rootfstype=ramfs init=/init console=ttyS0,115200
    • 在系统中,挂载为rootfs
              rootfs / rootfs ro,seclabel 0 0
    那么ramfs与rootfs又是什么关系?
    其实,ramfs是一类文件系统,像tmpfs,procfs等等都是属于ramfs,指是没有实际存储设备的一种内存文件系统。rootfs是ramfs的一种。
    2,Android是如何构建rootfs的?
    Android是通过使用busybox这个开源系统来构建根文件系统的。代码位于external/busybox。busybox在很多嵌入式系统使用为根文件系统。是一个跨平台,很优秀的开源项目。具体可以参考(https://www.busybox.net/ )。Android使用的busybox是一个bionic分支,应该是Android平台上的一个移植版本。
    WARNING : THIS IS A BIONIC VERSION OF BUSYBOX, DO NOT USE “make” IN THIS TREE
    编译这个目录会在out目录生成一个可执行文件busybox。
    执行INSTALL之后,会在out目录生成一个root/文件夹,以及一些这个文件夹下面最基本几个目录。
        
    1. ...
    2. drwxrwxr-x 2 xugangfeng xugangfeng 4096 11 23 13:37 system
    3. drwxrwxr-x 2 xugangfeng xugangfeng 4096 11 23 13:37 sys
    4. drwxrwxr-x 2 xugangfeng xugangfeng 4096 12 5 15:07 sbin
    5. drwxrwxr-x 2 xugangfeng xugangfeng 4096 11 23 13:37 proc
    6. drwxrwxr-x 2 xugangfeng xugangfeng 4096 11 23 13:37 oem
    7. drwxrwxr-x 2 xugangfeng xugangfeng 4096 11 23 13:38 boot
    8. ...
    ?具体如何安装生成的?
    当Android的系统系统编译其它目录时,像system/core/init/就会直接把Init可执行文件安装到root目录下面。
    整个源码编译完成之后,就执行打包程序,把root/目录打包成一个ramdisk.img的镜像文件,最后会跟Kernel Image一起打包到boot.img里面去。在out目录,也能看到ramdisk.img。
    在device下面的项目Kernel.mk里面可以看到打包的过程
        
    1. ...
    2. 99 .PHONY: bootimage-quick
    3. 100 bootimage-quick: $(INTERMEDIATES_KERNEL)
    4. 101 cp -v $(INTERMEDIATES_KERNEL) $(INSTALLED_KERNEL_TARGET)
    5. 102 out/host/linux-x86/bin/mkbootfs $(PRODUCT_OUT)/root |
    6. 103 out/host/linux-x86/bin/minigzip > $(PRODUCT_OUT)/ramdisk.img
    7. 104 out/host/linux-x86/bin/mkbootimg --kernel $(INTERMEDIATES_KERNEL)
    8. 105 --base 0x0
    9. 106 --kernel_offset 0x1080000
    10. 107 --ramdisk $(PRODUCT_OUT)/ramdisk.img
    11. 108 $(BOARD_MKBOOTIMG_ARGS)
    12. 109 --output $(PRODUCT_OUT)/boot.img
    13. 110 ls -l $(PRODUCT_OUT)/boot.img
    14. 111 echo "Done building boot.img"
    15. ...
    3,Hack Ramdisk.img文件,用如下的步骤就能把ramdisk.img解压成root/目录了,修改一些文件,然后压缩即可。
    解压缩命令
    1)mv ramdisk.img ramdisk.img.gz                             //  gunzip 默认文件名必须为 .gz 后缀, 因此需要重命名为 .gz
    2)  gunzip ramdisk.img.gz                                            //  将解压缩生成  ramdisk.img 文件
    3)  mkdir  ramdisk_decompress
    4) cd ramdisk_decompress
    5) cpio -i -F ../ramdisk.img                                            // 所有ramdisk 文件将被解压在   ramdisk_decompress 目录
    重新压缩生成 ramdisk.img
    6)cpio -i -t -F ramdisk.img > list                                  //生成 ramdisk 文件列表
    7)cpio -o -H newc -O ramdisk_new.img < list            // 生成新的 ramdisk
    8)  gzip ramdisk_new.img  
    9)  mv ramdisk_new.img.gx  ramdisk.img                    // 生成最终可以下载使用的 ramdisk.img
    4,构建自己的根文件系统
    展开全文
  • linux内核启动过程以及挂载android根文件系统的过程.pdf
  • linux内核启动过程以及挂载android根文件系统的过程归类.pdf
  • 梳理一下制作根文件系统的多种方法,有些参考了网上的做法,如有侵权,请联系博主删除,以下博文仅供学习和记录。1、打包成xxx.img的方法ep: make_ext4fs -s -l 512M -a path rootfs.img rootfs参数列表具体含义-s...
  • 今天开始分析Android 根文件系统启动过程。 在Android系统启动时,内核引导参数上一般都会设置“init=/init”, 这样的话,如果内核成功挂载了这个文件系统之后,首先运行的就是这个根目录下的init程序。这个程序...
  • linux启动内核后,会构建根文件系统,之后才可以使用init进程,进而启动其他应用程序 1. 为什么需要根文件系统 init进程在根文件系统中,因此需要根文件系统,来向内核提供init进程 根文件系统提供了根目录,linux...
  • Android根文件系统的制作 熟悉下面的目录: ls out/target/product/fs210/ android-info.txt installed-files.txt ramdisk.img symbols userdata.img clean_steps.mk obj
  • 编译时较少 可以对比更文件系统目录和out目录下的各个目录结构,会发现是一样的: 总结 Android根文件系系统目录是在Android系统运行的时候可以看到, 了解根文件系统目录下的子目录的作用,对于操作和开发都有很好...
  • Android根文件系统以及内核镜像

    热门讨论 2011-12-01 11:24:21
    编译好的Android根文件系统。编译好的Android内核镜像。提供给Android驱动开发人员环境搭建时所需。
  • android根文件系统分析总结android根文件系统分析总结androidw根文件系统分析总结
  • android rootfs根文件系统挂载

    千次阅读 2020-04-25 23:16:51
    linux下文件目录为树状结构,文件系统挂载在虚拟系统的VFS各个目录下。 VFS是Linux中的一个虚拟文件文件系统,也称为虚拟文件系统交换层(Virtual Filesystem Switch),是一种软件机制。它为应用程序员提供一层抽象...
  • 重新挂载根文件系统 mount -t rootfs -o remount rootfs /
  • android根文件系统目录结构

    千次阅读 2016-06-03 10:30:16
    1.Android系统分区 ...system :是Android根文件系统中一个很重要的目录,系统中的大部分东西都在这里了 sys:用于挂载 sysfs文件系统。。 proc :/proc 文件系统下的多种文件提供的系统信息不是针对某个特定进
  • 1.下载android的linux内核,google的下不了,给一个csdn的 ... 解压tar -xvzf linux-2.6.25-android-1.0_r1.tar.gz 2.安装android sdk 网上很多,下一个安装下 ...3.开始做文件系统 (1).下载busybo
  • 一、Android 系统 root 环境准备、 二、查看 Android 目录信息
  • 一、目录下的目录和文件、 二、data 应用和用户数据目录、 三、mnt 挂载其它设备目录、
  • 经过这几天在网上搜索关于Android文件系统的相关资料,发现已经有很多高手分析了Android文件系统,这些高手多从不同的方面...首先是Android文件系统根目录的结构:# pwd && ls -a -l/drwxrwxrwt root root 2009-
  • 虚拟根文件系统与真实根文件系统

    千次阅读 2016-05-05 09:21:21
    引言:根文件系统的noinitramfs已经分析,继续上文未完的initramfs和Android根文件系统分析,这两者有什么关系?1.initramfs对于initramfs,kernel 2.5开始引入,其实质是在内核镜像中附加一个cpio包(cpio一个用于...
  • <resources> //resources元素 ””>#000000</color>//color子元素 2、引用格式: java代码中:R.color.color_name (这是一个int型的数据,用于表示资源的地址)XML文件中: @color/color_name 3、获得颜色值的...
  • 什么是根文件系统

    千次阅读 2018-04-07 16:39:58
    文章为作者原创,转载请附明原地址:https://mp.csdn.net/postedit/79842551一、根文件系统简介根文件...系统引导启动程序会在根文件系统挂载之后从中把一些初始化脚本(如inittab、rcS)和服务加载到内存中去运行...
  • Android文件系统基本认识

    千次阅读 2020-09-26 12:23:16
    本人是二流不知名地方本科毕业既失业,然后经过很社会培训班洗礼后,再各种碰壁三个月后开始Android工作,...通过网上博客和AndroidStudio自带的DeviceFileExplorer基本上可以理解整个Android系统文件基本框架; ...
  • linux挂载android 根文件系统的过程

    千次阅读 2013-02-06 14:48:42
    主要介绍linux 内核启动过程以及挂载android 根文件系统的过程,以及介绍android 源代码中文件系统部分的浅析。  主要源代码目录介绍 Makefile (全局的Makefile) bionic (Bionic 含义为仿生,这里面是一些...
  • Android 10.0 根文件系统和编译系统:https://edu.csdn.net/course/detail/35480 说明 系统:AOSP Android10.0 设备:Android模拟器 前言 本章节重点介绍AOSP下载后的Android10.0源码目录结构, 方便大家对...
  • Android 根文件系统分析(1)

    千次阅读 2009-06-12 22:46:00
    经过这几天在网上搜索关于Android文件系统的相关资料,发现已经有很多高手分析了Android文件系统,这些高手多从不同的... 首先是Android文件系统根目录的结构: # pwd && ls -a -l/drwxrwxrwt root root 2009

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 85,210
精华内容 34,084
关键字:

安卓根文件系统