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

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

3天内不再提示

基于Android的最小Linux映像:MicroDroid

ss 来源:CSDN 作者:Carol 2021-02-03 15:31 次阅读

【CSDN 编者按】MicroDroid 本质上还是一个 Android 系统,换句话说,甚至不能将 MicroDroid 作为一个单独的系统来使用,谷歌如今为现有的Android 系统开发基于虚拟机威廉希尔官方网站 的安全功能,MicroDroid 是为此而生的。

近日有消息称,谷歌正在研发一个新版本的 Android 系统,名为 MicroDroid 。这个新版本的 Android 首次官方露面是在谷歌提交的开发说明上,谷歌将其称为“基于 Android 的最小 Linux 映像”。

据 MicroDroid 的描述说明显示,MicroDroid 将在虚拟机中使用,并且被称为“通用的 Android 系统镜像(GSI)的精简版”,GSI 已经是开源 Android 的一个镜像,而 MicroDroid 则是一个比通用的 Android 系统更精简的版本。

MicroDroid 有什么用?

刚才说到,GSI 已经是一个开源的 Android 的基础版本,但 MicroDroid 相对更精简。根据 XDA Developers 的分析,谷歌的目标或许是在 Android 旁侧运行的虚拟机,如 DRM 相关的应用。MicroDroid 内部拥有少量组件,如 init 和 binder 服务,以便与底层 Android 主机进通信

通过 MicroDroid,我们可以设想在 Android 的同时运行一个小型的虚拟机,MicroDroid 是任意设备可运行的,方便开发者虚拟化一个单独的 Android 应用程序,而不是提供一个完整的辅助桌面环境。这使得在云端运行安全应用、在操作系统迭代之间切换安全配件文件的能力变得更简单。

同时,也可以与市场上较新的芯片(如骁龙 888)中的虚拟化功能相结合。而高通方面则表示,允许隔离应用程序和同一设备上的操作系统之间的数据,也可以在隔离的操作系统之间即时更改,并且适应性很好。

图片来源:高通

图为骁龙 888 上的上的新型 Type-1 虚拟机管理程序,Hypervisor 在隔离的操作系统之间进行即时切换

另外,据 LWN 的 Jake Edge 介绍,为了提高安全性,谷歌正在致力于将名为“KVM”的 Linux 内核虚拟化机制引入 ARM64 soc 驱动的 Android 设备。

据称,引入 KVM 支持可以“取消”运行在 Armv8 的高度特权异常级别之一的第三方代码的特权。例如用于 DRM 、密码学和其他二进制文件的第三方代码,可以在 Android 操作系统相同级别的 VM 中运行。

图片来源:ARM

为了管理这些虚拟机,谷歌正在适配 Chrome OS VMM ( crosvm ),这是用于在 Chrome OS 上运行 Linux 应用程序。同时也准备在一个名为“虚拟化”的 APEX 新包中将 Cromsvm 包含进去一同发布、并为 Android 的 Linux 内核分支带来 ARM64 上的“受保护的 KVM ”项目。

Android 解决内核碎片化问题迫在眉睫

MicroDroid 的诞生或许要追溯到更早之前。目前,整个 Android 系统的最新开发是通用内核映像( GKI ),其目的是减少 Android 内核的碎片化。

GKI 架构

在传统上,每个手机都有自己的内核版本,但却是无法扩展的,这一特性导致了碎片化。若是每次更新都要同时更新多个内核版本(不同设备)的话,就会存在困难程度上升和费用增加的问题,进而导致某些系统很难更新或无法更新。如果说某些设备的内核太老了,没有最新版本所需要的功能,还会导致这些设备无法更新 Android 版本——在早期乃至近几年的 Android 设备市场中,这种情况的确是常见的。

这种分裂的现状还带来了另一个问题:对上游内核的不利。相对来说,这个问题目前没有得到足够的关注。主线内核背后的思想是拥有正确的子系统和抽象,以便支持各式各样的硬件,但这是不可能做到的。因为这些代码都存储在不同的内核中,就像你走进一片巨大的森林,目之所及的仅仅是你视线范围的树木,不可能看清楚森林里的每一棵树上的每一片叶子,同理,除非开发人员能够看到所有不同硬件下所有不同的问题和解决方案,否则对于内核开发人员来说,是无法想出一个适用于所有人的抽象。

Android 内核层次结构导致碎片化

GKI 用于解决 Android 内核碎片化问题,而 MicroDroid 则是谷歌在 Android 硬件上支持虚拟化道路上的重要一步。

Android 虚拟化管理混乱

如今 Android 上的管理程序情况还是很混乱的。如果你认为内核的碎片化问题已经“很糟糕了”,那现实的情况可能是已经“非常非常糟糕了”。

