WSABuilds 图标消失/变白修复指南:通过 userdata.vhdx 备份与 Install.ps1 修改恢复 WSA 桌面图标
2026/9/13 21:07:39 网站建设 项目流程

WSABuilds 图标消失/变白修复指南:通过 userdata.vhdx 备份与 Install.ps1 修改恢复 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 Subsystem for Android(WSA)在更新或重启电脑后出现的应用图标消失或变为白色空白图标问题,给出基于 WSABuilds 预构建发行包(内置 Google Play Store 与 Magisk/KernelSU)的完整修复流程。读完本文,你将掌握通过备份/恢复userdata.vhdx用户数据磁盘、修改Install.ps1安装脚本中的Finish函数来修复图标缓存问题的可复现方案,并理解该问题在源码层面的成因。

问题现象与定位

在 WSABuilds 项目中安装的 WSA 出现以下现象时,即为本文要解决的图标问题:

  • 更新 WSA 之后,开始菜单或桌面上的 Android 应用图标消失;
  • 重启电脑之后,原本正常的图标变成白色空白图标(turned white)。

需要说明的是,这不是用户操作不当造成的,而是 WSA 自身的一个 bug(This looks like a bug in the WSA itself),原文档明确指出其性质,因此无需卸载重装所有 Android 应用,通过下述步骤即可恢复图标。

根因分析:安装脚本中的 Finish 函数

从源码层面看,该问题与 WSABuilds 安装脚本在安装完成后自动拉起应用的行为密切相关。在 MagiskOnWSA/installer/Install.ps1 中定义了Finish函数:

Function Finish { Clear-Host Start-Process "wsa://com.topjohnwu.magisk" Start-Process "wsa://com.android.vending" }

这段代码在Add-AppxPackage成功注册 WSA 包后立即被调用(见 Install.ps1 中If ($?) { Finish }的分支逻辑),其作用是在安装结束时自动启动Magiskwsa://com.topjohnwu.magisk)和Google Play Storewsa://com.android.vending)。

同样的函数也存在于按架构分发的安装脚本中,包括 installer/x64/Install.ps1 与 installer/arm64/Install.ps1,因此该问题不区分 x64 还是 arm64 构建。

修复思路的核心正是:重新安装时移除这两行自动启动逻辑,避免安装完成后立刻初始化 Android 子系统,从而让系统以干净状态重建图标缓存。

修复步骤详解

以下 6 步来自 MagiskOnWSA/docs/Fixes/MissingIcons.md 的完整流程,已结合仓库源码补充可操作细节。

第 1 步:备份 userdata.vhdx

userdata.vhdx是 WSA 的用户数据虚拟磁盘,其中包含 Android 应用及其数据、设置等内容(参见仓库的 Backup and Restore.md 对userdata.vhdx作用的说明)。其默认位置为:

%LOCALAPPDATA%\Packages\MicrosoftCorporationII.WindowsSubsystemForAndroid_8wekyb3d8bbwe\LocalCache\userdata.vhdx

请先将该文件复制到安全位置(如桌面或外部磁盘)留存备份,切勿在后续步骤中丢失它。

第 2 步:卸载 WSA

按照仓库的 Uninstallation.md 完成卸载,要点如下:

  1. 确保 Windows Subsystem for Android™ 未在运行;
  2. 通过 Windows 搜索或"添加或删除程序"找到Windows Subsystem for Android™ Settings并卸载;
  3. 删除之前解压并运行Run.bat的 WSA 文件夹;
  4. 检查%LOCALAPPDATA%\Packages\下是否仍存在MicrosoftCorporationII.WindowsSubsystemForAndroid_8wekyb3d8bbwe文件夹,若存在则一并删除(若提示无法删除,请先确认 WSA 已完全关闭)。

提示:你也可以参考 Uninstallation.md 中关于保留用户数据的说明,但本修复流程本身已经通过备份userdata.vhdx保留了数据,卸载阶段是否保留应用数据不影响最终结果。

第 3 步:移除 Install.ps1 中自动启动的两行

重新安装前,打开你解压出的 WSA 文件夹中的Install.ps1(由Run.bat调用的脚本,见 MagiskOnWSA/installer/Run.bat),删除Finish函数中自动启动 Magisk 与 Play Store 的两行:

function Finish { Clear-Host Start-Process "wsa://com.topjohnwu.magisk" Start-Process "wsa://com.android.vending" }

