从上图可以看出,一个完整的Android镜像参与方有多方,比如

  • system.img 主要包括Android框架。
  • boot.img (内核/ ramdisk)包含Linux内核+ Android补丁。
  • vendor.img 包含SoC特定的代码和配置。
  • odm.img 包含设备特定的代码和配置。
  • oem.img 包含OEM /运营商相关配置和自定义。
  • bootloader 启动内核(供应商专有)。
  • radio 调制解调器(专有)。

在Android 8.0之前,供应商,odm和oem镜像是可选的;其实属于这些映像的文件被放置在boot.img或system.img中,并带有符号链接(如/vendor>/system /vendor)。

Android 8.0使vendor分区成为强制性的。目标是通过在Android平台(在system.img上)和供应商提供的代码之间定义标准接口来模块化Android分区。该标准接口使Android平台得到更新,而不会影响SoC和ODM分区。

8.0中最重要的更新之一是Project TrebleTreble是不仅仅是安全功能 - 它是一系列重要的体系结构变化,对安全性有着巨大的积极影响。

为了让设备运行Android,设备制造商可以定制该设备的软件与设备的硬件。在以前的Android版本中,这些自定义与一般的Android OS框架混合在一起。在Android 8.0中,谷歌与设备制造商和片上系统(SoC)供应商密切合作解决这个问题,从而对Android的底层级系统架构进行了最大的改变。 Treble将供应商实现(由SoC供应商编写的设备特定的较低级别软件)与Android框架分离开来。为了实现这一目标,Android 8.0在Android框架和SoC供应商实施之间包含一个新的供应商界面。新的供应商接口由供应商测试套件(VTS)验证,该套件验证供应商实施的向前兼容性。这种分离使得将设备更新为新版本的Android变得更加容易,因为它使供应商的实现保持不变。

从历史上看,更新对于设备制造商而言是具有挑战性的,代价高昂且耗时的,因为它们的定制化。 带有Treble的设备更容易更新,这应该意味着更快的安全补丁和整个Android版本的更新生态系统。更快更轻松的更新并不是Treble唯一的安全优势。Treble的模块化旨在通过提高隔离度来提高安全性和供应商提供的硬件抽象层(HAL)的取消特权。Android的早期版本中,HAL在进程中运行。该进程需要所有进程内HAL所需的所有权限,包括直接访问内核驱动程序。同样,进程中的所有HAL都可以访问与进程剩余部分相同的一组权限,包括其他进程内HAL所需的权限。这导致了过度权限的进程和HAL,它们有权访问他们不应该拥有的权限和硬件。

在Android 8.0中,将HAL移入它自己的进程中。孤立的HAL更好地遵守最小特权原则,并提供两个明显的优势:

  • 每个HAL都在其自己的沙箱中运行,并且只能访问其控制的硬件驱动程序和执行其工作所需的权限。
  • 进程失去对硬件驱动程序和HAL所需的其他权限和访问的能力。

