虚拟机成为 Android 的核心结构
安卓虚拟化框架(AVF)将出现在即将推出的部分安卓 14 设备上。AVF 于 Android 13 首次在 Pixel 设备上推出,为开发特权应用程序的平台开发人员提供了新的功能。
有了 AVF,我们将更广泛地支持安卓的虚拟化。虚拟化被广泛应用和部署,以隔离工作负载和操作系统。它可以有效地扩展基础设施、测试环境、兼容传统软件、创建虚拟桌面等。
有了 AVF,虚拟机就成了安卓操作系统的核心结构,类似于安卓利用 Linux 进程的方式。开发人员可以灵活选择虚拟机的隔离级别:
-
单向隔离:安卓(主机)可以控制和检查虚拟机的内容。这些虚拟机最常用于沙箱和隔离,使多个操作系统能在同一台机器/设备上运行,由一个操作系统主机(Android)控制和监视所有其他操作系统。
-
双向隔离(隔离虚拟机):Android(主机)和虚拟机(客户机)完全相互隔离。处理或存储敏感数据的开发人员可能会受益于隔离虚拟机。隔离虚拟机具有双向屏障,主机(Android)和虚拟机都无法访问对方,除非通过明确商定的通信渠道。这有两个主要特性:
主机(Android)无法访问虚拟机内的工作负载和数据(保密)。
即使 Android 一直到(包括)主机内核都受到攻击,隔离的虚拟机也不会受到攻击。
AVF 的意义
隔离
有了隔离虚拟机,开发人员现在有了 Trustzone 之外的另一种选择,可用于需要在不升级权限的情况下与 Android 隔离的用例。
便携性
虚拟机及其内部运行的应用程序的可移植性远高于可信 applets。例如,带有 Linux 应用程序有效载荷的基于 Linux 的虚拟机可以在所有支持 AVF 的设备上运行。这意味着开发人员只需构建一次应用程序,就可以将其部署到任何地方。与移植到 Trustzone 操作系统相比,虚拟机还能无缝、轻松地移植基于 Linux 的现有应用程序。
性能
AVF 设计轻巧、高效、灵活。虚拟机可以:
-
根据开发者的需要,小到一个 C 语言程序,大到整个操作系统;
-
做到持续性或间歇性;
-
根据整个系统的健康状况增加或缩小内存;
-
遵循 Android 的调度程序提示和低内存警告。
可扩展性
AVF 在设计时考虑到了开发人员的需求。虚拟机可以定制,以满足特定用例的需求。只要符合 AVF 规定的某些启动和通信协议,开发人员就可以部署任何虚拟机有效载荷。
除了将虚拟化的强大功能引入安卓系统,实现虚拟桌面、沙箱、AVF 使用隔离虚拟机的所有可能性外,还能使以下常见的安卓使用场景(以及更多使用场景)受益:
-
生物识别:通过在隔离的虚拟机中部署生物识别可信 applets,开发人员将获得隔离保证、生物识别算法所需的更多计算能力、与 Trustzone 操作系统无关的轻松更新能力以及更简化的部署。
-
DRM:Widevine 可在安卓设备上实现流式 DRM。一旦部署在隔离的虚拟机中,无论安卓设备上部署的各种Trustzone操作系统的细节如何,Widevine的更新在这些设备上都会变得更加容易。
AVF 使用
AVF 提供了简单的应用程序接口,用于查询设备创建虚拟机的能力及其支持的类型,以及从创建虚拟机的应用程序和服务与这些虚拟机建立安全的通信渠道。
例如,检查 AVF API 的可用性,以及隔离虚拟机和常规虚拟机的可用性:
VirtualMachineManager manager = (VirtualMachineManager)context. getSystemService(VirtualMachineManager.class); if (manager == null) { // AVF not supported } else { int capabilities = manager.getCapabilities(); if ((capabilities & CAPABILITY_PROTECTED_VM) != 0) { // protected VM is supported } if ((capabilities & CAPABILITY_NON_PROTECTED_VM) != 0) { // non protected VM is supported } }
有关 AVF 及其 API 的其他文档,请点击此处查看。
AVF 组件
AVF 由框架 API、Hypervisor 和虚拟机管理器组成。Hypervisor 确保虚拟机(包括 Android)相互隔离,就像 Linux 内核对进程的隔离一样。不过,与 Linux 内核相比,AVF Hypervisor(pKVM)的代码量要小得多(约 50 倍)。
Hypervisor (pKVM)
Hypervisor 侧重于开源可用性、安全性、虚拟机的设备分配以及虚拟机之间的隔离安全。它的攻击面较小,符合较高的安全保证级别。受保护的 KVM Hypervisor(pKVM)完全支持 AVF API 和功能。
pKVM 构建在 Linux 中基于内核的虚拟机(KVM)这一行业标准之上。这意味着所有依赖基于 KVM 的虚拟机的现有操作系统和工作负载都能通过 pKVM 在安卓设备上无缝运行。
虚拟机管理器 (crosvm)
crosvm 是基于 Rust 的虚拟机管理器(VMM),是 Hypervisor 与 AVF 框架之间的桥梁。它负责创建、管理和销毁虚拟机。此外,它还提供了一个跨多个 Hypervisor 实现的抽象层。
隔离虚拟机
隔离的虚拟机对 Android 来说是不可见的,即在 Android 中运行的任何进程都无法检查、查看或篡改此类虚拟机的内容。这一保证由 Hypervisor 提供。
虚拟机
虚拟机与隔离的虚拟机相同,只是拥有正确权限的 Android 进程可以访问虚拟机。
Microdroid
Microdroid 是一个经过精简的 Android 操作系统软件包,可作为启动虚拟机(VM)的模板。它为开发人员在虚拟机中构建和运行工作负载提供了熟悉的环境。Microdroid 使用熟悉的 Android 工具和库,如 Bionic、Binder IPC 和 keystore 支持。
虚拟化服务
VirtualizationService 管理所有客户虚拟机(无论是否隔离)。它主要通过管理 crosvm 实例来实现。它还公开了 AIDL API,系统服务或特权应用程序可使用该 API 启动、监控和停止虚拟机。
RpcBinder
RpcBinder 是为 Android 界面定义语言(AIDL)开发的全新后端。RpcBinder 可使用现有的 binder 线协议与虚拟机进行通信。这意味着:
-
开发人员可以使用他们已经熟悉的语言和基础架构(AIDL)编写虚拟机接口。
-
只需继续使用现有的 AIDL 接口,即使绑定端点转移到虚拟机中也是如此。
Android 14 有哪些新功能?
安卓 14 不仅使 AVF 可以在更多设备上使用,还提供了一个新的工具包,使用户可以使用 AVF 及其组件构建更多内容:
-
用于 AVF 的安卓系统应用程序接口
特权应用程序现在可以使用虚拟机来执行需要隔离的关键工作负载;
-
Hypervisor DevEx 工具包
添加了跟踪功能、改进的可调试性和监控功能,以提供洞察力并协助平台开发人员在隔离虚拟机内进行开发;
-
Hypervisor 供应商模块
通过供应商模块扩展,我们的合作伙伴可以定制谷歌的 pKVM,以满足他们的特定需求,实现差异化;
-
改善系统健康
安卓 14 中,基于 microdroid 的虚拟机启动速度比安卓 13 快 2 倍,而内存使用量却只有安卓 13 的一半。
AVF 框架的其它部分可让 Android 服务和应用程序轻松使用虚拟化。例如,使用 AIDL 作为传输层抽象虚拟机之间的通信,管理虚拟机生命周期或虚拟机的创建方式。
原文链接:https://android-developers.googleblog.com/2023/12/virtual-machines-as-core-android-primitive.html
Posted by Sandeep Patil – Principal Software Engineer, and Irene Ang – Product Manager

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
OpenTiny Vue 3.12.0 发布:文档大优化!增加水印和二维码两个新组件🎈
你好,我是 Kagol。 非常高兴跟大家宣布,2023年11月30日,OpenTiny Vue 发布了 v3.12.0 🎉。 OpenTiny 每次大版本发布,都会给大家带来一些实用的新特性,10.24 我们发布了 v3.11.0 版本,增加了富文本、ColorPicker 等4个新组件,该版本共有23位贡献者参与。 🎊OpenTiny Vue 3.11.0 发布:增加富文本、ColorPicker等4个新组件,迎来了贡献者大爆发! 本次 3.12.0 版本主要有以下更新: 全面优化 54 个高频组件的 Demo / API 文档,让文档更加清晰易懂、符合预期 Watermark 水印组件 QrCode 二维码组件 本次版本共有21位贡献者参与开发,其中有8位是新贡献者,欢迎新朋友们👏 以下是新贡献者: @fanbingbing16made their first contribution in#686 @dyh333made their first contribution in#667 @betavsmade their first contribution in#719 @...
- 下一篇
郭炜:开源大侠是怎样炼成的
2023年6月1日,首个由国人主导的开源数据集成工具 Apache SeaTunnel 正式宣布从 Apache 软件基金会孵化器毕业成为顶级项目。历经 18 个月的孵化,这个项目终于瓜熟蒂落,社区贡献者200+,代码24.5万行,上千家企业使用,风光无限。令人难以想象,郭炜刚接手它时,仓库被封、贡献者四散的落魄样子。 大侠出手, SeaTunnel 浴火重生 SeaTunnel 原名 Waterdrop,于2017年由乐视创建,并于同年在 Github 上开源,是一个大数据集成处理平台。当时国内各种数据引擎风起云涌,却少有项目解决数据源之间的无缝集成和高速同步问题,因此 Waterdrop 在其中显得颇为亮眼。可惜这种亮眼却为它招来了横祸——开源项目 Waterdrop 的商标被抢注了,而且对方的法务还发送律师函给开源的发起者和 Github 。 由于开源项目的名称不属于【商标】,而国内的商标又是【申请在先】原则,谁先申请谁先得到,因此 Waterdrop 一下子百口莫辩,落了下风, Github 在收到律师函后,把 Github 上 Waterdrop 的整个仓库都封了,所有的代...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Red5直播服务器,属于Java语言的直播服务器
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19