原理来自
照着大佬的提示,AI 几轮对话就操作成功了,关键信息: [image] 要一步到位开启 Codex App 的 Speed/Fast,不是只改 general-settings。新版关键在两个 bundle:先解包 app.asar,把 model-queries*.js 里的 useHiddenModels:!1 改成 useHiddenModels:!0,再把 permissions-m…
由于个人的菜逼技术水平搞不定Windows Store/MSIX 包的包完整性和权限保护, 所以干脆直接复制整个 app 目录到随便自定义一个顺手的位置,然后在复制出来的 app\resources\app.asar 上做补丁,最后直接从复制目录里的 Codex.exe 启动;这样就不用不像参考里的 macOS 方案那样有明显的 Electron asar integrity 元数据要删,可以不管包完整性校验
当前版本相关 bundle 文件在 app.asar (“C:\Program Files\WindowsApps\OpenAI.Codex_26.601.2237.0_x64__2p2nqsd0c76g0\app\resources\app.asar”)内部,主要是这几个:
webview/assets/model-queries-iC47Vo-S.js
webview/assets/models-and-reasoning-efforts-YEaF8us5.js
webview/assets/use-service-tier-settings-DFXPADNF.js
webview/assets/read-service-tier-for-request-BJ8QN0Q7.js
1. 打开 hidden model 默认开关
文件:
webview/assets/model-queries-iC47Vo-S.js
目标字符串:
useHiddenModels:!1
修改为:
useHiddenModels:!0
作用:让前端默认进入可使用 hidden models 的逻辑分支。
2. 解除模型列表 allowlist 过滤
文件:
webview/assets/models-and-reasoning-efforts-YEaF8us5.js
目标字符串:
s?t.has(n.model):!n.hidden
原逻辑含义是:
- 如果 useHiddenModels 为真,只显示 availableModels allowlist 里的模型;
- 否则只显示非 hidden 模型。
需要把这个判断改成“已返回的模型都允许进入列表”。
我使用的是等长替换,例如把整段替换成一个恒真表达式加注释填充:
!0/*xxxxxxxxxxxxxxxxxxxx*/
注意:这里必须保持字节长度一致。原字符串长度是 26 字节,替换后也必须是 26 字节。
作用:让 list-models-for-host 返回的 hidden models 能实际显示到模型列表里。
3. 解除 Fast/Speed UI feature gate
文件:
webview/assets/use-service-tier-settings-DFXPADNF.js
目标字符串:
f=a&&!u&&c!=null&&c?.requirements?.featureRequirements?.fast_mode!==!1
原逻辑含义是:
- 只有 authMethod === chatgpt
- 并且 requirements 没有禁用 fast_mode
- 才允许显示/使用 service tier 相关 UI。
需要改成恒真赋值,例如:
f=!0/*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
同样必须等长。原字符串长度是 70 字节,替换后也必须是 70 字节。
作用:让设置页和 composer 中的 Speed/Fast 选项不被前端 feature gate 隐藏。
4. 解除请求层 service tier gate
文件:
webview/assets/read-service-tier-for-request-BJ8QN0Q7.js
目标字符串:
return n===`chatgpt`?(await e.query.fetch(c,{authMethod:n,hostId:t})).requirements?.featureRequirements?.fast_mode!==!1:!1
原逻辑含义是:
- 只有 chatgpt auth 才读取 fast_mode requirement;
- 非 chatgpt auth 直接返回 false;
- 这会导致 UI 即使选了 Fast,请求层也可能不带 Fast service tier。
需要改成恒真返回,例如:
return !0/*xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx*/
原字符串长度是 122 字节,替换后也必须是 122 字节。
作用:确保请求层不会把 service tier 降回 standard。
此方案目前只在Windows Store/MSIX 版 Codex Desktop:“26.601.2237.0”中生效过
可以将本篇文章直接丢给 AI,让其进行操作
3 个帖子 - 3 位参与者