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

2015-06-14 17:35:18 +08:00
 leeyuzhe
我只知道它能驱动一部分手机硬件,可以运行shell命令。然后呢它到底是个什么系统?
6213 次点击
所在节点    Android
18 条回复
nealfeng
2015-06-14 18:07:23 +08:00
linux
icedx
2015-06-14 20:13:59 +08:00
Recovery 就是一个Linux 内核
只是被叫做Recovery 的
在层面上是与内核同等的
只不过内核在运行末期会加载Java 虚拟机 呈现出用户界面
Recovery 则是执行特定命令 完成对系统的更新
wy315700
2015-06-14 20:18:59 +08:00
类似于Windows里的PE环境,
leeyuzhe
2015-06-14 20:29:48 +08:00
@wy315700 跟PE差远了吧 。。PE就是个在移动介质上的win系统
allenforrest
2015-06-14 20:30:48 +08:00
可以简单理解为一个二级Bootloader
leeyuzhe
2015-06-14 20:32:30 +08:00
@icedx recovery有必要加载Java虚拟机吗?感觉能驱动起来屏幕然后能执行shell脚本就行了。并且一般recovery的ing一共也才几兆大小
leeyuzhe
2015-06-14 20:33:45 +08:00
@allenforrest 照你这么理解,那安卓系统也是个二级的bl,我认为,recovery还有flash已经安装系统应该是平行关系的三个系统
wy315700
2015-06-14 20:41:08 +08:00
@leeyuzhe 一样的,PE也可以安装在硬盘里,本质上是一个轻量级的操作系统而已
billlee
2015-06-14 20:56:20 +08:00
大概是 recovery 和 Android 的 init 进程不同吧。
xuhaoyangx
2015-06-14 21:05:39 +08:00
就是一个linux的init的玩意,可以理解成轻量级linux系统
icedx
2015-06-14 21:12:21 +08:00
@leeyuzhe 我没说Recovery 会加载Java 虚拟机啊...
yaoye0o
2015-06-14 21:12:49 +08:00
recovery还有这样的意义啊。我只知道在rec模式能刷机
HackerOO7
2015-06-14 22:05:24 +08:00
VYSE
2015-06-14 22:41:07 +08:00
@billlee 内核也不一样,recovery是另外一个mini系统,只能驱动部分外设,mount system进行刷机
leeyuzhe
2015-06-15 11:25:29 +08:00
@HackerOO7 recovery是一个受限启动模式,独立于您的Android操作系统。就这一句有用的,我想知道它的原理,这页面全是简介与使用方法、不过还是谢谢呢
@VYSE 具体需要驱动哪些硬件,cpu+内存+屏幕(显示)就够了吧
@billlee 应该是俩独立的系统,而不是一个系统里俩不同的init
VYSE
2015-06-15 20:45:45 +08:00
@leeyuzhe 触控硬盘usb vibrator都可以,取决于rec作者定制的内核
acess
2015-06-24 22:52:28 +08:00
我记得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
2015-06-25 16:15:36 +08:00
@acess 感谢,写得这么详细

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/198477

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX