如果您熟悉Windows 11,那么您几乎肯定听说过Android 的 Windows 子系统。微软在Windows Subsystem for Linux的基础上构建了 Android 兼容层,该子系统基于公司的 Hyper-V 虚拟化平台。Google 在 Chrome OS 中设计 Linux 应用程序功能时采用了类似的方法,但他们依赖 Linux 内核的基于内核的虚拟机 (KVM) 作为管理程序。由于 Android 是建立在 Linux 内核之上的,因此可能会出现一个问题:在任何 Android 设备上使用 KVM 来运行具有另一个操作系统的虚拟机在技术上是否可行?好吧,如果你有一台 Google Pixel 6/6 Pro并且你愿意刷Android 13的第一个 Developer Preview版本,您当然可以实现这一壮举。
在用于Tensor 平台的 Android 13 引导加载程序和固件中,谷歌添加了向内核公开Exception Level 2 管理程序权限级别的功能,以实现其受保护的 KVM 功能 (pKVM)。虽然 pKVM 是可选的并且意味着在每个 VM 的基础上启用,但人们可以轻松地在未受保护的 VM 上利用完整的 KVM 功能。这就是为什么开发人员可以引导多个 Linux 发行版并几乎以本机速度运行它们的原因。我们知道 Google 计划在Android 13 上发布 pKVM,尽管这只是 Android 下一个主要版本的第一个 Preview 版本,但当前的实现看起来相当稳定。
请记住,在此阶段,Android 13 上的直接 KVM 访问需要root 访问权限。话虽如此,通过编写 VM 管理应用程序并请求特殊权限以在MicroDroid VM中运行本机服务,可以实现非 root 用户。存在许多这样的虚拟化监视器,例如 Google 自己的crosvm、QEMU或Firecracker,因此它们的 Android 端口应该可以填补空白。想象一下,由于 Android 的原生虚拟化支持,在您的 Android 智能手机上运行 Windows 11而不会弄乱底层分区。