-
攻克图片发送最后一公里(LSPosed,微信 8.0.74,真机验证全分辨率送达): 根因: b80.u.oj(o70.k) 只做「插消息 f9 + 插 ImgInfo b0 + 建缩略图」并 返回 List<o70.l> CDN 上传描述符,自己不提交 CDN。旧代码拿到 res 就丢掉 list → 上传永不触发(缩略图渲染但全图转圈)。真实编排 pe5.f.a 才循环 list 逐图提交(b80.s 只是 prebuild service checkPreBuildImg,不含 oj)。 补上第二步(照搬 pe5.f.a): oj() 后对每个 o70.l: cdnSvc = n0.c(xs.d1.class) // v70.w MsgImgFeatureService g = new r70.g(l.e, compress, c01.z1.r()/*self wxid*/, talker, k70.i0{a=3}) cdnSvc.oj(g, l) // → 启动 CDN 上传协程 e80.c 真机: oj() DONE res=size=1 + CDN submit DONE items=1,无异常;filehelper 收到消息点开是全分辨率原图(有原图+保存按钮,不再转圈)。 坑: v70.w.oj 内部走 ViewModelProvider.get 须主线程调(广播 receiver 本就在 主线程);jadx 字段名末位字母=真实 dex 字段;XposedHelpers stub 无 getLongField 用原生反射。逆向靠拉 Tinker dex + jadx --single-class。 产物: WECHAT_SEND_API.md §3 完整两步实现 + API 表;backups 源码快照。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>