Android8.0后版本的分区变化相关推荐

  1. Android 8.0学习(18)--- Android8.0运行时权限策略变化和适配方案

    Android8.0运行时权限策略变化和适配方案    在 Android O 之前,如果应用在运行时请求权限并且被授予该权限,系统会错误地将属于同一权限组并且在清单中注册的其他权限也一起授予应用.对 ...

  2. Android8.0后静态广播以及有序广播的使用

    Android8.0后静态广播以及有序广播的使用 我们都知道,8.0为了管理系统和节约电量特别针对广播和服务发送intent的方式启动做出的改变,Android8.0后正常静态注册的广播都没有用了,现 ...

  3. Android8.0运行时权限策略变化和适配方案

    版权声明:转载必须注明本文转自严振杰的博客:http://blog.yanzhenjie.com Android8.0也就是Android O即将要发布了,有很多新特性,目前我们可以通过Android ...

  4. SpringBoot升级到2.0后默认时间格式变化_springboot接收date类型参数

    springboot1.x时,请求返回默认将Date类型转换成时间戳: createTime: 1544693261000 然而在升级到springboot2.0后,默认返回的时间格式变成了UTC字符 ...

  5. android8.1.0官方下载,官方Xposed框架For Android8.0/8.1(Oreo)发布v90-beta3版本

    去年12月份的时候记得跟大家提到过Android8.0(Oreo)版本的Xposed框架的作者也带来的新消息,说是代码部分与已经完成了大约95%,但是剩余的5%都是比较难的,而且由于上面那个aosp的 ...

  6. Android8.0通知功能的实现方法

    首先,对于Android8.0以上版本系统的通知功能,仅仅靠NoticeficationCompat.Builder已经不能实现了,因为8.0以后引入了一个通道的概念---NotificationCh ...

  7. android8.0 桌面图标适配

    开始自己的android开发记录历程. 上周开发应用完结,结果老板装上后,应用logo居然显示android机器人(老板华为mete9 pro的机器). 查找后是android8.0图标适配原因. 在 ...

  8. Android护眼模式、屏幕亮度调节功能开发【基于Android8.0】

    Android护眼模式.屏幕亮度调节功能开发[基于Android8.0] [引言]网上关于写护眼模式,屏幕亮度调节的android的方法很少,找到的都不能很好的适配Android8.0的版本.于是自己 ...

  9. Android深入四大组件(五)Android8.0 根Activity启动过程(后篇)

    前言 在几个月前我写了Android深入四大组件(一)应用程序启动过程(前篇)和Android深入四大组件(一)应用程序启动过程(后篇)这两篇文章,它们都是基于Android 7.0,当我开始阅读An ...

最新文章

  1. 关于使用AIR开发移动APP 的技术解决方案 笔记
  2. 计算机科学的理论基础
  3. Boost:双图bimap的范围标准方式的测试程序
  4. 吴恩达《机器学习》学习笔记十四——应用机器学习的建议实现一个机器学习模型的改进
  5. Showdoc使用——接口文档
  6. 求阶乘的和(信息学奥赛一本通-T1091)
  7. asp判断ajax请求 -asp.net,一个asp注册验证用户名是否重复的Ajax实例
  8. 分享5个viewport相关的jQuery插件
  9. Android Mvp架构的小demo
  10. 深度学习论文阅读目标检测篇(六)中英对照版:YOLOv3《 An Incremental Improvement》
  11. 逻辑删除和物理删除的区别
  12. C-COT -- 超越相关滤波:学习连续卷积算子(Continuous Convolution Operators)
  13. 信息系统项目管理师必背核心考点(六十三)项目组合管理的主要过程DIPP分析
  14. Cobbler 自动装机系统
  15. 共享锁和排它锁(ReentrantReadWriteLock)
  16. AD 22 如何从SchDoc文件生成PcbDoc文件,进行布局和走线?
  17. -2岁的产品经理学习日记2020/2/15
  18. 已解决(Python爬虫requests库报错 请求异常SSL错误,证书认证失败问题)requests.exceptions.SSLError: HTTPSConnectionPool
  19. 分享:ThinkPad E40无线网卡驱动安装 FOR CENTOS6.3
  20. 三种经典iPhone上网络抓包方法详解

热门文章

  1. class不生效 weblogic_weblogic下更改jsp不生效的解决办法
  2. NSGA-II入门C1
  3. InvocationTargetException异常解析
  4. 企业运维之域控篇(十)--SERVER 2003 迁移到 SERVER 2008 (异机)
  5. 复地集团的现代化办公方案
  6. symfony小练习-表白墙
  7. 【数据库】Redis/MongoDB/MySQL/Oracle随笔索引
  8. mybatis的注解开发之三种动态sql
  9. IntelliJ IDEA 2017.3.2 热加载(Hot Swap)
  10. Android驱动开发第五章