zoukankan      html  css  js  c++  java
  • android-ramdisk.img分析、recovery.img&boot.img执行过程【转】

    一、ramdisk介绍

    ramdisk通过直面意思就大概能理解意思,ram disk虚拟内存盘,将ram模拟成硬盘来使用的文件系统。对于传统的磁盘文件系统来说,这样做的好处是可以极大提高文件访问速度;但由于是ram,所以 在掉电后,这部分内容不能保存。ramdisk文件系统是在系统上电后直接从磁盘一次性加载到内存,在整个运行期间都不会有写回操作,所以,任何修改都掉 电后丢失。

    二、ramdisk.img介绍

    ramdisk.img是android打包生成的,解压ramdisk.img后对比root根目录很相似,所以ramdisk是虚拟文件系统。这里主要讲解如何解压ramdisk.img。

    file ramdisk.img
    --ramdisk.gz: gzip compressed data, from Unix   
    -----可知ramdisk.img是gz的文件
    mv ramdisk.img ramdisk.gz
    -----更改后缀名
    gunzip ramdisk.gz
    -----解压,会生成ramdisk文件
    file ramdisk
    --ramdisk: ASCII cpio archive (SVR4 with no CRC)
    cpio -i -F ramdisk
    

    image

    三、ramdisk、boot.img、recovery.img之间的关系

    ramdisk.img会被打包到boot.img和recovery.img中(不是同一个ramdisk.img).

    ramdisk.img中比较重要的文件是"init","init.rc",其中init是system/core/init/init.c编译而来,boot.img中ramdisk里的init.rc位于system/core/init/init.rc,而recovery.img中ramdisk里的init.rc位于bootable/recovery/etc/init.rc。

    kernel加载结束以后第一个进程是执行init,init会解析init.rc文件,并起相应的服务。由此可以知道正常开机和进入recovery模式起的进程是不同的。

    下面的代码位于bootable/recovery/etc/init.rc,由此可知,进入recovery模式后会执行sbin/recovery,此文件是bootable/recovery/recovery.cpp生成(可查看对应目录的Android.mk查看)。

    service recovery /sbin/recovery
        seclabel u:r:recovery:s0
    
  • 相关阅读:
    js对象深拷贝
    数组去重
    css布局之双飞翼布局
    css布局之圣杯布局
    在浏览器中输入URL并回车后都发生了什么?
    浮动和清除浮动
    Javascript 构造函数模式、原型模式
    Javascript之对象组合继承
    js可以随意拖拽的div的实现
    博客美化 之博客的魔方效果
  • 原文地址:https://www.cnblogs.com/linhaostudy/p/11543887.html
Copyright © 2011-2022 走看看