资讯动态

如何从Microsoft Store直取Codex安装包?codex-app-mirror纯.NET实现DisplayCatalog+FE3协议解析(告别StoreLib依赖)

发布时间:2026/9/28 20:19:28 来源:尧图企业网站定制
如何从Microsoft Store直取Codex安装包codex-app-mirror纯.NET实现DisplayCatalogFE3协议解析告别StoreLib依赖【免费下载链接】codex-app-mirror原样镜像官方 Codex 桌面应用:每 15 分钟探测、SHA256 可校验、国内直连下载、 Mac 可增量更新 | Verbatim, verifiable mirror of the official Codex desktop app — probed every 15 min, with a Sparkle delta-update feed.项目地址: https://gitcode.com/gh_mirrors/co/codex-app-mirrorcodex-app-mirror是面向 OpenAI Codex 桌面应用的安装包镜像与分发项目。它的 Windows 安装包直接从 Microsoft Store 获取通过纯 .NET 实现的解析器StoreLink完成 DisplayCatalog 与 FE3 协议解析持续产出可校验、可直连下载的 MSIX 安装包完全不依赖StoreLib等第三方辅助库。为什么需要直取 MSIX 安装包如果你只是想使用 Codex打开 Microsoft Store 点击获取是最直接的方式。但在以下场景你需要拿到安装包文件本身离线安装 / 统一部署企业或多设备环境里希望先下载 MSIX 文件、校验后再分发商店通道不畅部分网络环境下 Store 访问不稳定或 Store 应用自身存在问题✅字节级一致确保拿到的包与官方一致并能用 SHA256 复核好消息是Microsoft Store 的包元数据协议是公开的。DisplayCatalog产品目录 FE3Windows Update 客户端服务两个接口就足以解析出 Codex 当前版本的 MSIX 及其下载链接。整体流程DisplayCatalog → FE3 → Microsoft CDN整个解析过程分四步步骤接口作用1DisplayCatalog用 ProductId 查询产品信息取得 Windows Update 分类 IDWuCategoryId2FE3GetCookie建立 FE3 会话取回加密 cookie3FE3SyncUpdates携带设备指纹换回候选 Store 包列表4FE3GetExtendedUpdateInfo2用 UpdateID 请求 FileUrl 片段得到微软 CDN 的临时下载链接全部实现集中在 Program.cs 一个文件里入口在 Main。第 1 步用 DisplayCatalog 查产品StoreLink 的第一个动作是携带 ProductIdCodex 为9PLM9XGG6VKS请求 DisplayCatalog再从返回的 JSON 里递归查找WuCategoryId字段——它是后续 FE3 查询的关键FE3 靠这个Windows Update 分类来过滤更新。相关实现见 ResolveWuCategoryIdAsync。第 2 步GetCookie 并模拟一台 Windows 桌面设备FE3 本质上是 Windows Update 使用的那套更新服务它会先问你是哪台设备StoreLink 为此模拟了一台标准 Windows 桌面设备DeviceFamilyWindows.DesktopOSArchitecture取AMD64或ARM64设备属性构造附带一份内置的基线非叶子更新 ID列表源码让 FE3 把当前设备判定为正常桌面环境一个值得注意的细节ARM64 架构必须包含特定 detectoid133399034FE3 才会返回可适用的 Store 包。项目专门有一个守护测试 test-store-link-arm64-baseline.sh防止这个 ID 被误删。第 3 步SyncUpdates 换回候选包设备条件就绪后SyncUpdates会返回 XML 片段每个片段携带一个候选包的AppxMetadata元数据包全名moniker、包类型等。StoreLink 逐一解析ParsePackageCandidates按目标身份OpenAI.Codex与目标架构过滤再按版本号排序取最新形如OpenAI.Codex_26.623.5175.0_x64__2p2nqsd0c76g0第 4 步GetExtendedUpdateInfo2 换下载链接最后携带上一步得到的UpdateID/RevisionNumber向 FE3 安全端点请求FileUrl片段拿到dl.delivery.mp.microsoft.com域下的临时下载链接GetPackageUrlAsync。程序在这里加了一道严格白名单只接受dl.delivery.mp.microsoft.com域名及其子域的 URL其余一律丢弃IsAllowedPackageUri避免把不可信地址当下载源。最终输出只有一行包 moniker 下载链接非常适合被自动化管道消费。为什么选择纯 .NET 实现零依赖整个工程StoreLink.csproj只声明了net10.0没有任何外部 NuGet 引用只用标准库里的HttpClient与XDocumentCI 环境随处可跑镜像流水线运行在 Linux 上而不少 Store 辅助库面向 Windows 设计纯 .NET 代码跨平台Linux 运行器直接可用协议细节可审计请求字段、设备属性、证书校验全部明写在 Program.cs而不是藏在第三方库黑盒里安全细节可控对 FE3 的 TLS 不做信任系统证书库了事而是做了证书固定——只接受由 Microsoft Update Secure Server CA 2.1 中间证书签发的交付链并核对中间证书指纹ValidateServerCertificate固定指纹常量亲手跑一遍克隆仓库后安装 .NET 10 SDK 即可运行参数顺序product-id [architecture] [package-identity]架构默认x64git clone https://gitcode.com/gh_mirrors/co/codex-app-mirror cd codex-app-mirror dotnet run --project scripts/store-link -- 9PLM9XGG6VKS x64 OpenAI.Codex成功时输出一行制表符分隔的结果OpenAI.Codex_26.623.5175.0_x64__2p2nqsd0c76g0 https://dl.delivery...生产管道中probe-release.sh 以指数退避重试的方式调用该工具解析到链接后立即下载官方 MSIX、生成SHA256SUMS.txt并发布新的 GitHub Release详见 README.md 的工作原理一节。常见问题Q解析出的链接能长期保存吗不能。CDN 链接是临时的镜像项目也从不把它当作永久地址——立即下载包并重新发布到镜像用户直接从最新 Release 获取并用SHA256SUMS.txt核对即可。Q为什么 ARM64 有时解析不到Store 可能只放出了 ARM64 目录元数据、尚未放出可下载包。此时镜像会在 manifest 中以catalog-only状态记录等探测到稳定包再发布。Q这是绕过 Store 授权吗不是。它只读取公开的元数据协议、下载官方原包不绕过任何授权逻辑项目边界在 README.md 这个仓库不会做什么一节有明确声明身份参数化的设计背景可参考 docs/chatgpt-rebrand-recovery.md。【免费下载链接】codex-app-mirror原样镜像官方 Codex 桌面应用:每 15 分钟探测、SHA256 可校验、国内直连下载、 Mac 可增量更新 | Verbatim, verifiable mirror of the official Codex desktop app — probed every 15 min, with a Sparkle delta-update feed.项目地址: https://gitcode.com/gh_mirrors/co/codex-app-mirror创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