就目前而言,所有的 Android 设备都在运行的某些版本的 Linux ,但就管理程序而言,简直分裂得就像狂野的西部世界。有些设备根本没有管理程序,这算情况好的了,但对于有管理程序的设备而言,他们的管理程序需要用于管理不同的事情。

3.1 安全增强

目的是保护内核,但是其本身也存在问题,因为缓解措施很多时候也是攻击的入口。并且重点在于,虚拟机监控程序使用更高的特权运行,所以其中的错误可能意味着这些假定的保护程序并不能真正地保护系统。

3.2 粗粒度内存分区

这个在 Android 中的粗粒度内存分区看起来有点像 IOMMU ,但实际上不是。它在引导时用于将物理内存划分为多个区域,这些区域可以交给各种设备进行 DMA 或者其他用途。但在引导时间之后,Hypervisor(虚拟机监视器)还有很多工作要做,所以这类型的使用显得有些浪费。

3.3 在Android以外运行代码

Armv8 有多个特权级别,称为异常级别,从特权级别最高的固件( EL3 )到管理程序( EL2 )和操作系统( EL1 ),再到特权级别最低的用户( EL0 )。Hypervisor 异常级别不是 EL3 级别,因此设备制造商在更新那里的代码时不必担心设备的砌墙问题,同时它也不是 EL1 级别,运行在那里的代码不需要与任何其他东西集成。而这意味着,EL2 成为了某种“游乐场”,似乎不适合其他地方的代码会被卡在那里,因为 EL2 拥有的特权可能比需要的多得多,这是很糟糕的现象。

特权和例外级别

在大多数情况下,甚至没有任何虚拟机,所以这些管理程序不会提供常见的服务。这种情况导致可信计算基础( TCB )增加了,安全性和功能性因此而损失,安全性受到了阻碍。而且因为该级别的碎片化,更新设备变得更加困难。此外,由于无法从 Android 内部访问硬件虚拟化特性,功能也相应变得很缺乏。

实际上,受信任级别比不安全级别拥有更多特权,因此,受信任的操作系统可以映射不受信任的管理程序内存,且可以提供访问,这样一来受信任的应用程序也可以访问它。这在 Android 生态中是有问题的,其中一部分原因来自于运行在可信端的 DRM 的第三方代码、各种不透明的二进制 blob 、加密代码等等,这些代码可能并不值得信任,而且它们也会受到碎片化问题的困扰。

内核的 Arm64 体系结构的维护者之一、同时也是 KVM 引入 Android 系统的负责人威尔·迪肯( Will Deacon )认为,“可信”一次在很大程度上是一个营销术语,目的是让人们觉得运行在那里的代码是安全可靠的。但“信任”还有另一种定义,即“期待、希望或假设”,这同样适用于当下。Android 系统必须希望在受信任端运行的软件没有恶意的,否则一旦恶意软件运行在可信任端,Android 就束手无策了。

所以,Android 如今希望有一种方式来取消这个第三方代码的特权,需要一个可移植的环境,能够以一种与 Android 系统隔离的方式来承载这些服务,还能将这些第三方项目彼此隔离。基于这些愿景,KVM 和 MicroDroid 就应运而生了,MicroDroid 在 KVM 的基础上能保证更安全、更快捷、更开放的方式去进行隔离、迭代和运行。

另外,也有业内人士猜测,MicroDroid 也可能和谷歌努力将 Crosvm 背后的想法扩展到 Android 应用程序有关。不过在官宣之前,我们也只能对现有的信息作出一些猜测,MicroDroid 背后真正的意图是什么,或许也要等待进一步的消息。

责任编辑:xj

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

    关注

    12

    文章

    3936

    浏览量

    127388
  • 内核
    +关注

    关注

    3

    文章

    1372

    浏览量

    40288
  • 操作系统
    +关注

    关注

    37

    文章

    6818

    浏览量

    123325
