WSABuilds 如何用 GitHub Actions 一次跑通 WSA 构建:完整指南
【免费下载链接】WSABuildsRun Windows Subsystem For Android on your Windows 10 and Windows 11 PC using prebuilt binaries with Google Play Store (MindTheGapps) and/or Magisk or KernelSU (root solutions) built in.项目地址: https://gitcode.com/GitHub_Trending/ws/WSABuilds
想在 Windows 10/11 上跑 Android 应用,WSA 是常见路线,但原版既没有 GApps 也没有 Root。WSABuilds 项目用 GitHub Actions 做持续集成与自动化测试,把 WSA 构建变成"填一张参数表,剩下的交给构建运行器":环境准备、组件下载、镜像处理、发布全部自动执行,版本检查也串在同一条流水线里。麻烦在于组合爆炸:两种 CPU 架构 × 多种 Root 方案 × GApps 开关 × 十几种设备型号 × 两个 Windows 版本,手工打包要重复几十遍还容易出错。WSABuilds 的做法是把整套打包过程写进 CI 流水线,你只负责勾选,构建运行器负责执行。下面带你把这条流水线一步步过一遍。
搭好 Ubuntu 构建环境并先做参数校验 🔧
构建任务跑在 Ubuntu 运行器上,开头几步都在搭环境:拉取代码后,actions/setup-python装好 Python 3,并开启 pip 缓存,重复运行时依赖不用重装;接着创建虚拟环境、按 requirements.txt 装好 Python 依赖,再用缓存动作安装 e2fsprogs、attr、unzip、qemu-utils 这些系统工具,它们是后续处理磁盘镜像的基础。
先别急着跑构建,看一眼校验步骤:工作流开头就拦截"Windows 10 + arm64"的组合并直接退出,因为 Win10 兼容性补丁不支持这个架构。输入校验放在最前面,比让构建跑到一半才失败要便宜得多。
下载组件并处理镜像:从 WSA 原包到可安装产物 📦
环境就绪后,真正的重活是一次 MagiskOnWSA/scripts/build.sh 调用。这个脚本把全程管起来:创建临时工作目录、用 trap 注册清理逻辑,然后按你选定的渠道(零售版、Release Preview、Insider Slow/Fast)下载 WSA 原包,再按参数拉取 Magisk(stable、beta、canary 等渠道)、KernelSU 或 MindTheGapps,解包后写进系统镜像,最后按 zip 或 7z 压缩输出。
产物是一组 vhdx 磁盘镜像,Windows 侧的收尾比较讲究。Ubuntu 任务先把产物存进跨平台缓存,Windows 任务接过来:x64 跑 MakePri.ps1 合并语言与密度资源,arm64 则复制 makepri.exe 完成同样的事;接着 diskpart 依次打开 system、product、system_ext、vendor 四张盘做 COMPACT 压缩,把空间省下来。目标若是 Windows 10,还要改写 AppxManifest.xml 并替换 winhttp.dll 等 DLL,完成兼容处理,最后 7z 打包并生成 sha256 校验文件。
配置即代码:填一张参数表得到专属安装包 🎛️
上面这些你都不必碰代码。buildtester.yml 暴露了一个名为 Custom Build (for testing purpose) 的手动触发入口,打开就是一张表单,常用选项如下:
| 参数 | 可选值 | 说明 |
|---|---|---|
| Windows 版本 | Windows 10 / Windows 11 | 10 需要额外的兼容补丁 |
| 架构 | x64 / arm64 | arm64 不可与 Windows 10 组合 |
| 发布渠道 | Retail / Release Preview / Insider Slow / Insider Fast / Insider Private | 决定下载哪个 WSA 版本 |
| Root 方案 | Non-root / KernelSU / Magisk Stable / Beta / Canary / Debug / Alpha / Delta | 八种可选 |
| GApps | MindTheGapps v13.0 / No GApps | 是否装 Google 服务 |
| 设备型号 | WSA Default 到 Pixel 4a、Pixel Fold 等 14 项 | 以代号写入系统 |
| 压缩格式 | .7z / .zip | 7z 体积更小 |
| Amazon Appstore | 移除 / 保留 | 默认移除 |
选完之后,工作流把你的选择翻译成命令行参数——"Pixel 5" 变成 redfin、"Magisk Stable" 变成 stable——然后执行:
./scripts/build.sh --arch x64 --release-type retail \ --root-sol magisk --magisk-ver stable \ --gapps-brand MindTheGapps --custom-model redfin \ --compress-format 7z --remove-amazon实际工作流里这是一整行,这里拆开只为方便阅读。产物会上传为 artifact,你在运行页面直接下载安装包,这就是"填表 → 出包"的完整体验。
更新与发布的闭环:从版本检查一路到 Release 🏷️
WSA 一更新,整套包就得重建。update.yml 就是这个闭环。check 任务先依次运行 MagiskOnWSA/Update Check/ 里的四个脚本:MagiskStableUpdateCheck.py、MagiskCanaryUpdateCheck.py、KernelSUUpdateCheck.py、MTGUpdateCheck.py,逐个抓回最新版本号与更新说明,最后自动提交*.appversion文件。
紧接着 update-downloadlinks 任务跑 update-downloadlinks.py,把 README 里的下载链接表替换成新版本的链接;check-and-create-tag 任务先确认三个版本标签都不存在,再把日期、组件版本填进发布说明模板,然后一步完成打标签和建 Release:
- name: Create Tag and Release for Windows 11 x64 release uses: softprops/action-gh-release@v3 with: tag_name: ${{ env.WIN11X64_TAG }} body_path: ${{github.workspace}}/Windows11x64.md name: WSABuilds LTS ${{ inputs.wsa_message }} for Windows 11 x64标签和 Release 页面一步到位。随后几十个形如 build_x64_magisk_gapps_redfin 的构建任务并行起跑,每个都是这样调用可复用工作流的:
uses: ./.github/workflows/buildarm64.yml with: arch: arm64 root: magisk gapps: --install-gapps gappsver: MindTheGapps devicemodel: redfin compressformat: zipuses把整个构建流程变成一次函数调用,with 块就是参数列表,三十多个组合因此几乎零重复地并行建完。
排障:构建跑红时的四步定位法 🛠️
- 输入校验就失败:多半是参数组合问题,最常见就是 Windows 10 + arm64,工作流会直接拒绝。
- 组件下载超时或报错:看 build.sh 打印的日志;脚本对下载目录有 CLEAN_DOWNLOAD 清理逻辑,确认网络后直接重跑通常就好。
- 镜像处理或合并阶段挂掉:检查运行器磁盘空间;arm64 确认 makepri.exe 复制成功;Win10 分支确认 DLL 替换下载完成。
- 仍定位不到:挑一次同架构的成功运行,逐项对比 inputs 与各步骤输出,差异点通常就是原因。
想在本机复现,先git clone https://gitcode.com/GitHub_Trending/ws/WSABuilds,MagiskOnWSA/scripts/ 里的 run.sh 会弹出交互式选项界面,选完直接调 build.sh,等于在你电脑上跑一遍 buildtester.yml 那张参数表。
带走的 CI 设计思想:复用、缓存、并行、模块化
回头总结,这套流水线里值得搬走的就四条:
- 复用:把构建流程抽成参数化的可复用工作流,上层一行
uses加参数表即可,组合矩阵再大也不复制步骤。 - 缓存:pip 依赖缓存、apt 包缓存、Ubuntu 到 Windows 的跨系统产物交接,能少下载的都少下载。
- 并行:独立的构建组合各自成 job 同时跑,串行依赖只靠 needs 精确声明。
- 模块化:版本检查、链接更新、打标签、构建发布各是一个 job,用 outputs 串起来,哪一环失败就只重跑哪一环。
细节都摊在源码里:.github/workflows/ 下的工作流文件、核心脚本 MagiskOnWSA/scripts/build.sh、更新检查脚本与 Documentation/ 里的使用指南。读完一次完整的 WSA 更新流程,你对"检查 → 构建 → 打标签 → 发布"这套多架构 CI 节奏就有了手感。
【免费下载链接】WSABuildsRun Windows Subsystem For Android on your Windows 10 and Windows 11 PC using prebuilt binaries with Google Play Store (MindTheGapps) and/or Magisk or KernelSU (root solutions) built in.项目地址: https://gitcode.com/GitHub_Trending/ws/WSABuilds
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考