0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Android 11变化:刷机不再变砖?Recovery分区成为历史!

如意 来源:太平洋电脑网 作者:Aimo 2020-09-13 10:28 次阅读

Google近日正式发布了安卓11。对于这个最新一代安卓系统,所带来的新功能新特性,自然颇具价值。不过考虑到国内往往会对原生安卓的功能进行种种魔改,其实对于国内用户来说,影响有限。

安卓11对国内生态影响最大的,可能还是一些底层变化,这也较少为人提及。

没错,安卓11的底层又有了不少大变化!所带来的剧变,会深刻影响广大用户,今天就一起来聊聊吧。

刷机不再变砖?Recovery分区成为历史!

如果你是一名安卓刷机玩家,一定知道Recovery这个名词。这是安卓系统中,用于恢复系统的模式,无论是厂商官方升级系统,还是玩家刷入第三方ROM,通常需要通过Recovery来进行。在安卓机中,还专门划分了一个分区来放置Recovery,但这在安卓11中要成为历史了。

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

Android 11变化:刷机不再变砖?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是刷机不可或缺的工具,刷机玩家何去何从?恐怕得另觅出路了。

安卓11是有史以来最容易升级的安卓?

我们知道,Google一直为解决系统碎片化问题做努力,力求设备能够升级最新版本的安卓。

为此,Google作了很多努力,例如在安卓8.0中推行了Project Treble机制,将系统(Android OS framework)单独分区,和硬件驱动(Vendor implementation)分离,此后厂商可以为设备单独推送新版安卓,而不需要重新适配驱动。

Android 11变化:刷机不再变砖?Recovery分区成为历史!

Project Treble将Google的安卓系统框架和硬件供应商提供的驱动作了分离

Project Treble大大简化了安卓系统的升级流程,但这还不够。在安卓10当中,Google推行了Project Mainline,将系统进一步细分模块化。

在安卓10中,14个系统组件被Mainline化,媒体解码器、权限控制器网络组件等系统组件,都可以像普通App一样,通过应用商店来更新——很多朋友发现,今年安卓机的GPU驱动竟然能够独立更新,就得益于此。

在安卓11中,Google又进一步对安卓组件进行细分,安卓的组件模块达到了20个之多,安卓的系统维护将会变得前所未有地灵活。

不仅如此,Google还将改制推行到了系统内核当中,安卓的Linux系统内核升级将会变得更加灵活。

在当前的安卓系统中,Linux系统内核升级大体需要经历三个步骤。首先,Google选定一个Linux LTS版本作为安卓内核,打上安卓运行所需要的Patch;

接着,Google将这个内核提交给高通等SoC供应商,供应商再次将其打造成为适配SoC的内核;

最后,三星等设备商再让内核适配不同的元器件,再次为内核打上各种Patch,让内核成为真正可以在安卓机上运行的版本。

Android 11变化:刷机不再变砖?Recovery分区成为历史!

传统的Android系统Linux内核升级流程,需要经由重重环节,非常麻烦

由于步骤繁琐,因此当前的安卓机一旦出厂,Linux内核就很少变动,即使是Google旗下的Pixel设备,内核也依然只是较为老旧的Linux 4.14。

而在安卓11中,情况有所变化,Google将系统内核进行了模块化修改,内核被分成了Generic Kernel Image(GKI)和其他GKI模块。

如果想要升级Linux版本,Google可以直接面向安卓机推送GKI,手机直接升级GKI即可,再也不需要经历从SoC厂商到手机设备厂商的繁琐步骤。

Android 11开始,内核进行了模块化,一个GKI内核可以通用于市面上的大量安卓机

据了解,安卓11的这一特性,在内核版本高于Linux 5.4以上的设备上,是要求强制执行的。

可以说,如果安卓11的设备出厂内核版本就是Linux 5.4以上,那它有可能会是史上最容易升级的安卓。

安卓存储目录文件夹乱象彻底解决?

相信不少人发现,安卓机用久了以后,存储目录下就会多出很多奇奇怪怪的文件夹,这些文件夹是由各种App生成的,这其实是一个历史遗留问题。

安卓机的内部存储目录一度非常小,例如经典的Milestone的ROM只有512M,需要用SD卡扩展存储空间,因此安卓App往往会将文件保存在外部存储目录下(也就是sdcard目录)。

而安卓在4.3版本前并没有提供外部存储目录的规范,App习惯在sdcard目录中随意建立自己的文件夹,这个习惯一直保留到如今。

现在,尽管安卓建立了sdcard目录的存储规范,例如安卓系统规定App如果要在内部存储空间建立文件夹,需要建立到/data/data/目录下,在外部存储空间则需要建立在/sdcard/Android/data/目录下。

然而这一规范并非是强制性的,很多App由于使用第三方SDK等各种各样的原因,视安卓的存储目录规范不见,依然在sdcard目录下自建文件夹,安卓存储目录的混乱由此而来。

在安卓11中,文件夹乱象终于有望得到彻底解决。安卓11将不再允许App在sdcard建目录和文件,APP只能够往特定目录的私人文件夹写入数据。

目前某些APP已经开始为此做准备,例如新版QQ将存储目录从/sdcard/tencent/变更到了/sdcard/Android/data/com.tencent.mobileqq/Tencent/,就是为了适应安卓的存储新机制。

总结

