Skip to content

WCX v345

Latest

Choose a tag to compare

@github-actions github-actions released this 30 Oct 17:26
ecca301

WCX v345

正式发行版本

提交 SHA: ecca301

🎉 新增功能

  • feat(beautify): 背景回 Tab 页内 + 标题栏抠透明(两个需求同时满足)
  • feat(beautify): 从 DecorView 定位标题栏宿主 + 打印视图树
  • feat(beautify): 顶部标题栏也铺 Tab 背景
  • feat(beautify): 恢复「四 Tab 主题背景」——为微信主页/通讯录/发现/我四个页面分别设置背景图片
  • feat(稳定性): 新增媒体预览护栏——8.0.80 picker 操作栏构建失败时降级为空 View 而非闪退(成功则原样透传)
  • feat(PipVoip): PiP 面板在可控制时提供视频开关按钮
  • feat(PipVoip): 8.0.80 视频开关接 switchCameraOpenStatus(动态代理构造 Flutter 回调,失败静默)
  • feat(更新弹窗): 重做为富样式卡片(大版本号 + 分类标签更新日志 + 立即更新/以后再说 + GitHub 兜底入口)
  • feat(PipVoip): 精简模式在拿到插件实例时升级为可控制(静音/挂断),否则只显示状态
  • feat(PipVoip): 8.0.80 多人通话支持静音/挂断控制(按接口定位 Flutter VoIP 插件并捕获实例,拿不到则退回只显示状态)
  • feat(PipVoip): 精简模式面板显示麦克风静音状态(只读同步,不提供无效按钮)
  • feat(PipVoip): 同步 8.0.80+ 多人通话麦克风状态(hook OboeAudioRecorder.g(Z)V 只读,供 PiP 面板显示)
  • feat(PipVoip): 接入 8.0.80+ 多人通话 PiP(hook VoIPMP 悬浮窗标记通话中,Home 时进精简 PiP;hook 不到完全不动)
  • feat(PipVoip): PipVoipActivity 增加精简模式(8.0.80 多人通话暂无可靠控制入口,只显示通话中、点窗口返回)
  • feat(8.0.80 兼容): VoIPMP insertMsg 锚点改四条分支并存(旧7参/Launcher + 新10参/CoreV2),allowFailure 兜底
  • feat(adaptation): 新增字符串->引用方法倒排索引工具

