当前位置:   article > 正文

安卓REC原理_vab分区

vab分区

前置

安卓系统分区

直观

1.modem分区,主要是手机短信的通讯模块;

2.bootloader分区,主要用于线刷;

3.recovery分区,只有用于普通刷机;

4.boot分区,用于启动;

5.system分区,系统分区;

6.data分区,用户分区;

7.cache分区:存储使用过程中的缓存数据

8.vendor:包含有厂商私有的可执行程序、库、系统服务和app等。可以将此分区看做是system分区的补充,厂商定制ROM的一些功能都可以放在此分区。

    System分区: 就是我们刷ROM的分区

    Data分区:   分区就是我们装APK的分区

    Catch分区:是缓存分区

    SDCard分区:就是挂载的SD卡。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

双清就是指对data分区和cache分区进行清理。

详细

boot分区:由 kernel 和 ramdisk 构成,内核就这这里

system分区:这个分区包含了整个操作系统除 kernel 和 ramdisk 之外的其它部分,包括 Android UI 和设备上预装的 APP。删除这个分区只会同步将 Android 系统从设备上卸载掉,而不会导致设备不能重启,因此你依然可以顺利让设备进入到 recovery 或 bootloader 模式来为它重新刷入一个新的 ROM。
recovery 分区:相当于一个备用的 boot 分区,利用它我们可以使设备启动到恢复模式窗口来进行一些高级的恢复和维护操作。

data分区:也被称作 userdata,是用户数据被存储的地方——也就是说你的联系人、短信、配置文件和你自己安装的 APP 都位于这里。删除这个分区相当于将你的设备恢复出厂设置,你的设备会变得和你第一次开机或最后一次刷入官方/自定义 ROM 后一样。你在设备上点击清除用户数据或恢复出厂设置按钮后,实际上清除掉的就是这个分区。

cache分区:存放的是 Android 系统中经常被访问的数据和 APP 的部件。删除这个分区不会对你的个人数据造成影响,这个分区上的数据会随着你继续使用设备被重新收集并存储在这里。

misc分区:包含了各种以开关量形式保存的系统配置,包括 CID(Carrier or Region ID)、USB配置和某些硬件配置等。这是个很重要的分区,如果它遭到了破坏或有数据丢失,那么设备的一些功能可能无法正常使用
————————————————
版权声明:本文为CSDN博主「菜鸟xiaowang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xiaowang_lj/article/details/125430257

解锁与fastboot和recover模式

当我们只是按下电源键开机时,会进入正常启动模式。Secondary stage bootloader会从boot分区开始启动

fastboot模式:fastboot是 android定义的一 种简单的刷机协议,用户可以通过fastboot命令 行工具来进行刷机。比如说 fastboot flash boot boot.img这个命令就是把boot.img的内容刷写到 boot分区中。一般的手机厂商不直接提供 fastbo ot模式刷机,而是为了显示他们的牛B之处,总 是会提供自己专有的刷机工具和刷机方法。比如 说三星的Odin,摩托的RSD,华为的粉屏等 等。 但是其本质实际上是相同的,都是将软件直接fla sh到各个分区中。

recovery模式:recovery是 android定义的一 个标准刷机协议。当进入recovery模式时,seco ndary stage bootloader从recovery分区开 始启 动,recovery分区实际上是一个简单的Linux系统 ,当内核启动完毕后,开始执行第一个程序init(i nit程序是Linux系统所有程序 的老祖宗)。init会 启动一个叫做recovery的程序(recovery模式的 名称也由此而来)。通过recovery程序,用户可 以执行清除数 据,安装刷机包等操作。一般的手 机厂商都提供一个简单的recovery刷机,而大名 鼎鼎的CWM Recovery就是一个加入了很多增强 功能的 recovery,要想用上CWM Recovery前提 是recovery分区可以被刷写。大家在论坛上看到 的解锁bootloader,通常指的就是 解锁recovery 或fastboot,允许刷写recovery分区,这样大家 就可以用上喜爱的CWM Recovery了。

recovery

Recovery 本身的本质也是一个简单Linux加一个Google 开发简单图形界面。

recovery模式:recovery是android定义的一个标准刷机协议。当进入recovery模式时,secondary stage bootloader从recovery分区开始启动,recovery分区实际上是一个简单的Linux系统,当内核启动完毕后,开始执行第一个程序init(init程序是Linux系统所有程序的老祖宗)。init会启动一个叫做recovery的程序(recovery模式的名称也由此而来)。通过recovery程序,用户可以执行清除数据,安装刷机包等操作。一般的手机厂商都提供一个简单的recovery刷机,而大名鼎鼎的CWM Recovery就是一个加入了很多增强功能的recovery,要想用上CWM Recovery前提是recovery分区可以被刷写。大家在论坛上看到的解锁bootloader,通常指的就是解锁recovery或fastboot,允许刷写recovery分区,这样大家就可以用上喜爱的CWM Recovery了。
————————————————
版权声明:本文为CSDN博主「nicholas_duan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/nicholas_duan/article/details/107427347

系统分区介绍

在这里插入图片描述

上述引用自 更多详细请看
https://blog.csdn.net/oAiYinSiTan12/article/details/119685061

系统OTA升级流程

非A/B升级