除了上文所提到的,安卓11还有很多非常有意义的更新,例如更强大的隐私保护、改进的通知系统等等,这里就不一一列举了。

总的来说,安卓11是一个从里到外都进行了重大改革的版本,它解决了安卓的很多历史问题,大家共同期待吧。
责编AJX

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3904

    浏览量

    126757
  • Recovery
    +关注

    关注

    1

    文章

    9

    浏览量

    10136
  • 安卓
    +关注

    关注

    5

    文章

    2108

    浏览量

    56774
收藏 人收藏

    评论

    相关推荐

    DVD程序

    DVD程序恒晨CVD613B机芯板号CVD605A-B 12XH SEVR0 V1.5 8202GQ 120XH
    发表于 09-05 11:38 0次下载

    【米尔-国产瑞芯微RK3568开发板试用体验】系统扩容

    分区依次偏移即可,再在机工具上逐个按上述地址、分区标签加载loader、parameter、uboot、misc、boot、recovery、rootfs、oem、userdata,
    发表于 09-01 00:13

    小雅触屏音箱成maskrom

    小雅触屏音箱,把提出的system文件增加软件后回去,结果忘点设备分区表查看地址,没有生成正确地址,是打开软件时的原始地址,结果flash都被覆盖了,maskrom设备了,怎么救
    发表于 08-27 01:43

    揭秘!如何通过气密性检测仪实现高效能

    在2024年的今天,随着科技的快速发展,已经成为我们日常生活中不可或缺的一部分,广泛应用于支付、门禁、考勤等多个领域。然而,对于
    的头像 发表于 07-09 14:52 166次阅读
    揭秘!<b class='flag-5'>刷</b>脸<b class='flag-5'>机</b>如何通过气密性检测仪实现高效能

    将加密例子程序FLASH_ENCRYPTION中FLASH全部复制到另一台设备会的原因?怎么解决?

    COM6对应模块没有任何反应,之后我重新把正常程序烧写到COM6模块,烧写动作正常, 但是该模块,没有任何反应了。 我原来试过未加密的程序,将一个模块的FLASH内容读取,全部烧写到另一个模块上,动作正常。 在开发模式下的加密动作,应该可以重新烧写程序吧,没有真正
    发表于 06-11 06:41

    如何将后的CC2642R恢复正常?

    1.BLE做OTA升级,通过串口向flash 0x00000000地址开始写入bin文件数据 2.352K bin文件写入结束后,重新启动BLE 3.通过串号向BLE发送信息,无任何回复 4.再次使能SBL,重启BLE后,串号发送升级请求,无任何回复 述求:如何将
    发表于 05-30 08:19

    TLE9869的原因?

    不幸的是,我错误地用 TLE987x 的固件刷新了我的 TLE9869 评估板。 我的 TLE9869 现在了吗? 我无法闪光。 我已经尝试了本文档中的所有步骤:https
    发表于 05-29 07:16

    Hikey960开发板刷写问题

    改了prm_ptable.img中boot分区的大小,但没有分配ptable分区,现在不进ptable和xloader了,boot也不进。进re
    发表于 05-17 21:02

    STM32F103RCT6自动擦除FLASH会导致产品怎么解决?

    本人最近在使用STM32F103RCT6这款芯片做产品,但是发现有个别芯片出现在掉点瞬间有上电时,MCU自动擦除了第一个FLASH扇区现象,导致产品.而且这个现象是可以复现的.而恰巧这个又是发个
    发表于 04-23 06:06

    请问mbed物联网操作系统会成为cortex-m中的android吗?

    mbed 物联网操作系统会成为cortex-m中的android吗?
    发表于 01-17 07:14

    采用两片AD2S1210分别对旋的粗和精进行解码,存在数据跳的问题怎么解决?

    在一些特定位置的时候粗解码出来的数据存在跳,分辨率是12位,跳变现象是粗第高5位和高6位出现00到11 或者 11 到00 的跳
    发表于 12-21 06:42

    请问鸿蒙OpenHarmony在SD卡系统上如何调整分区大小

    今天入了一个鸿蒙4.0,用的飞腾派,但是关于鸿蒙的资料真的很少。 然后它有效分区只用了1G,剩下的空间都没被使用。我想问问如何让它吧根分区扩展到整个SD卡大小
    发表于 12-10 10:38

    oracle数据库分区有哪些

    Oracle数据库的分区是指将表或索引的数据划分为不同的部分,使得数据存储和查询变得更加高效。分区可以根据许多不同的方式进行,以满足不同的需求。本文将详细介绍Oracle数据库的分区方式,包括范围
    的头像 发表于 12-05 16:18 1834次阅读

    金升阳推出LBH300-13Bxx系列高效绿色类电源

    基于通信领域市场对类电源不同功率段的需求,金升阳对已开发的LBH150/LBF750-13Bxx系列,现补充功率布局,新上市LBH300-13Bxx系列(标准半)。作为新一代超小型化的高效绿色
    的头像 发表于 12-01 09:41 679次阅读

    如何在Ubuntu Linux上释放/boot分区中的空间

    在Ubuntu Linux上,/boot分区是用于存储启动相关的文件的。随着时间的推移,这个分区可能会满,导致系统无法安装新的内核和更新。本文将介绍如何释放/boot分区中的空间,并
    的头像 发表于 11-28 10:04 740次阅读