郑丽媛出品
CSDN(ID:CSDNnews)
还记得在今年年初盘点“Bug连连”的Android1时,XDADevelopers的前主编MishaalRahman曾预言:“Android1的Bug修复对谷歌而言已压力不小,由此可能导致下一版本的开发周期遭到缩减,从而引发恶性循环。”
结果不到一个月,MishaalRahman就被“打脸”了:月10日,谷歌正式发布了Android13首个开发者预览版。
不可否认的是,在感受过“Android历史上最大设计变更”的Android1后,首个Android13预览版似乎处在一种“珠玉在前,瓦石难当”的尴尬处境:在看过谷歌的介绍后,许多人吐槽Android13“平淡无奇”、“鸡肋平庸”。
Android和Web开发人员
kdrag0n发现了隐藏在Android13预览版中的闪光点:谷歌Pixel6等设备在安装Android13预览版后,可实现完全虚拟化!这意味着,现在我们可以在Pixel6或其他基于Tensor处理器的设备上,以接近原生的速度运行几乎任意操作系统,包括Windows11、Ubuntu或ArchLinuxArm等Linux发行版。
将KVM引入Android早在个月之前,MishaalRahman就曾“谷歌将如何在Android13中使用虚拟化”这一话题进行过分析,他坚定认为:“谷歌多年碎片化战争的下一个战场是虚拟化。”
说起Android的虚拟化,Android系统团队的WillDeacon将之称为“碎片化的狂野西部”。因为不论虚拟机是否存在于设备上,它们的作用通常都不是用来运行其他操作系统,而是用于试图增强内核安全或在Android操作系统之外运行杂项代码(例如DRM、密码学和其他闭源二进制文件的第三方代码)。
但在谷歌看来,“在Android操作系统之外运行杂项代码”这一点存在重大隐患:
从上面这张ARMv8/v9异常模型中可以看出,虚拟机程序运行在EL层,而在ARM命名法中,数字越大,特权级别越高,即EL比行在EL0、EL1的代码权限更高。这也就意味着,许多闭源二进制文件的第三方代码的运行权限,比操作系统和内核还高。这显然是个安全隐患,因为在较高EL上运行的代码可访问低级别的所有寄存器。
为解决这一安全问题,谷歌一直在寻求一个通用的虚拟化解决方案,以实现解除第三方代码的特权,并将该代码与Android和其他第三方程序隔离开来。关于这点,KVM是个不错的选择。
KVM,全名Kernel-basedVirtualMachine,是一个开源的系统虚拟化模块,自Linux.6.0之后,便广泛集成在各个主流Linux发行版中,主要使用Linux自身的调度器进行管理。而Android同样也基于Linux内核构建,所以谷歌自然而然会选择将KVM部署为通用虚拟机管理程序。但谷歌并非照搬全收,它实际上是在扩展具有额外安全功能的KVM,即pKVM:受保护的KVM。
当时,MishaalRahman就已预测了Android13可能出现的变化:“目前,市场上没有任何Android设备配备虚拟化模块,包括谷歌自己的Pixel6也没有,但这将随着即将发布的Android13版本而改变。”他补充道,据他了解,谷歌有计划在Android13中引入pKVM和虚拟机框架的第一个版本。
MishaalRahman预测成功这次,MishaalRahman的预测成功了:通过加入全新虚拟化框架的Android13预览版,
kdrag0n完成了在Pixel6中运行Windows11及部分Linux发行版的尝试。kdrag0n表示:“在Pixel6+Android13DP1上,拥有KVM管理程序(接近本机性能)的成熟虚拟机。”Ta还分享道,目前在设备上可获得完整的EL,而“pKVM”是可选项,可在每个VM的基础上启用,但对于未受保护的VM,似乎可使用完整的KVM功能。为证明其运行成功,
kdrag0n在推特上发布了一则各种Linux发行版作为VM在Pixel6上启动的视频,其中包括Ubuntu1.10、ArchLinuxArm、VoidLinux和AlpineLinux,甚至还有一段在Arch上为arm64编译Linux5.17-rc3allnoconfig的录屏。此后,
kdrag0n又通过Android13虚拟化,让Pixel6得以运行Windows11并对此进行了优化:“稍微提高了性能,WindowsVM现在真的可以使用了,尽管不支持硬件GPU加速,但CPU、I/O和内存压力已缓和许多。”?
不仅如此,
kdrag0n还成功通过Pixel6的Windows虚拟机,连接到电脑上(为进行键盘输入),十分顺畅地玩起了年的老游戏《毁灭战士》。但
kdrag0n也补充道,这是WindowsonARM,而非x86,并且不支持嵌套虚拟化,所以也不支持WSA。尽管这远非完美的体验,也不如本地安装操作系统那样流畅,但能够良好运行已然不易。相信等到Android13正式版支持pKVM时,其虚拟机体验将再度完善,届时各类操作系统在Android手机上的表现也值得期待。
参考链接: