更新之 Android 10
升级到了 Android 10 之后
问题背景
今天在用微信的时候,突然微信闪退后就打不开了。强制停止重新启动后卡在开屏画面,然后黑屏,无限重启。一番测试后确定这个问题是 WeXposed 插件导致的。
以前也遇到过类似的问题,通常只需要保留数据卸载微信后再重新安装同版本的微信,就可以解决了。虽然我关闭了微信的自动更新,但是每隔半个月一个月的还是会抽风一次,所以我的实战经验其实已经很丰富了。然而很不幸,这次同样的方法却没什么作用。尝试了升级插件到最新版,翻了一堆日志,也去 track 了一下官网的 issue,也没有什么好的解决方案。
果然不能手贱随便更新软件。微信越更新越大,从 2018 年的 70MB 到了现在的 100MB 以上,无力吐槽。遂打算直接降级保平安。
尝试折腾
App 的降级本来没什么好说的,卸载最新版以后再网上找一个旧版本的 apk 就搞定了。但是到了微信这儿就有点不太一样了。微信的旧版本安装包倒是好找,但是却不能一卸了之,卸载了之后那些虽然不太重要的记录也没了。
我记得一两年前 adb
是有直接的保留数据降级方案的。简单说一下 android-platform-tools
的安装。 macOS 下直接用 brew 安装即可:
$ brew cask install android-platform-tools
手机连接到电脑上,需要启用开发者模式,然后打开 USB 调试开关,运行 adb devices
测试连接。一切准备就绪后,执行命令:
$ adb install -r -d wechat_7.0.0.apk
# adb: failed to install wechat_7.0.0.apk:
# Failure [INSTALL_FAILED_VERSION_DOWNGRADE]
好像是 Google 为了某种奇怪的安全问题考虑把这么好用的功能砍掉了(阿西吧 T^T)。
当然有些机智的小伙伴会想到降级 android-platform-tools
。我觉得吧,这个方案理论上可行(我没测试过),但是降级之后你可能会面对找不到设备,fastboot
出错等一系列作死的错误(来源于我曾经坚持不升级的惨痛经验)。
解决方案
在一番查询之后,我找到了一个解决方案:
- 保留数据卸载
$ adb shell cmd package uninstall -k <package_name>
- 重启设备,手动或者
adb reboot
我前两次总是失败,后来发现我漏掉了一行小字:重启设备。 - 安装旧版本,大功告成
$ adb install wechat_7.0.0.apk
# Success
最后一发吐槽,微信安装包真大啊 adb
都要装半天。