wechat-explore
wechat-explore copied to clipboard
建议引入版本判断机制
作者的方案应该是全网最简洁可用的了,赞一个~
但依然有一些问题,会导致 MD5 出的 key 不匹配。说一下我遇到的情况:问题出在 取手机的IMEI 这一步。
目前,已经有许多用户采用了固定值“1234567890ABCDEF”运算出正确的 key,但是我的并不适用,尽管微信版本已经更新至当前最新安卓版本: 8.024.
想到自己的微信已经用了多年,虽然当前微信版本为最新版,但应该是以旧版本生成的数据库,也不想迁移手机/重置,所以怀疑依然是旧版本采用的 IMEI + UIN 方案。故将变量 S 写死为自己拿到的 IMEI ,成功。
这意味着,此时完全不需要 CompatibleInfo.cfg —— 目测是因为安卓高版本的限制,故使用该文件临时解决该问题。下载当前版本安卓包后,我用 jadx 搜了一下该文件,仅出现了一次,位于:com.tencent.mm.compatible.deviceinfo.m:
if (njk == null) {
njk = new m(com.tencent.mm.loader.i.b.bpc() + "CompatibleInfo.cfg");
}
好吧,看不出来... 不过应该不是所有情况都需要这种兼容,此时应该还是要考虑 IMEI + UIN的。
故推荐方式为: 默认输出以 CompatibleInfo.cfg 的结果,否则让用户自行输入后出计算结果。
Update:2023/2/19 安卓微信:8.0.32 机缘巧合下,对原有消息记录进行备份,并清空原有微信数据。恢复后,原 IMEI 确实为固定值:“1234567890ABCDEF”