🐛 修复问题

  • fix(beautify): 关闭 FrostedContentView 磨砂 + 清理覆盖普通 View
  • fix(beautify): 清掉 Tab 页内层容器底色(修通讯录/发现页顶部发白)
  • fix(beautify): 切 Tab 后延迟重抠标题栏(修通讯录/发现页顶部仍白)
  • fix(panel): 修复 8.0.80 侧边栏钱包金额显示 --
  • fix(beautify): 标题栏透明加固 —— 切 Tab 重抠 + 补 setBackgroundResource
  • fix(beautify): 标题栏保持透明 —— 拦截微信重设底色 + 回前台重抠
  • fix(beautify): 用窗口焦点(onWindowFocusChanged)控制背景可见性
  • fix(beautify): 聊天页改用 onCreate + isInstance 直接隐藏背景(第三重保障)
  • fix(beautify): 背景可见性改双入口(onResume + onPostResume)
  • fix(beautify): 背景回到 decorView 全屏覆盖 + onPostResume 精确控制可见性
  • fix(beautify): 标题栏背景改为定位盖层 ViewGroup 后叠加
  • fix(beautify): Tab 背景改用真实 ImageView 叠加,消除标题栏下方白线
  • fix(beautify): 修掉 Tab 背景的高频重绘(白线/卡顿根因)
  • fix(beautify): Tab 背景改用 dispatchDraw 补画,绕开 FrostedContentView 的磨砂裁剪
  • fix(beautify): Tab 背景全无 —— 补 hook addViewInLayout + 延迟重试 + 全链路日志
  • fix(beautify): Tab 背景全无 —— 补 hook addViewInLayout + 延迟重试 + 全链路日志
  • fix(beautify): Tab 背景改用 ViewOverlay 叠加,内容区重新可见
  • fix(beautify): 四 Tab 主题背景彻底不浸透聊天页
  • fix(beautify): 修复四 Tab 主题背景浸透聊天页(hook 未装上的问题)
  • fix(api): 修复 8.0.79+ 上 NetSceneSendMsg 定位失败导致发文本/抢红包自动回复全部失效
  • fix(payment): 抢红包自动回复改为异步发送并校验结果;鸣谢页移除 Hchat
  • fix(beautify): 四 Tab 主题背景不再浸透聊天页
  • fix(stability): 媒体预览护栏打印 invokeOriginalMethod 的真实 cause
  • fix(stability): 媒体预览护栏默认关闭(降级返回的裸 View 会引发新的 getInflateRootView NPE)
  • fix(build): 修 WeLogger.w 单参调用与 HealthUi 缺失的 fillMaxSize import
  • fix(build): 清掉删脚本后的残留引用
  • fix(build): 修掉删脚本后的两处编译错误
  • fix(api): 数据库服务改用反射定位 getCoreStorage(8.0.80 上 hook 落到了错误方法)
  • fix(script): 移除 ScriptPluginMiuixPages 对已删除的 HchatScriptBootstrap 的 import
  • fix(dex): 修掉 8.0.80 上 6 处 DexKit 多命中导致的解析失败
  • fix(ui): CommonContextWrapper 只保留 getClassLoader/getResources
  • fix(ui): 移除 Context 上不存在的 getText(id,def)/getDrawable(id,theme) 重写
  • fix(api): 数据库服务在微信 8.0.80 上装挂
  • fix(ui): CommonContextWrapper 不再新建 Resources 实例,修复微信资源查找崩溃
  • fix(崩溃): 无障碍护栏不再掐断返回引用类型的 mockInflateCore(8.0.80 媒体预览 getInflateRootView 拿到 null 后 NPE)+ 阈值 128→512
  • fix(PipVoip): javaPrimitiveType 可空导致类型不匹配,改用 java.lang.Boolean.TYPE
  • fix(PipVoip): reflekt 里用 parameters(...) 而非 paramTypes(...)(编译错误 Unresolved reference)
  • fix(PipVoip): reflekt 需 .kotlin(KClass 扩展),并拆成两个独立 runCatching 防互相影响
  • fix(8.0.80): PipVoip 类缺失日志升到 W 级并说明影响范围(多人通话不可用、单聊不受影响)
  • fix(8.0.80): 自动添加附近的人 → 加 unavailableReason(8.0.79+ 页面改版,锚点不存在)
  • fix(8.0.80): 禁用转发截图提示 → allowFailure + 不可用提示(锚点串已被删除,避免开开关无反应)
  • fix(adaptation): 校验器支持 addMethod OR、addInvoke 跨方法约束降级为 WARN
  • fix(adaptation): 提取器支持 addMethod OR 分组/addInvoke 标记/${}'$' 转义还原/searchPackages 变量展开
  • fix(8.0.80): 朋友圈 improve 菜单 3 处锚点去掉包过滤(实现类已被混淆进 zk4 包)
  • fix(8.0.80): 表情 Tab Adapter 锚点改 TAG+getItemCount 并加 allowFailure(原 setSelection 串已删,存在装挂风险)
  • fix(8.0.80): VFS 类锚点去掉已删除的 readFileAsString 日志串(0 引用)
  • fix(8.0.80): 会话列表 legacy getView 锚点改单串并去掉包限制(Adapter 已迁到 cp5 包)
  • fix(8.0.80): 移除批量转发限制 hook 目标改为 SelectConversationUI/SelectContactUI(MvvmSelectContactUI 已不存在,功能一直失效)
  • fix(转发消息): 串行发送间隔 500ms,避免大量对象时后半段被服务端限流导致转发失败
  • fix(8.0.80): 会话列表侧滑 Adapter 锚点改单串(TAG 已移出 ui.conversation 包)
  • fix(8.0.80): 移除消息多选上限锚点改单串(TAG 与 initViews 串已拆到同类不同方法)
  • fix(adaptation): dexlib 指令宽度表重建(0x0a-0x12 误设 2unit、前进量按 unit*2),方法末对齐率 23.8%→100%,8.0.80 FAIL 128→30
  • fix(adaptation): dexlib.iter_insns 宽度按 code unit 计算(WIDTH*2),修正指令流错位
  • 修 8.0.76 实测反复抛 Method not found:isPlaceholder 纳入『尚未解析』语义(根治未解析就调 .method/.clazz 抛错)+ notifyConversationChanged/HideContacts 双层兜底;BlockVoipRingtone 3 命中回退路径改多候选全 hook 并留日志

