V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
leeyuzhe
V2EX  ›  Android

关于 recovery 到底是个什么系统?求科普

  •  
  •   leeyuzhe · 2015-06-14 17:35:18 +08:00 via Android · 10788 次点击
    这是一个创建于 3485 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我只知道它能驱动一部分手机硬件,可以运行shell命令。然后呢它到底是个什么系统?
    18 条回复    2015-06-25 16:15:36 +08:00
    nealfeng
        1
    nealfeng  
       2015-06-14 18:07:23 +08:00
    linux
    icedx
        2
    icedx  
       2015-06-14 20:13:59 +08:00
    Recovery 就是一个Linux 内核
    只是被叫做Recovery 的
    在层面上是与内核同等的
    只不过内核在运行末期会加载Java 虚拟机 呈现出用户界面
    Recovery 则是执行特定命令 完成对系统的更新
    wy315700
        3
    wy315700  
       2015-06-14 20:18:59 +08:00
    类似于Windows里的PE环境,
    leeyuzhe
        4
    leeyuzhe  
    OP
       2015-06-14 20:29:48 +08:00 via Android
    @wy315700 跟PE差远了吧 。。PE就是个在移动介质上的win系统
    allenforrest
        5
    allenforrest  
       2015-06-14 20:30:48 +08:00 via iPhone
    可以简单理解为一个二级Bootloader
    leeyuzhe
        6
    leeyuzhe  
    OP
       2015-06-14 20:32:30 +08:00 via Android
    @icedx recovery有必要加载Java虚拟机吗?感觉能驱动起来屏幕然后能执行shell脚本就行了。并且一般recovery的ing一共也才几兆大小
    leeyuzhe
        7
    leeyuzhe  
    OP
       2015-06-14 20:33:45 +08:00 via Android
    @allenforrest 照你这么理解,那安卓系统也是个二级的bl,我认为,recovery还有flash已经安装系统应该是平行关系的三个系统
    wy315700
        8
    wy315700  
       2015-06-14 20:41:08 +08:00
    @leeyuzhe 一样的,PE也可以安装在硬盘里,本质上是一个轻量级的操作系统而已
    billlee
        9
    billlee  
       2015-06-14 20:56:20 +08:00
    大概是 recovery 和 Android 的 init 进程不同吧。
    xuhaoyangx
        10
    xuhaoyangx  
       2015-06-14 21:05:39 +08:00
    就是一个linux的init的玩意,可以理解成轻量级linux系统
    icedx
        11
    icedx  
       2015-06-14 21:12:21 +08:00
    @leeyuzhe 我没说Recovery 会加载Java 虚拟机啊...
    yaoye0o
        12
    yaoye0o  
       2015-06-14 21:12:49 +08:00 via Android
    recovery还有这样的意义啊。我只知道在rec模式能刷机
    HackerOO7
        13
    HackerOO7  
       2015-06-14 22:05:24 +08:00
    VYSE
        14
    VYSE  
       2015-06-14 22:41:07 +08:00   ❤️ 1
    @billlee 内核也不一样,recovery是另外一个mini系统,只能驱动部分外设,mount system进行刷机
    leeyuzhe
        15
    leeyuzhe  
    OP
       2015-06-15 11:25:29 +08:00
    @HackerOO7 recovery是一个受限启动模式,独立于您的Android操作系统。就这一句有用的,我想知道它的原理,这页面全是简介与使用方法、不过还是谢谢呢
    @VYSE 具体需要驱动哪些硬件,cpu+内存+屏幕(显示)就够了吧
    @billlee 应该是俩独立的系统,而不是一个系统里俩不同的init
    VYSE
        16
    VYSE  
       2015-06-15 20:45:45 +08:00 via Android
    @leeyuzhe 触控硬盘usb vibrator都可以,取决于rec作者定制的内核
    acess
        17
    acess  
       2015-06-24 22:52:28 +08:00 via Android   ❤️ 1
    我记得recovery启动需要的文件都在recovery分区里面(或者说recovery.img),运行时被加载到内存盘里。(其实和Android很像,只是Android又继续启动了很多服务,启动了app_process等)
    这一点跟WinPE很像。
    /init程序应该和Android相同或者相似,都可以解释执行/init.rc(Linux也有init程序,好像叫做sysvinit,但我记得一般用的都基于shell,systemd就是用来取代传统init的)。
    一般看到的那个可以用音量键和电源键等操作的,带菜单的recovery界面就是一个Linux可执行文件搞定的(文件名就是recovery)

    我记得recovery分区和boot分区差不多,只是一个开机默认启动,一个按组合键启动,如果给recovery刷了boot.img就可以启动Android。不同机器可能不同吧,我的机器的EMMC分区表就是GPT……


    有个工具mkboot可以解压新版Android的boot.img、recovery.img,这些镜像文件貌似是在编译Android时编译出的一个小工具mkbootimg创建的。ubuntu上也有包abootimg可用。我觉得解压看看就大概知道里面有什么了。换内核时可以用这些工具。新版内核还有dtb文件,mkboot可以处理。
    leeyuzhe
        18
    leeyuzhe  
    OP
       2015-06-25 16:15:36 +08:00 via Android
    @acess 感谢,写得这么详细
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2781 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 265ms · UTC 12:56 · PVG 20:56 · LAX 04:56 · JFK 07:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.