-
真机 hook 追踪确认本机语音走 jg0.x.w 内联 cgi 分支(非 CDN 引擎 addSendTask, 那是 send_use_cdn_upload=1 的机器才走)。内联路可 z2.b 全合成,复用文字同队列。 新增追踪 hook: - hookCdnTrace: h2.d(addSendTask)/l1.keep_onUpload*/jg0.x.u — 证实 CDN 路本机不触发。 - hookVoiceCgiCapture: hook modelbase.l.a() 过滤 uploadvoice,按类型定位字段(base≠ tinker 名,NoSuchFieldError 教训),dump 请求 pb r45.cv6 全字段。 捕获的 wire 协议(cgi /cgi-bin/micromsg-bin/uploadvoice, cmdid 127, req cv6/resp dv6): [0]self [1]talker [2]netOffset [3]本块SILK长 [4]"newSendVoice_"+voiceId [6]时长ms [7]custom cu5(SILK字节) [8]endflag [11]msgsource [12]=4 [15]long 分块=6000字节/片,末块 end=1 响应 dv6.getLong(11)>0=服务器msgId=投递。 scene modelbase.g extends m1 → z2.b(scene) 同文字。modelbase.o 有公开构造器可绕 过 modelbase.l 字段名不匹配。 下一步: sendVoiceViaCgi 实现分块 cgi + z2.b 全合成。详见 memory + WECHAT_SEND_API。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>