欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Android13“鸡肋”?可它跑起了Windows11、Linux发行版

时间:2023-05-22

还记得在今年年初盘点“Bug 连连”的 Android 12 时,XDA Developers 的前主编 Mishaal Rahman 曾预言:“Android 12 的 Bug 修复对谷歌而言已压力不小,由此可能导致下一版本的开发周期遭到缩减,从而引发恶性循环。”

结果不到一个月,Mishaal Rahman 就被“打脸”了:上周,谷歌正式发布了 Android 13 首个开发者预览版。

不可否认的是,在感受过“Android 历史上最大设计变更”的 Android 12 后,首个 Android 13 预览版似乎处在一种“珠玉在前,瓦石难当”的尴尬处境:在看过谷歌的介绍后,许多人吐槽 Android 13 “平淡无奇”、“鸡肋平庸”。

但就在昨天,Android 和 Web 开发人员 @kdrag0n 发现了隐藏在 Android 13 预览版中的闪光点:谷歌 Pixel 6 等设备在安装 Android 13 预览版后,可实现完全虚拟化!

这意味着,现在我们可以在 Pixel 6 或其他基于 Tensor 处理器的设备上,以接近原生的速度运行几乎任意操作系统,包括 Windows 11、Ubuntu 或 Arch Linux Arm 等 Linux 发行版。

一、将 KVM 引入 Android

早在 2 个月之前,Mishaal Rahman 就曾“谷歌将如何在 Android 13 中使用虚拟化”这一话题进行过分析,他坚定认为:“谷歌多年碎片化战争的下一个战场是虚拟化。”

说起 Android 的虚拟化,Android 系统团队的 Will Deacon 将之称为“碎片化的狂野西部”。因为不论虚拟机是否存在于设备上,它们的作用通常都不是用来运行其他操作系统,而是用于试图增强内核安全或在 Android 操作系统之外运行杂项代码(例如 DRM、密码学和其他闭源二进制文件的第三方代码)。

但在谷歌看来,“在 Android 操作系统之外运行杂项代码”这一点存在重大隐患:

从上面这张 ARMv8/v9 异常模型中可以看出,虚拟机程序运行在 EL2 层,而在 ARM 命名法中,数字越大,特权级别越高,即 EL2 比行在 EL0、EL1 的代码权限更高。这也就意味着,许多闭源二进制文件的第三方代码的运行权限,比操作系统和内核还高。这显然是个安全隐患,因为在较高 EL 上运行的代码可访问低级别的所有寄存器。

为解决这一安全问题,谷歌一直在寻求一个通用的虚拟化解决方案,以实现解除第三方代码的特权,并将该代码与 Android 和其他第三方程序隔离开来。关于这点,KVM 是个不错的选择。

KVM,全名 Kernel-based Virtual Machine,是一个开源的系统虚拟化模块,自 Linux 2.6.20 之后,便广泛集成在各个主流 Linux 发行版中,主要使用 Linux 自身的调度器进行管理。而 Android 同样也基于 Linux 内核构建,所以谷歌自然而然会选择将 KVM 部署为通用虚拟机管理程序。但谷歌并非照搬全收,它实际上是在扩展具有额外安全功能的 KVM,即 pKVM:受保护的 KVM。

当时,Mishaal Rahman 就已预测了 Android 13 可能出现的变化:“目前,市场上没有任何 Android 设备配备虚拟化模块,包括谷歌自己的 Pixel 6 也没有,但这将随着即将发布的 Android 13 版本而改变。”他补充道,据他了解,谷歌有计划在 Android 13 中引入 pKVM 和虚拟机框架的第一个版本。

二、Mishaal Rahman 的预测成功

这次,Mishaal Rahman 的预测成功了:通过加入全新虚拟化框架的 Android 13 预览版,@kdrag0n 完成了在 Pixel 6 中运行 Windows 11 及部分 Linux 发行版的尝试。

@kdrag0n 表示:“在 Pixel 6 + Android 13 DP1 上,拥有 KVM 管理程序(接近本机性能)的成熟虚拟机。”Ta 还分享道,目前在设备上可获得完整的 EL2,而“pKVM”是可选项,可在每个 VM 的基础上启用,但对于未受保护的 VM,似乎可使用完整的 KVM 功能。


为证明其运行成功,@kdrag0n 在推特上发布了一则各种 Linux 发行版作为 VM 在 Pixel 6 上启动的视频,其中包括 Ubuntu 21.10、Arch Linux Arm、Void Linux 和 Alpine Linux,甚至还有一段在 Arch 上为 arm64 编译 Linux 5.17-rc3 allnoconfig 的录屏。

此后,@kdrag0n 又通过 Android 13 虚拟化,让 Pixel 6 得以运行 Windows 11 并进行了优化:“稍微提高了性能,Windows VM 现在真的可以使用了,尽管不支持硬件 GPU 加速,但 CPU、I/O 和内存压力已缓和许多。”

不仅如此,@kdrag0n 还成功通过 Pixel 6 的 Windows 虚拟机,连接到电脑上(为进行键盘输入),十分顺畅地玩起了 1993 年的老游戏《毁灭战士》。


但 @kdrag0n 也补充道,这是 Windows on ARM,而非 x86,并且不支持嵌套虚拟化,所以也不支持 WSA。尽管这远非完美的体验,也不如本地安装操作系统那样流畅,但能够良好运行已然不易。

相信等到 Android 13 正式版支持 pKVM 时,其虚拟机体验将再度完善,届时各类操作系统在 Android 手机上的表现也值得期待。

参考链接:

https://blog.esper.io/android-dessert-bites-5-virtualization-in-android-13-351789/

https://www.cnx-software.com/2022/02/14/android-13-virtualization-lets-pixel-6-run-windows-11-linux-distributions/

https://twitter.com/kdrag0n/status/1492754683445669893

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。