-
订正旧结论:平板登录被拒根因是 **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>