Android系统收到服务端下发的OTA推送,将OTA包下载至cache分区。
OTA包下载完成后,将向misc分区写入指令,表明下次启动时进入recovery模式并使用该OTA包进行升级。
重启手机。
重启后最先进入bootloader,bootloader会先判断按键组合、电源寄存器等,随后会读取misc分区的内容并解析。由于步骤2中已经向misc分区写入了指令,此处bootloader读取指令后会引导启动recovery系统。
进入recovery,读取cache分区中的OTA包,并解析其中的升级脚本,按照其指令对系统各个分区进行升级。如果recovery自身也需要升级,会在此过程中向system中写入recovery-from-boot.p文件,这是一个recovery升级所需要的patch。
recovery会清除misc分区。
重启手机。
重启后最先进入bootloader,判断按键组合、电源寄存器、misc分区内容等,默认情况会启动Android系统,此时已经是OTA升级后的新版本系统。
新版本Android系统启动后,会检查是否存在recovery-from-boot.p文件,如果存在,则会对recovery进行升级。

A/B升级

在Android O之后,Google引入了一种新的分区结构,称为A/B分区,与之对应,传统分区结构被称为non-A/B分区。

在这里插入图片描述

A/B分区结构,顾名思义,将系统分区分成了A和B两个槽(slot),手机启动时会选择A槽或者B槽启动,运行过程中仅使用当前槽位的分区。一旦当前运行的槽出现问题,系统仍可以选择另一个槽进行启动,从而保证系统良好的可用性。

采用A/B分区结构,能够实现无缝升级。例如用户正在运行A槽,此时收到OTA推送,则系统会在后台一边下载OTA数据,一边同时对B槽进行升级。当B槽系统升级完成,用户会收到重启提示,此时重启手机将自动切换到B槽的新版本系统。在此过程中,仅重启操作是会被用户感知的,这个重启与普通重启的耗时没有什么区别。

如果OTA失败,也仅仅是待升级的槽出现问题,可以重新尝试OTA,并不会影响用户当前运行的系统。

由于A/B分区结构可以实现一边从服务端获取OTA数据,一边直接写入待升级的槽,不需要临时存储OTA包的空间,因此不再需要在cache或userdata分区预留足够空间。
————————————————
版权声明:本文为CSDN博主「菜鸟xiaowang」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xiaowang_lj/article/details/125430257

在安卓机中,还专门划分了一个分区来放置Recovery,但这在安卓11中要成为历史了。

传统的Recovery升级模式,如果写入System系统分区的数据有误,那么机器可能就无法启动,刷机玩家应该很熟悉这一类“变砖”的情况,甚至厂商OTA偶尔也会“变砖”。要如何避免?事实上,近年的新安卓机使用A/B分区机制,很多安卓机已经不需要Recovery来引导升级。

Android系统启动方式的变更,之前需要经由Recovery,使用A/B分区机制后直接通过boot来引导启动

在采用了A/B分区机制的安卓机中,当系统需要升级的时候,会将新的系统写入其中一个分区,写入成功后则从该分区启动;如果写入失败,或者启动失败,则从原分区启动,这相当于两个系统分区相互备份,大大减少了系统升级的故障率。

安卓11的机制也与此相似。出厂预装安卓11的机器,取消了Recovery分区,而且对A/B分区机制进行了一定程度的改变。安卓11需要升级系统的时候,会将新系统的数据和现在的系统数据进行对比校验,将差异部分写入另一个分区而不是系统分区;

之后,利用新数据启动系统,如果系统顺利启动,那么就将差异数据写入到系统分区,启动失败则抛弃差异数据,用原来系统分区的数据启动。

安卓11这个新机制既有A/B分区的可靠性优点,也无需像A/B分区那样占据大量的额外空间。

无论如何,Recovery分区都已经遭到了遗弃,预装安卓11的机器,出厂就没有Recovery分区,boot分区更多承担起了以前Recovery分区的工作。Recovery是刷机不可或缺的工具,刷机玩家何去何从?恐怕得另觅出路了。

v ab分区

如何操作

什么是boot和root

boot分区就是操作系统的内核及在引导过程中使用的文件,简单来说就是没有这个东西你的手机将无法开机。而获取Root的话,你可以简单的理解为Magisk把超级管理员权限补丁放到系统引导里面。

没有recover分区了 怎么实现刷recover

https://www.jinrulan.com/index.php/archives/249/
这个网站还有实用教程 比如隐藏root分区的

以前直接将TWRP刷入recovery分区,然后直接通过Magisk的压缩包,将补丁打入。 !!!!但是,现在recovery分区没了,惊不惊喜意不意外?! 现在Recovery分区合并到了Boot分区,现在只要你敢刷写boot分区,手机就不开机给你看。 既然都合并了。咱们只要在不破坏Boot分区其他内容的情况,替换掉Rec部分,不就可以了?如果我们能让Rec自己修补替换里面的内容,这样就不破坏Boot的结构啦。手机就能正常开机。那这个时候就需要咱们的临时启动了!

VirtualAB分区和TWRP_Recovery关系:在刷入TWRP之前,你必须了解VirtualAB并没有单
独的recovery分区的,而我们看到的官方recovery模式,实际仅仅是boot分区里ramdisk的
组成部分。换句话说,VirtualAB分区 并没有1个单独的recovery分区,boot分区就是recov
ery分区,recovery分区就是boot,对应在手机里的位置即可boot分区。当我们刷入TWRP
的时候,也就是将TWRP刷入手机的boot分区即可实现。而rec和boot融为一体的缘故
VirtualAB机型的TWRP文件一般就以1个boot.img形式存在

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/134535
推荐阅读
相关标签
  

闽ICP备14008679号