前言

最近微信8.0开始灰度更新,小龙给大家整的新功能我就不赘述了。有不少小伙伴等不及灰度,也开始自行下载安装。

微信Android端内测下载链接(复制后通过微信打开即可):https://szsupport.weixin.qq.com/cgi-bin/mmsupport-bin/readtemplate?t=page/android_exp__index

然而,“后悔药”无论何时都是有市场的。不喜欢or不习惯新版本?想回退旧版本?这让我想到MIUI刷机党回退旧版ROM的麻烦,当然,微信要回退旧版并非难事。

降级

对普通用户来说,Android系统是不允许旧版本App安装覆盖掉新版本的,但并不是说就一定不可能。其实任何其他操作系统类似,应用程序安装的产物都是一些文件而已,本质上覆盖它们即可实现降级,只不过在Android中对非ROOT用户来说不能随意改动这些文件,有权限限制。

获取历史版本

既然要降级,我们是不是应该先找到历史版本的Apk?这里直接给大家介绍两个途径吧。

第一个不要选择XAPK+OBB的形式,而选Apk。如果第一个打不开,就看第二个吧,记得选择普通下载,直接获取到Apk文件。

无痛安全降级(无需备份)

直接在手机中打开刚才下载的Apk是无法进行安装的,系统安装器会提示不能降低版本安装之类的话语。这在Android系统源码中有所对应,感兴趣的同学可以查阅AOSP:frameworks/base/core/java/com/android/internal/content/PackageHelper.java ,其中定义了此情况的错误码:

public static final int RECOMMEND_FAILED_VERSION_DOWNGRADE = -7;

所以,接下来我们需要通过adb命令来安装了(在这之前请保证手机的开发者选项是打开状态且开启了其中的USB调试USB安装),终端执行即可:

adb install -r -d WeChat_v7.0.0_apkpure.com.apk
  • -r 参数表示覆盖安装且保留数据,这对我们非常重要,微信无数个GB的聊天数据不是说清就能清的,要命。
  • -d 参数表示强制将低版本覆盖安装到现有版本上,无论现有高低。

ADB(Android Debug Bridge)是Android平台的官方调试工具,如果各位同学有不是开发人员的,可以自行搜索关键词“adb工具”,不管Windows还是macOS,安装都非常简单。

简单粗暴降级(需备份)

这个方法不用细说,先备份数据,再卸载新版微信,最后安装旧版微信并恢复数据。

备份

微信聊天数据的备份方案市面上已经非常多了,大家其实也了解一二。我也简单介绍一下:

网盘云盘

不少知名网盘工具都推出了微信数据备份的功能——把数据备份到三方服务器中。小龙不做的事情,总有人做。

本地备份

很多国产厂商ROM(据我个人使用经验:MIUI、Color OS等,)都实现了本地备份应用数据的功能,不仅仅是微信聊天数据,整个应用数据都给你备份下来。当然,这种系统备份更多是还是备份在本地而非云端,需要注意刷机丢失数据等风险。

争做世界第一产品经理,厂商们也在努力:

电脑备份

使用类似xx手机助手或者微信电脑端的备份功能,把聊天等数据备份到电脑上。在我的实际体验中,用微信电脑端的备份功能,速度特别特别特别慢,几个GB的数据感觉要我几年。

ROOT用户手动备份

直接备份 /data/data/com.tencent.mm 文件夹即可,微信的各种缓存、聊天数据都在此。其中聊天数据库文件是这个:

/data/data/com.tencent.mm/MicroMsg/xxxx.../EnMicroMsg.db

拿到这个db文件其实就可以获取手机中的微信聊天记录了,不过这肯定是加密的,此路径的 xxxx... 目录名称实际上是一个遵循一定规则的MD5值,跟设备IMEI和微信帐号相关。具体解密过程可参考:获取Android微信聊天记录

我估计这些加密方式应该也是有人逆向微信客户端找出来的。

后话

虽然每次微信大版本更新都能引起大家的激烈讨kai论pen,但有些许功能或者优化还是值得肯定的。其实据我观察,大家喷点更多的还是微信客户端占用空间过大,仅凭聊天数据肯定不会占用这么多存储空间,所以具体是存了些什么我们用户就不得而知了。微信作为国民级应用早已不是简单的IM工具,变成如今这般航母型App是迟早的事情,自有国情在嘛是不是。

我个人建议部分特别依赖微信,且对聊天数据特别看重的同学,还是在降级之前稳稳当当地备份一次。因为降级这个操作本质上是旧版本程序+新版本数据的组合,难免出现兼容性问题(即便大部分情况下没什么问题),所以版本跨度也不要过大。

最后,整个图乐一乐,大家不要当真: