安卓上 KVM 虚拟机运行 Linux/Windows on ARM在
上一篇博客创作的过程中, 我意外发现我目前的主力机
Redmi Note 10 Pro 5G (chopin) 居然有 KVM 支持.
于是决定不再纸上谈兵, 开始了实战之旅, 尝试在我的手机上跑跑 KVM 虚拟机(我的手机又遭殃了).
本篇博客可能较长, 应该会包含以下内容:
目前安卓手机上 KVM 的现况
ARM SoC 启动流程以及特权等级
我是如何为我的 chopin 移植 OSS 内核并运行最新类原生安卓的
chopin 上实际使用 Qemu 启动 Linux/WoA
移动设备上的 KVMPixel 6 及以上Pixel 6 全系 (包括 Pixel 6, Pixel 6a, Pixel 6Pro) 及以上的 Pixel 有谷歌官方提供的 KVM 支持, 有篇文章给出了较为详细的介绍:
https://lwn.net/Articles/836693/开始我看到这个消息还是挺激动的, 毕竟也算是第一个官方支持的 KVM, 还是亲儿子系列, 对其他厂商多少有些促进作用, 难不成将来谷歌还想推出 ASL (指 Android Subsystem for Linux)(x) 的玩法?
后来仔细一看, 发现 Pixel 默认支持的是 “protected” KVM, 与常见的 nVHE (native Virtualization Host Extension) 不同, “protected” 虚拟机意味着虚拟机内部的状态受到保护, 连 Host 都无法修改. 虽说有个
内核参数可以关闭 protected KVM 切换到 nVHE, 但这显然需要 OEM 解锁(同时破坏 hardware attestation).
嗅觉敏锐的你肯定已经发现了: Pixel 系列上的 pKVM 支持, 不过是谷歌作为世界上最大的广告公司, 打着”保护设备安全”的幌子, 保护 DRM 的又一邪恶计划.
目前唯一的好消息大概是, 谷歌目前还没有加入 pKVM 支持后的进一步动作, 但 KVM 支持已经实际存在, 手头上有 Pixel 系列的可以尝试使用 KVM 运行 Linux / Windows on Arm, 并且网上已有一些成功的案例供参考(如
Limbo Tensor).
Mediatek 天玑 1100/1200 等 SoC非常幸运的, 我发现我的主力机 chopin 使用的 SoC 是天玑 1100, 天玑 1100 附近的一些 SoC (已知的包括天玑 700/720/800u/810/1100/1200) 是有 KVM 支持的.
要解释这些 SoC 为什么有 KVM 支持, 其实要从为什么大部分高通/联发科设备
没有 KVM 支持说起…
#kvm #android #虚拟机
https://blog.lyc8503.net/post/android-kvm-on-mediatek/