解决codex新客户端ChatGPT不显示5.6的解决办法

mikmyp 2026-07-10 15:24 1

借鉴各个大佬的解决办法,然后让codex自行处理,最后生成一个CMD一键版的执行文件

Install-ChatGPT-Codex-CatalogPatch.zip (25.1 KB)


codex 讲述的原理:


核心是“CMD 外壳 + 内嵌 PowerShell 安装器”。



  1. CMD 内部保存了完整 PS1 的 Base64 内容。

  2. 双击后,CMD 将其解码到 %TEMP%

  3. 调用临时 PS1 执行安装。

  4. 执行结束后删除临时 PS1。


Base64 只是为了把两份文件封装成一个 CMD,并不是加密。


PowerShell 安装器的工作流程是:




  1. 通过 Get-AppxPackage OpenAI.Codex 找到当前 Store 版安装目录。




  2. 将受保护的应用文件解密复制到:


    %LOCALAPPDATA%\Programs\ChatGPT-Codex-Patched-<版本>



  3. 使用 Codex 自带的 Node/npm 临时加载 @electron/asar




  4. 解包 app.asar,动态寻找包含以下逻辑的 JS:


    if(u?n.has(r.model):!r.hidden)



  5. 改成:


    if(!r.hidden)

    这样模型下拉不再受 Statsig available_models 白名单限制,而是显示 catalog 中没有隐藏的模型。




  6. 重新打包,并逐项校验原包和补丁包的文件数量及 unpacked 模式。




  7. 原版 Store 应用保持不变,补丁只存在于用户目录副本。




  8. CMD 尝试正常关闭 Store 版进程;未退出的进程会被定向强制结束。




  9. 启动用户目录中的补丁版。




再次双击时,脚本检测到对应版本已经安装,就跳过复制和打包,直接关闭 Store 版并启动现有补丁版。Store 版本升级后,因为安装目录带版本号,会自动为新版本重新制作补丁。

最新回复 (8)
  • mikmyp 楼主 07-10 15:30
    1

    仅Windows系统


    本机运行前:


    本机运行后:

  • 江烁烁 07-10 16:07
    2

    报错了似乎

  • 江烁烁 07-10 16:10
    3

    需要node版本22+,已经解决了

  • mikmyp 楼主 07-10 17:05
    4

    因为在我电脑上是22.15.0的版本,可能codex基于这个版本去生成的cmd

  • mikmyp 楼主 07-10 17:08
    5

    这个办法也可以,把下面这段话发给codex


    你是windows上的 Codex / ChatGPT Desktop 排障助手。目标:让 Desktop 模型下拉正确显示 catalog 里的模型名(例如 GPT-5.6 Sol),不要一直显示「自定义 / Custom」。


    背景(务必先理解)


    ~/.codex/config.tomlmodel = "gpt-5.6-sol"model_catalog_json 可能已经正确。

    codex debug models / app-server 的 model list 可能已经返回 display_name: GPT-5.6 Sol

    但 Desktop 下拉仍只显示 ChatGPT 账号侧的 GPT-5.5 / GPT-5.4 / GPT-5.4 Mini,当前模型不在该列表时,UI 会 fallback 成「自定义」。

    根因不是 catalog 没生效,而是 Desktop 用 Statsig 动态配置 107580212 里的:

    available_models(账号可用模型白名单)

    use_hidden_models

    过滤 list-models-for-host 的结果。

    关键逻辑(app.asar 内 JS)大致为:

    useHiddenModels=true 时:只显示 availableModels.has(model)

    useHiddenModels=false 时:显示 !hidden

    选中模型的 displayName 为 null 时:显示 i18n「自定义 / Custom」

    因此:只改 config / catalog / 重启,无法让 Desktop 下拉出现 5.6 Sol。需要改 Desktop 过滤逻辑,或等账号侧 available_models 包含 sol。


    目标修复方案(推荐,本地补丁版 App)


    不要强行改 /Applications/ChatGPT.app(SIP/权限常失败)。做法:

    /Applications/ChatGPT.app 复制一份到:

    ~/Applications/ChatGPT-Codex-Patched.app

    解包/定位 asar 中模型过滤 JS(文件名可能带 hash,需搜索):

    搜索字符串:

    if(l?t.has(n.model):!n.hidden)

    或附近:

    function Jv({authMethod:e,availableModels:t

    list-models-for-host

    composer.mode.local.model.custom

    将过滤条件从:

    if(l?t.has(n.model):!n.hidden)

    改为:

    if(!n.hidden)

    含义:忽略账号 available_models 白名单,按 catalog/list 的 hidden 显示模型。

    重新 pack app.asar,替换补丁 App 内:

    .../Contents/Resources/app.asar

    因改了资源会破坏签名,对补丁 App 做 ad-hoc 重签:

    codesign --force --deep --sign - ~/Applications/ChatGPT-Codex-Patched.app

    清 quarantine:

    xattr -cr ~/Applications/ChatGPT-Codex-Patched.app

    完全退出原版 ChatGPT/Codex 进程后,只启动补丁版:

    open ~/Applications/ChatGPT-Codex-Patched.app

    验证:

    模型下拉出现 GPT-5.6 Sol / Terra / Luna 等(catalog 里 visibility=list 的)

    选中后标签显示「5.6 Sol」而不是「自定义」

    config.toml 中 model 仍为 gpt-5.6-sol 时可正常对话(走用户自己的 NewAPI/base_url)


    同时确认后端配置(同事机器也要有)


    ~/.codex/config.toml 关键项示例:


    model_provider = "OpenAI"
    model = "gpt-5.6-sol"
    review_model = "gpt-5.6-sol"
    model_catalog_json = "/Users/<user>/.codex/model_catalog.json"
    [model_providers.OpenAI]
    name = "OpenAI"
    base_url = "http://<newapi-host>:3000/v1"
    wire_api = "responses"
    supports_w
  • zhimin 07-10 17:09
    6

    试试这个,我自己可用,GitHub - huangjim/codex-desktop-model-picker-fix: Fix missing custom provider models in Codex Desktop model picker on macOS · GitHub

  • mikmyp 楼主 07-10 17:25
    7

    收录到这个也可以:GitHub - BINGWU2003/chatgpt-fix · GitHub

  • confirm 07-13 13:32
    8

    GitHub - siyuan-123/CodexDesktop-Rebuild: Codex Desktop App - Cross-platform Rebuild · GitHub 基于哈雷佬的二开 修复了这个问题

* 帖子来源Linux.do
返回