痛点

以前一直只能使用 Windows 11 安装安卓子系统
最近我们发现 Windows 10 22H2 终于可以安装了
之前使用 Windows 11Android 子系统的时候
虽然我们可以直接使用巨硬默认的 Android 子系统
但是定制版的是包含 GAppsMagisk 服务哦~
所以还是我们自己编译的比较香把
原本我想借助 Lsposed 大佬部署在 Github Actions 的项目
在线编译我们自己的定制版 WSA 系统
哈哈哈哈 Github Action 在线编译被下架了,笑死了
所以我们现在继续借助Lsposed 大佬的精神续作 MagiskOnWSALocal 进行魔改吧

安装准备

查询系统版本

如果我们想在 Windows 10 上安装安卓子系统
我们需要满足下面的要求

系统版本 操作系统内部版本
≥22H2 ≥10.0.19045.2311

我们可以在 Powershell 中输入 winver 查看

打开 Windows Hyper-V 功能

然后我们再把 Windows 自带的虚拟机功能打开

控制面板 --> 程序和功能 --> 启用或关闭 Windows 功能

然后我们把虚拟机相关的功能都打开吧

然后等待安装完就重启系统吧

安装 WSL 版 Ubuntu

因为我之前一直使用着 WSL Kali
所以 WSL Ubuntu 也是我第一次安装
那就顺便记录一下吧

Terminal 直接拉取 Ubuntu 子系统

1
wsl.exe --install Ubuntu-22.04

设置 Ubuntu 子系统账号密码

直接设置就好了

升级 Ubuntu 子系统版本

1
2
sudo apt update
sudo apt full-upgrade

编译 MagiskOnWSALoal

克隆 MoWL 项目

1
git clone https://github.com/LSPosed/MagiskOnWSALocal

编译 MoWL 项目

我们切到 MoWL 项目目录
然后执行安装包定制脚本

1
2
cd MagiskOnWSALocal
scripts/run.sh

然后脚本会自动拉取依赖

Build arch

该选项支持 x64ARM64
请安装自己的 CPU 架构进行选择

WSA release type

该选项为 WSA 发布的通道
为求稳定建议选择 retail 版本即可

Magisk version

该选项为 Magisk 安装的版本
正常使用选择 stable 版本即可

Install Gapps

该选项看个人的需要和网络条件,不做建议

Which GApps ?

该选项按照官方推荐来吧
看来我的青春也有点过时了~

居然 OpenGAppsMindTHEGApps 后浪给淦了

Remove Amazon Appstore

该选项给我们机会干掉国内毫无意义的 Amazon Appstore
当然是毫不犹豫的 No

Root solution

该选项是选择 WSA 是否进行 Root
当然是选择 Magisk 啊~

  • 安卓不Root,不如丢下海

Compress output

打包输出,直接 Yes

Compress format

该选项是解压包格式
无脑选zip吧,兼容性强

编译 MoWL 完成

最后我们输入密码进行编译

导出定制安装包

我们打开 WSL Ubuntu 的目录拉取定制安装包

1
explorer.exe .

然后我们在.\MagiskOnWSA\output目录中可以找到压缩包

修改 WSA 文件配置

为了我们在 Windows 10 上能安装 Android 子系统
所以我们需要对部分文件进行魔改
我们把安装包解压之后

我们直接打开 AppxManifest.xml 对配置文件进行修改

TargetDeviceFamily

搜寻字段 TargetDeviceFamily

需要将其中的 MinVersion 中的 10.0.22000.120 修改为 10.0.19045.2311

  • 原文代码
1
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.22000.120" MaxVersionTested="10.0.22000.120" />
  • 修改后代码
1
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.19045.2311" MaxVersionTested="10.0.22000.120" />

customInstall

通过搜索字段 customInstall
我们定位到以下两段代码块

  • 原文代码
1
<rescap:Capability Name="customInstallActions"/>
1
2
3
4
5
6
7
8
9
<desktop6:Extension Category="windows.customInstall">
<desktop6:CustomInstall Folder="CustomInstall" desktop8:RunAsUser="true">
<desktop6:RepairActions>
<desktop6:RepairAction File="WsaSetup.exe" Name="Repair" Arguments="repair" />
</desktop6:RepairActions>
<desktop6:UninstallActions>
<desktop6:UninstallAction File="WsaSetup.exe" Name="Uninstall" Arguments="uninstall" />
</desktop6:UninstallActions>
</desktop6:CustomInstall>

然后我们分别对其进行注释
XML语言使用 <!-- -->作为注释符号

  • 注释后代码
1
<!-- <rescap:Capability Name="customInstallActions"/> -->
1
2
3
4
5
6
7
8
9
10
11
12
<!-- 
<desktop6:Extension Category="windows.customInstall">
<desktop6:CustomInstall Folder="CustomInstall" desktop8:RunAsUser="true">
<desktop6:RepairActions>
<desktop6:RepairAction File="WsaSetup.exe" Name="Repair" Arguments="repair" />
</desktop6:RepairActions>
<desktop6:UninstallActions>
<desktop6:UninstallAction File="WsaSetup.exe" Name="Uninstall" Arguments="uninstall" />
</desktop6:UninstallActions>
</desktop6:CustomInstall>
</desktop6:Extension>
-->

最后我们就把这两段代码修改完后

就可以Ctrl + S 保存文件进行下一步

添加 WSAPatch 补丁

我们最后还要添加两个补丁进行功能上的补全
我们可以直接下载 cinit大佬编译好的版本
有能力也可以自己进行编译

1
https://github.com/cinit/WSAPatch

我们把下载下来的补丁解压并放到 .\WSA\WsaClient 文件夹中去

安装 Android 子系统

使用管理员权限打开 Powershell 并执行下列指令

1
PowerShell.exe -ExecutionPolicy Bypass -File .\Install.ps1

默认打开就是 Google Play Store

然后我们就可以打开 WSA 管理界面

安装 WSA工具箱

因为 Mircosoft StoreWSATools 等关键词的管控
所以我们只能是使用 Winget 进行安装 WSA工具箱

1
https://apps.microsoft.com/store/detail/wsa%E5%B7%A5%E5%85%B7%E7%AE%B1/9PPSP2MKVTGT

我们可以知道 9PPSP2MKVTGT 就是该 UWP 的序列号
我们可以直接在 Windows Terminal 里进行 Winget 安装

1
2
winget search 9PPSP2MKVTGT
winget install 9PPSP2MKVTGT

安装完成之后我们打开 WSA开发人员模式

然后我们打开 WSA工具箱

参考 & 引用

https://sspai.com/post/77582
https://sspai.com/post/75351
https://github.com/LSPosed/MagiskOnWSALocal
https://github.com/cinit/WSAPatch