ChrisKim
Do not go gentle into that good night.
颢天

解包 Msix 强制安装限制系统版本的程序

自从微软发布 Windows 11 之后,就一直想把 Win 10 的用户赶去 Win 11,微软商店里很多程序都做了系统版本限制。有些限制 Win 10 的小版本还能装,但有些限制到了 Win 11 就非常恶心,实际上这些限制大都不是因为兼容性问题,而就是想 恶心一下 Win 10 钉子户 鼓励用户去升级 Win 11.

作为 Windows 10 LTSC 钉子户,当然不能接受这种事情,我就是讲究一个叛逆,我就要在 Win 10 上装这些软件。根据实际测试,大多数软件都能完美兼容 Win 10,因为 Win 11 目前也没有与 Win 10 拉开什么差距,我猜将来也不会有太大的兼容性问题。

下面以 Apple Music Windows 与 Windows Subsystem for Android 为例。

获取 Msix 离线安装包

首先进入微软商店网页:https://apps.microsoft.com/store/apps

在里面搜索你想安装的程序,点击进入到对应的页面,然后复制商店页面链接。

例如 Apple Muisc 的页面链接是:https://apps.microsoft.com/store/detail/apple-music-预览版/9PFHDD62MXS1

然后打开直链解析器,把刚才复制的商店链接粘贴到框内:https://store.rg-adguard.net/

https://assets.zouht.com/img/blog/3346-01.webp

然后在右边有一个选项框,这个是选版本的,一共有四种:

  • Retial – 零售正式版
  • RP (Release Preview) – 预览测试版
  • Slow (Insider Slow) – beta 测试版
  • Fast (Insider Fast) – dev 开发版

上面四种版本从上到下稳定性降低,根据自己需求选择版本。然后点击右侧按钮,就能解析出微软商店程序的安装包下载直链了。

在列表中选择对应的版本,有些程序分了版本例如 arm, x86, x64,一般选择 x64 下载。然后记得选择下载的是 .msixbundle 结尾的文件。另外这个页面会一同显示相关的依赖库,那些不用下载。

例如,Apple Music Windows 解析出来的列表中,选择红框内那个下载。

https://assets.zouht.com/img/blog/3346-02.webp

解包 Msix

使用压缩软件打开下载的 .msixbundle 文件,把里面的内容解压出来:

https://assets.zouht.com/img/blog/3346-03.webp

可以发现里面还有一个打包的 .msix 文件,再用压缩软件把它的内容解压出来:

https://assets.zouht.com/img/blog/3346-04.webp

此时就是程序的本体文件了,已经可以看到里面的 AppleMusic.exe 可执行文件了。不过此时不能直接双击打开,因为 msix 打包的程序并不是这么运行的。

修改程序包

编辑元数据

用文本编辑器打开解压出来文件夹中的 AppxManifest.xml 文件,找到 Dependencies 下的 TargetDeviceFamily:

<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.19045.0" MaxVersionTested="10.0.22621.0" />

将里面的 MinVersion 参数修改为当前的系统版本,如果不知道系统版本的话,按 Win + R 然后输入 winver 回车就能查看了。我使用的 Windows 10 LTSC 2021 的版本号为 19044.3324,那么就将上面这一条改成:

<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.19044.3324" MaxVersionTested="10.0.22621.0" />

对于有些程序,可能还需要删除 customInstall 相关的内容。例如对于 Windows Subsystem for Android,还需要删除以下条目:

<rescap:Capability Name="customInstallActions"/>
<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>

修改好后记得保存。

删除签名验证

对于有些带签名的程序,可能会阻止解包后安装。因此需要删除下面这几个文件:

  • AppxMetadata 目录
  • [Content_Types].xml
  • AppxBlockMap.xml
  • AppxSignature.p7x

开启开发人员模式

打开 Windows 设置(Win + I),点击“更新和安全”,点击“开发者选项”,勾选“开发人员模式”允许从任意源安装应用。

https://assets.zouht.com/img/blog/3346-05.webp

也可以从组策略管理里修改,Win + R 输入 gpedit.msc 进入组策略,展开:计算机配置 > 管理模板 > Windows 组件 > 应用程序包部署,然后将“允许安装所有受信任的应用程序”配置为“已启用”即可。

注册应用

由于已经将程序解包了,要安装的话又得打包回去,非常麻烦。所以我们选择直接就地注册程序,不打包回去再安装了。

注意,就地注册程序时不会复制程序文件,因此要将刚才解压出来的文件夹妥善防止到某个位置,记得不要删掉了(删了就打不开了)

比如我将程序放置在 E 盘符下:E:\MusicPackage_1.768.13825.0_x64

然后使用管理员权限启动 Windows Poweshell,首先 cd 到对应的目录:cd E:\MusicPackage_1.768.13825.0_x64

然后使用指令注册该应用:Add-AppxPackage -Register .\AppxManifest.xml

闪过一个蓝色进度条且没有红字报错后,就是注册成功了,截图如下:

https://assets.zouht.com/img/blog/3346-06.webp

然后开始菜单就已经能找到程序了,点击就可以正常运行了:

https://assets.zouht.com/img/blog/3346-07.webp
本文链接:https://www.zouht.com/3346.html
本文使用:CC BY-NC-SA 4.0 许可
# # #
首页      教程      解包 Msix 强制安装限制系统版本的程序

发表回复

textsms
account_circle
email

颢天

解包 Msix 强制安装限制系统版本的程序
自从微软发布 Windows 11 之后,就一直想把 Win 10 的用户赶去 Win 11,微软商店里很多程序都做了系统版本限制。有些限制 Win 10 的小版本还能装,但有些限制到了 Win 11 就非常恶心,实…
扫描二维码继续阅读
2023-08-10