[工具] 下载 UUP 中的应用包——AppXMLParser

2022年5月19日更新:AppXMLParser v1.2现已支持25115以上的版本。

从build 22563开始,UUP中不再有ModernApps ESD,取而代之的是散装的appx包。之前默认情况下UUP Dump不会下载散装appx包,于是很长一段时间内从UUP转制的ISO镜像缺少预装App,同时大量依赖UWP运行库的系统组件无法正常工作,给全新安装带来了困难。

为了保证收藏beta镜像的完整性,我对新的推送格式进行了研究,在build 22563推送的第二天完成了AppXMLParser工具的编写,并成功完成了散装appx包的下载和安装操作。由于个人原因我一直没有时间为这个工具编写使用说明,这里将会介绍该工具的使用方式。

首先我们需要一个本地UUP Dump服务器,搭建教程见[工具] 虚拟机 UUP Dump 服务器搭建教程 | BetaWorld 博客。之前的UUP Dump软件,会在文件名的后面自作主张加上文件SHA1校验值的前8个字节作为后缀,所以需要修改UUP Dump软件以便配合AppXMLParser使用。但是现在的UUP Dump软件已经删除了这个功能,所以无需再对其进行修改。但我们仍然需要本地UUP Dump服务器,这是因为uupdump.net有一个CDN,而目前下载App的方法需要向UUP Dump服务器发送大量请求,会被CDN拦截导致下载失败。

搭建本地UUP Dump服务器后,打开页面,选择要下载的版本,在右侧“To search for Cumulative Updates use the Windows KB search query”中单击“Windows KB”,可以在列表中看到有一个包含AggregatedMetadata文件名的文件,下载这个文件。下载后打开,从中找到_desktoptargetcompdb_app_neutral.xml.cab,打开,解压其中的DesktopTargetCompDB_App_Neutral.xml。再从里面找到对应语言和SKU的desktoptargetcompdb,例如Pro简体中文版的_desktoptargetcompdb_professional_zh-cn.xml.cab,从中解压出XML文件。专业版、企业版、教育版等Pro的虚拟SKU用同一个文件,家庭版、家庭单语言版等Home的虚拟SKU用core,家庭中文版用corecountryspecific,带N的用对应带N的文件。

另外还需要UUP Dump服务器文件下载链接的前缀。在刚才下载AggregatedMetadata的链接中,删除文件名,即可得到前缀。前缀包含服务器地址和更新UUID两个信息,一定要对应。在前文所述的例子中,前缀是“https://uupdump.net/getfile.php?id=9e5ce8a6-4c54-4bf2-96df-b1fb41c97ee9&file=”。

然后使用AppXMLParser工具,在命令行中输入AppXMLParser.exe DesktopTargetCompDB_professional_zh-cn.xml DesktopTargetCompDB_App_Neutral.xml “https://uupdump.net/getfile.php?id=9e5ce8a6-4c54-4bf2-96df-b1fb41c97ee9&file=”(注意这里的英文双引号),即可得到download_script.txt、install_script.cmd和一些License开头的XML文件。

将安装脚本输入aria2c工具开始下载。在命令行中运行aria2c.exe -x16 -s16 -j5 -c -R -i”download_script.txt”,即可开始下载。下载的文件数大约在2800-3000附近,需要耐心等待。下载完成后得到一个IPA文件夹,这就是这个build你所选定的SKU、语言和架构对应的应用包。

接下来介绍如何安装AppXMLParser下载的应用包。使用dism挂载从UUP转制的未集成app(新的uupdump.net转换脚本默认会集成app)的WIM,用管理员身份运行install_script.cmd,按照提示输入挂载WIM的路径并回车即可开始安装。完成后使用dism卸载并提交镜像,即可得到正确集成了app的WIM文件。

发表评论