• 订正旧结论:平板登录被拒根因是 **Pixel 机型不在微信平板白名单**(bk.B/Q 设备型号
    校验 + 服务端副设备机型校验),**与账号「体验资格」无关**——实测同一个小火子老账号
    (当初被归咎为体验资格过期那个)伪装成三星 Galaxy Tab S8(SM-X700) 后平板登录成功。
    
    4 个 hook(缺一不可):
    - hookDeviceSpoof(主进程): setStaticObjectField(android.os.Build,…)=samsung/SM-X700/
      gts8wifi + hook SystemProperties.get 返回 ro.product.*=同款 + ro.build.characteristics
      =tablet。DEVICE_SPOOF 开关。伪装仅微信进程内(getprop 仍显 Pixel)。
    - hookInTabletEnv: bk.A/B→true 兜底。
    - hookLoginHistoryUIInitView/hookLoginUIInitView: LoginPasswordUI/LoginHistoryUI.onCreate
      强制「以平板登录」按钮(字段 N) setVisibility(VISIBLE)+挂 m4 点击。
    
    关键 Tinker CL 坑: 登录 UI 跑在 Tinker CL,登录 hook 必须也注册到 sTinkerCL——否则
    onCreate hook「注册了但 0 次触发」(N VISIBLE 计数 0),退出登录后到 LoginPasswordUI
    (对的页)但没按钮。加 sTinkerCL 注册后日志出 N VISIBLE + m4 attached,按钮即现。
    
    rebuild stub 补 setStaticObjectField/getStaticObjectField。逆向+DEX 分布见
    wechat_pad_login/LESSONS.md。
    
    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
    yibo authored
     
    Browse File »

  • **WeChatHook.java — 语音发送四个关键 fix**:
    - 跳过 H():DB INSERT 在 r0 构造器内已完成,H() 只触发 CDN 上传,
      服务端拒绝后会删消息;skip H 彻底解决消息消失问题
    - status=4 双写:ContentValues + f9.r1(4) 内存字段同时写,
      防止 K(0) 回调再次 convertTo 时读到 status=1 覆盖回转圈
    - sDatabaseF9 精准捕获:在 convertTo() hook 里捕获入库的 f9 对象
      放入 r0.i,修复旧逻辑取第三个 f9(内容为空)导致点击崩溃
    - K(0) 而非 I(0):onSceneEnd code=0 时调成功路径 K 而非失败路径 I,
      修复红色感叹号问题
    - fromusername 兜底:sMyWxid 为 null 时回退硬编码 wxid
    
    **tts_voice_send.sh(新)**:
    一行命令 TTS 发语音:edge-tts → ffmpeg(16kHz PCM) → silk-wasm(SILK V3) → adb push → SEND_VOICE_INTERNAL
    
    **wechat_send.sh(新)**:统一 text / image / voice 三种发送模式的 CLI
    
    Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
    yibo authored
     
    Browse File »

  • Hermes 重编 APK 时连踩三坑导致平板登录失效:
    1. 用 XposedBridgeApi.jar 而非 LSPosed legacy JAR 编译 → 所有 hook NoSuchMethodError
    2. xposed_init 放在 APK 根目录而非 assets/ → daemon 验证失败每次重启自动删模块 DB 注册
    3. 换了 keystore → INSTALL_FAILED_UPDATE_INCOMPATIBLE
    
    修复:从 wechathook_v2_signed.apk(正确 legacy JAR 编译)提取 DEX 复用,重打包含正确
    assets/xposed_init,debug.keystore 签名,fix_lspd_final.py 重建 DB 注册。
    2026-07-04 重启后验证平板登录恢复正常,所有 tablet hook 日志无 NoSuchMethodError。
    
    新增文件:
    - wechathook_v2_signed.apk: 黄金基准 APK(legacy JAR 编译,DEX 可复用)
    - do_not_break.md: 给 Hermes 的禁止事项清单
    - hermes_task.md: 已在顶部加 DO NOT BREAK 警告 banner
    - analyze_wechathook.py: DEX 字节码分析工具(Tinker patch)
    - rebuild_wechathook.sh / update_wechathook_db.sh: Mac 侧重建脚本
    - termux_build.sh: Hermes 的手机侧 build script(有编译 JAR bug,留作参考)
    - wechat_send_internal/: Hermes 对 WeChat 内部发送 API 的研究产出(进行中)
    
    Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
    yibo authored
     
    Browse File »