🔧 其他改进

  • Merge dev into master: v345(大回退:移除脚本与自建主题 + 8.0.80 适配 + 四 Tab 主题背景)
  • bump: v344 -> v345(大回退 + 8.0.80 适配 + 四 Tab 主题背景)
  • revert(beautify): 回退 Tab 背景到 b314591(主页全屏正常的那版)
  • refactor(beautify): 四 Tab 主题背景改为挂在 Tab 页容器上,根治浸透聊天页
  • refactor(beautify): 四 Tab 主题背景改为挂在 Tab 页容器上,根治浸透聊天页
  • revert(stability): 删除两个稳定性护栏(实测它们本身就是崩溃源)
  • revert(script): 彻底删除脚本子系统(h/Hchat + me.hd.wauxv)并重写模块自检页
  • revert(script): 删除脚本功能(入口 + 引擎 + 引导)
  • revert(theme): 主题回归「主题商城」——6 款内置主题 + 气泡透明度
  • revert(settings): 模块设置回归 4 个 Tab(主页 / 功能 / 日志 / 设置)
  • docs(adaptation): 补充 8.0.80 双轨处置表(兼容分支 + 不可用提示)
  • docs(adaptation): 微信 8.0.80 全量锚点校验报告(365 OK / 19 FAIL,含通话架构变化分析)
  • 台账补 3.6 节:Hchat DexFinder 按调用组校验结论(修复 7 resolve / 4 个无法修复记入风险清单:红包 URL 串被微信混淆、发视频需服务定位器方案)、工具留档 verify_dexfinder2/extract_dexfinder/dexfinder_fix
  • Hchat DexFinder 特征串修复(8.0.79 逐串验证):消息清除/名片/转账查询/转账操作/发图片参数/图片CDN/系统消息插入 7 个 resolve 的 9 处 matcher 中,删除已成孤儿串(无 const-string 引用)的参数,保留存活串;DexFinder 自带 isXxxClass 结构校验兜底,多命中安全
  • 台账与报告刷新:三版 OK 253/259/240(本轮累计 +39/+33/+38),补记 classConversationStorage 与取库链两条核心修复
  • 核心链路修复:classConversationStorage 两串跨方法 AND 恒失败 → 单 PRAGMA 串(三版唯一命中,连带 DelChatContact/IsPlacedTop 恢复);取库链 mCoreStorage not initialized! 已是孤儿串 → 换 Kernel not initialized by MMApplication!(三版唯一命中,WeDatabaseApi/WeMessageApi 双修)
  • 补记工具能力边界:auto_probe/migrate2 只能收敛候选集(会给出语义错误的假解,如 lambda invoke 当 Toast 方法),最终每项必须人工核对语义;留档 migrate2
  • 校验引擎准确性修正 + 报告刷新:修复 iter_insns 未跳过 payload 伪指令、sig_params 把逗号当参数类型、declaredClass/superClass 块内串被误当方法级串三处系统性偏差;新增 auto_probe(自动探查存活串+原签名三版唯一解)与 migrate_anchor(跨版本锚点迁移);三个版本 OK 数 250/259/237
  • 锚点迁移第二批:用 auto_probe 自动探查「存活串+原签名」三版本唯一解,修复 19 项(朋友圈视频路径/导出相册、会话删除与 parentRef、主题地址项与聊天宫格、开屏广告跳过、网页特性、运动步数、进程检查、FlutterVoip、自定义头像 mvvm 加载、QueryByParent 真实 5 参签名等)
  • 8.0.80 正式版适配体检:登记直链、新增全量委托离线校验体系(extract_props→verify_props→classify_fail→suggest2,复现 DexKit 方法级 AND 语义跑完 515 个委托)、8.0.80 逐项报告(核心链路全 OK,62 项回归中 54 项是孤儿串)
  • 孤儿串批量修复:微信自 8.0.76 起大量裁剪日志调用,导致 TAG+日志串的锚点恒失效。离线全量校验 515 个 DexKit 委托后,对 20 处「删掉孤儿串仍唯一命中」的锚点做精简(去掉无 const-string 引用的串),DisableResumeWatchingToast 因精简后误命中无关 lambda 已回滚并加 allowFailure
  • 锚点复核修正:RemuxInfo/OriginMediaInfo 与 [handleMsgChange] isLockNotify: 在 8.0.76/8.0.79 均为孤儿串(string_ids 残留但无 const-string 引用),ImportMultiVideo 改单 TAG + 多候选择优,classChattingDataAdapter 改 TAG+setShowHistoryMsgTipId 两串(双版本唯一命中)
  • 适配台账回填:8.0.76/8.0.79 双版本失效锚点修复表(8 个 key 的根因与修法)、朋友圈 8.0.79 整链失效结论、三条硬教训(类匹配方法级 AND/孤儿串/日志串复用);工具链留档 dexlib+scanstr+dumcls
  • DexKit 全版本适配(8.0.76/8.0.79 双版本 APK 验证):朋友圈 UploadPackHelper 锚点修正(8.0.79 误定位 BackgroundVideoFinishUploader 导致整条发帖链路解析失败)+ addSightObjectByPath 4/5 参自适应;classChattingDataAdapter 两串跨方法 AND 恒失败改单串+包过滤;ForceTabletMode 孤儿串改 Lenovo TB-9707F 单锚点;PipVoip mic 锚点改 need notify iLink Engine;清理 DisableMainPagePullDown 两个死锚点;头像 hook 改 allowMultiple 全候选
  • 留档:微信 8.0.71~8.0.79 全版本适配资产台账(7 条官方直链实测 200、锚点矩阵、ImportMultiVideo/notifyConversationChanged 签名结论、多命中 key 清单、工具链与新版本 SOP)
  • 全版本多命中适配(8.0.76 实测 3 处 Multiple 命中全部处理):DexMethodDelegate 暴露 candidateMethods 候选列表;通话限制的 isCameraUsing / checkAppBrandVoiceUsingAndShowToast 开 allowMultiple 并对每个 boolean 候选全 hook(日志列出命中与选中/跳过)
  • ImportMultiVideo 多候选兼容:特征串换成该类自身 TAG+元数据键(消除 f3/mp.b 歧义)、dexClass 开 allowMultiple/allowFailure 不再抛 Multiple classes、使用前按 Thread 子类+7参构造器签名校验择优、全部不通过则标记该版本不支持并跳过;DexClassDelegate 暴露全部候选供排查

📦 下载

  • 下方 Assets 中下载对应架构的 APK
  • update.json 供模块内置更新器使用