2021 年微软正式推出了 Windows 11 桌面操作系统,相比于旧版本,Windows 11 除了在系统界面上有着相当大的变化之外,更多的变化在于其加入了对 Android 子系统的支持,从而将移动端最大的生态系统融入其中。但微软对可以升级到 Windows 11 的设备硬件做出限制,这导致市面上绝大多数的可以支持 Windows 10 的设备无法升级到 Windows 11,也就无法体验到 Windows 11 带来的诸多新功能特性。
但经过一年时间的迭代,即便属于支持末期的 Windows 10,在这几次年度功能更新后也获得了 Windows 11 才有的新特性,比如通过 WSLg 已经可以让 Windows 10 可以运行图形化的 Linux 应用,作为 Windows 11 独占的 WSA 在 Windows 10 上运行自然也变得不再遥远。
相比直接使用虚拟机或者模拟器在 Windows 10 上运行 Android 应用,通过 WSA 运行 Android 应用显得效率更高:依赖 Windows 自身的虚拟化引擎,无需先启动虚拟机从而资源占用更低,对于 Android 应用的系统架构无要求,最重要的是可以完全窗口化运行从而可以和当前的 Windows 生态充分融合。而目前就有两种方法让 Windows 10 运行 WSA,适用于不同的系统场景,如果你有在 Windows 10 上运行 Android 应用需求不妨「按需索取」。
将 Windows 11 的 WSA 移植到 Windows 10:WSAPatch- 优点:基于 WSA 原生打造,兼容性最好。
- 缺点:仅支持 Windows 10 22H2 最新版,对系统版本有要求
WSAPatch 顾名思义就是让 Windows 10 也能运行 WSA 的补丁,通过一系列该项目中提供了两个补丁文件,我们可以让 Windows 10 也可以安装上 WSA。
首先我们需要将 Windows 10 更新至最新版本(Windows 10 22H2),对应的版本至少 Windows 10 10.0.19045.2311,如果不确定可以在终端或者 PowerShell 中输入winver 来查看 Windows 版本。
同时,Windows 10 版本至少为专业版,原因是后面我们需要安装 Hyper-V 虚拟化平台,而这也是 WSL 以及 WSA 的基础。如果你 Windows 10 使用的是家庭版,那么可能就无法使用这个办法来体验 WSA 了。
以上的准备工作就绪之后,首先依旧是在 BIOS 中开启虚拟化支持,并打开Windows 10 中的相关功能:
打开「控制面板」-「程序和功能」-「启用或关闭 Windows 功能」,在其中找到并开启 Hyper-V 、「虚拟机平台」、「Windows 虚拟机监控程序平台」以及「适用于Linux 的 Windows 子系统」。勾选安装后重启设备,最基础的工作已经准备完毕了。
紧接着,我们需要在 Windows 10 中开启相关开发者权限,在「设置」-「更新和安全」中,找到「开发者选项」,打开「开发人员模式」,同时在 Powershell 项目中勾选「更改执行策略,以允许本地 PowerShell 脚本在未签名的情况下运行。远程脚本需要签名」并点击「应用」。
之后我们需要下载 WSA,为了方便后面的使用,我们可以自己定制 WSA,比如通过 MagiskOnWSA 项目将 Google 服务以及 Magisk 植入到 WSA。而生成对应的安装包则可以有下面两种方式:第一种方式即不依赖 Github Actions 服务的 MagiskOnWSALocal,这需要在本地安装 WSL 并安装 Ubuntu 来运行,具体可以参见:
- 一日一技 | WSA 定制安装,找回你需要的 Google 服务和 Magisk
另一个办法是相对比较懒人的做法,依旧是通过依赖 GitHub Actions 服务的 Magisk on WSA 的 fork 项目,将其 fork 到自己 Github 账户下,在 fork 项目中点击 Action 后,点击 Build WSA -- Run workflow,在配置菜单中选择想要的版本,这里 Build arch 选择X64,WSA release Type 选择insider slow,Magisk version 这里选择 stable。