即删掉Start-Process "wsa://com.topjohnwu.magisk"Start-Process "wsa://com.android.vending"这两行,仅保留Clear-Host,保存文件。

不同构建变体的扩展说明:仓库的 Backup and Restore.md 明确指出,"需要删除的行因 WSA 构建类型而异"。如果你使用的是 Magisk Delta、Magisk Alpha 或 Amazon Appstore 版本的构建,Finish函数中的 URI 可能对应为:

构建类型Install.ps1 中对应的自动启动行
Android 设置Start-Process "wsa://com.android.settings"
官方 MagiskStart-Process "wsa://com.topjohnwu.magisk"
Magisk DeltaStart-Process "wsa://io.github.huskydg.magisk"
Magisk AlphaStart-Process "wsa://io.github.vvb2060.magisk"
Google Play StoreStart-Process "wsa://com.android.vending"
Amazon AppstoreStart-Process "wsa://com.amazon.venezia"

请根据你的构建类型删除对应行。需要说明的是,WSABuilds 默认构建的Finish函数(见 MagiskOnWSA/DLL/docs/README.md 中记录的 URI 清单)通常包含 Magisk 与 Play Store 两行,即本文第 3 步展示的默认形态。

第 4 步:重新安装 WSA

回到解压出的 WSA 文件夹,运行Run.bat(或直接运行Install.ps1)完成安装。脚本会以管理员权限重新注册 WSA 包(对应Add-AppxPackage -ForceApplicationShutdown -ForceUpdateFromAnyVersion -Register .\AppxManifest.xml的调用,见 Install.ps1)。由于已移除自动启动行,本次安装完成后WSA 不会自动拉起 Magisk 和 Play Store

第 5 步:恢复 userdata.vhdx

将第 1 步备份的userdata.vhdx复制回原路径:

%LOCALAPPDATA%\Packages\MicrosoftCorporationII.WindowsSubsystemForAndroid_8wekyb3d8bbwe\LocalCache\userdata.vhdx

如果你的安装流程中该目录尚不存在(比如全新注册的包尚未生成 LocalCache),可参照 Backup and Restore.md 的建议手动创建MicrosoftCorporationII.WindowsSubsystemForAndroid_8wekyb3d8bbwe\LocalCache\目录后再粘贴。

第 6 步:启动 WSA

完成数据恢复后,正常启动 WSA。此前消失或变白的应用图标应恢复为正常状态,且应用数据(已安装应用、设置等)均得到保留。

关键警告:恢复数据前禁止启动 WSA

警告:在恢复userdata.vhdx之前,切勿启动 WSA。

这是整个修复流程中最重要的一条红线(原文档以 Warning 形式强调)。原因在于:WSA 首次启动时会对userdata.vhdx进行初始化/挂载,如果在恢复备份前已经启动过 WSA,系统可能已经用全新的空数据磁盘覆盖或迁移了原有磁盘内容,导致第 1 步的备份失去意义,进而无法恢复原有图标与应用数据。因此请务必严格按照"先恢复文件、后启动 WSA"的顺序执行。

修复原理小结

从 Install.ps1 的执行链路看,整个流程可以这样理解:

  • 默认安装脚本在包注册成功后会立即通过Finish函数拉起 Magisk 与 Play Store,此时子系统可能尚未完成初始化,容易触发图标缓存异常(即 WSA 自身的 bug);
  • 通过"备份 → 卸载 → 移除自动启动行 → 重装 → 恢复数据 → 启动"的流程,实际上是对 WSA 做了一次干净的包级重注册,并以受控方式(不自动启动任何 Android 应用)完成首次初始化,从而重建图标索引;
  • userdata.vhdx的备份/恢复保证了重装过程中应用数据零丢失

该修复思路与仓库 Backup and Restore.md 中"删除自动启动行后再恢复 userdata"的做法完全一致,两者可以相互印证——如果你在备份恢复过程中遇到其他问题,可对照该文档的完整恢复说明操作。

预防与后续建议

  • 养成定期备份userdata.vhdx的习惯,它是 WSA 全部用户数据的载体(应用、数据、设置),详见 Backup and Restore.md;
  • 若你的构建中Finish函数包含其他 URI(如 Amazon Appstore),请一并移除后再执行恢复流程,具体对照上文表格;
  • 本修复针对的是 WSA 自身的图标 bug,不适用于网络、虚拟化等其它故障场景,遇到其他问题时请查阅仓库 Documentation/Fix Guides 下的对应修复文档。

【免费下载链接】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),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询