微信在8.0.30版本之前一直有一个特性,那就是将一个文件转发了几次后,该文件就会占用你几倍的手机空间。直到2022年11月18日,微信官方正式推出8.0.30版本,才修复这一问题。

但这并不意味着微信在文件存储上就没有问题了。在8.0.30版本前,用户保存的文件一般都会在

/storage/emulated/0/Android/data/com.tencent.mm/MicroMsg/download

即便是用户选择自行保存,也会默认保存在download文件夹内。这两个目录无论是用户还是应用都可以直接访问到。从8.0.30版本开始,文件的默认保存位置会直接改变成应用最底层的data目录。根据Android的目录规则,根目录下的data目录属于每个应用的专属目录,只有应用本身才能正常访问,把没有获取超级用户(root)权限的用户以及其他第三方软件直接拒之门外。这就导致我们在微信保存到本地的文件,依然占据了两倍的文件空间。

注意:微信的保存是要以“成功接收文件到本地”为判断标准,仅收到文件信息是不会保存到本地的。这一点在文末也会有所体现。保存的是“记录”而非“文件本身”(个人理解)


我们以微信在8.0.4x版本上线的存储空间为例(入口:设置-通用-存储空间)。得益于“得天独厚”的data目录,目前用户清理微信文件的唯一方式就是进入存储空间内删除文件。对于一般用户来说,这种方式已经能够满足文件清理的需求了。但作为一名极客用户,我更希望能够把所有的微信文件罗列出来,与手机系统的文件进行良好的联动,更方便把文件进行分类保存整理。


为了实现这一目标,我们要用到“mt管理器”

首先点击微信的安装包本体(没有的话可以用mt管理器提取一下),选择“注入文件提供器”

点击“确定”,生成新的微信安装包并安装。(后缀为dp.apk)

注意⚠️:签名改变,与原版微信无法共存,需卸载安装。

当然,如果你本来就是免root的lsp及其类似物的用户,你可以选择把加载器换成Opatch,在修补应用时顺手勾选注入文件提供者,也可以达到类似的效果。(如下图)

但无论是以上哪种方法都会有一个致命缺陷(因为需要走这些步骤的99.9%都是没有root的用户),因为任何对安装包的修改行为都会改变应用的签名,我们普通用户并没有腾讯官方的签名密钥,那就导致一些对微信签名校验非常严格的应用,可能就无法识别到你的微信了,或者提示“应用签名与开放平台的不符,请从应用商店重新下载正版应用”等,如下图。(常见的有系统应用、游戏app、银行app等,无法调用微信登录以及微信支付)

因此请各位三思后而行,是否需要为了达成目的付出这样的代价。

当然,如果你本身就已经是lsp生态的老用户了,那可以直接无视,毕竟还有手机/扫码登录和支付宝兜底(比如我)

(提示“请安装微信”和下面的“打开”互相冲突,这就是应用签名与开放平台不符的结果,也就是能识别但无法调用。)

我们打开“mt管理器”,点击右上角的三个点

选择“添加本地存储”

点击左上角那三条杠

选择“微信”(com.tencent.mm)

点击“使用此文件夹”

现在在侧边栏里已经添加了微信的根目录了。

我们选择“data”目录。(如果选择“android_data”的话那就和从

/storage/emulated/0/Android/data/com.tencent.mm

进入没区别了,也就是旧版地址)

选择MicorMsg。

在“MicroMsg”的目录下有很多文件夹,我们找到夹杂着字母和数字的那个文件夹(这个类似用户的识别码,不同的账号是不一样的)

进入后选择“attachment”

这里就存放着我们在微信接收的所有文件

带有“⌖”结尾的文件已经打不开了,文件体积也只有几十b,大概率是所谓的过期了(只有记录)

你可以把右侧目录切换为download文件夹(或者你存文件的文件夹),然后长按文件把它复制过去,便于系统地管理你的微信文件。(删除文件还是推荐用微信去删)

最后,补一个QQ文件的保存路径

QQ群文件(不需要上述操作)

/storage/emulated/0/Android/data/com.tencent.mobileqq/Tencent/QQfile_recv/

QQ频道(需要上述操作)

/android_data/Tencent/QQfile_recv/nt_qq_xxx(用户识别码)/File/Ori/