收藏 人收藏

    评论

    相关推荐

    如何快捷使用瑞芯微RK3568J开发板

    概述 本文详细介绍了RK3568在LinuxAndroid、Ubuntu系统编译过程中可能遇到的问题,包括设备树路径、源码编译不通过、内核编译配置错误、buildroot编译问题、交叉编译工具位置
    发表于 12-19 16:18

    Android XR:耳机和眼镜进入 Gemini 时代

    “ Google 与三星和高通合作发布了 Android XR,这是一个扩展您的现实生活,以全新方式探索、连接和创造的平台。 ” 原文转载自:https://blog.google/products
    的头像 发表于 12-15 14:14 160次阅读

    android手机上emulate应用程序的方法

    Android手机上模拟(emulate)应用程序的方法通常涉及到使用Android模拟器(Emulator)或类似的工具来模拟Android环境,以便在没有实际物理设备的情况下运行和测试应用程序
    的头像 发表于 12-05 15:33 260次阅读

    Android11修改摄像头前后置方法,触觉智能RK3568开发板演示

    本文介绍在Android11系统下,修改摄像头前后置属性的方法。使用触觉智能EVB3568鸿蒙开发板演示,搭载瑞芯微RK3568,四核A55处理器,主频2.0Ghz,1T算力NPU;支持OpenHarmony5.0及LinuxAndr
    的头像 发表于 11-28 15:25 71次阅读
    <b class='flag-5'>Android</b>11修改摄像头前后置方法,触觉智能RK3568开发板演示

    飞凌嵌入式RK3576核心板已适配Android 14系统

    FET3576-C核心板此前已提供了Linux 6.1.57系统,为了满足更多客户的需求,飞凌嵌入式近日又为其成功适配了Android 14系统——硬件性能卓越的核心板与Android 14的深度组合,将为用户带来更加流畅、开放
    的头像 发表于 11-14 10:59 713次阅读
    飞凌嵌入式RK3576核心板已适配<b class='flag-5'>Android</b> 14系统

    RK3588 威廉希尔官方网站 分享 | 在Android系统中使用NPU实现Yolov5分类检测

    基于Android系统使用NPU,基于Linux使用NPU已经多次与大家分享过就不在赘述。 在 Android平台上,可以通过两种方式调用RKNN API:直接链接librknnrt.so或链接基于
    发表于 10-24 10:13

    如何为单节Impedance Track(TM)器件生成黄金映像

    电子发烧友网站提供《如何为单节Impedance Track(TM)器件生成黄金映像.pdf》资料免费下载
    发表于 10-17 08:32 0次下载
    如何为单节Impedance Track(TM)器件生成黄金<b class='flag-5'>映像</b>

    如何在android i2c控制tas5548 ?

    我想在 android i2c控制 tas5548 因为以前没有做过驱动编程 所以想要一个现成驱动源码可供学习,哪怕只能实现控制声音大小. 硬件平台是rk3288 安卓系统是 android 4.4.2 / linux 内核
    发表于 09-05 07:30

    小白也会的,在linux上跑android应用的方案

    介绍一个可以在linux上跑安卓应用的linux桌面——OpenFDE
    的头像 发表于 08-23 11:14 650次阅读
    小白也会的,在<b class='flag-5'>linux</b>上跑<b class='flag-5'>android</b>应用的方案

    请问MODUS支持LINUX、FREERTOS、UCOS、Mbed、Android所有操作系统吗?

    请问 MODUS 支持 LINUX、FREERTOS、UCOS、Mbed、Android 所有操作系统吗?
    发表于 07-23 06:06

    Android案例分享,基于瑞芯微RK3568国产平台!

    开发环境说明Windows开发环境:Windows764bit、Windows1064bit虚拟机:VMware15.5.5AndroidSDK编译环境
    的头像 发表于 06-20 08:05 956次阅读
    <b class='flag-5'>Android</b>案例分享,基于瑞芯微RK3568国产平台!

    Purple Pi OH又开外挂!带你搭建编译环境及编译Android 11固件

    01介绍今天的文章主题是分享与探讨关于PurplePiOH开发板Android开发之搭建编译环境及编译Android固件。如果你是刚开始接触嵌入式Linux开发,也许你会非常疑惑?为什么同样是ARM
    的头像 发表于 05-22 08:32 1180次阅读
    Purple Pi OH又开外挂!带你搭建编译环境及编译<b class='flag-5'>Android</b> 11固件

    广和通5G智能模组SC171支持AndroidLinux和Windows系统

    在2024年世界移动通信大会期间,广和通带来了令人振奋的消息:其5G智能模组SC171不仅支持Android操作系统,还兼容Linux和Windows系统。这一跨平台的兼容性为智能终端客户提供了更大的灵活性,使他们能够更快速地迭代产品,并拓宽智能化应用的覆盖范围。
    的头像 发表于 02-29 10:11 976次阅读

    广和通5G智能模组SC171支持AndroidLinux和Windows系统,拓宽智能物联网应用

    世界移动通信大会2024期间,广和通宣布:5G智能模组SC171除支持Android操作系统外,还兼容Linux和Windows系统,帮助更多智能终端客户快速迭代产品,拓宽智能化应用覆盖范围。
    的头像 发表于 02-28 19:37 462次阅读
    广和通5G智能模组SC171支持<b class='flag-5'>Android</b>、<b class='flag-5'>Linux</b>和Windows系统,拓宽智能物联网应用

    广和通5G智能模组SC171支持AndroidLinux和Windows系统

    世界移动通信大会2024期间,广和通宣布:5G智能模组SC171除支持Android操作系统外,还兼容Linux和Windows系统,帮助更多智能终端客户快速迭代产品,拓宽智能化应用覆盖范围。
    的头像 发表于 02-28 17:39 538次阅读