释放你的安卓微信内部存储空间,一键解放微信存储空间的工具。
主要原理:
通过解密微信的数据库,过滤出群聊天记录,并找出相关的缓存文件、图片、视频等,一并删除。最后,删除这些数据库记录,从而缩减数据库的大小。
为什么会做这个?
由于记忆力有限,可能不想删除所有的聊天记录,而是希望保留联系人记录,以便在需要时可以参考上下文。
然而,微信甚至不像 QQ 那样,可以手动点击接收图片。微信默认会接收所有群组的消息、图片和视频缓存等,群里聊的每一个字节都存到了你的手机里。
此外,微信的文件分类管理非常混乱,这些文件甚至被隐藏在 /data
目录中,只有具备 root 权限的用户才能进行处理。即使你有 root 权限,也无法轻易找出哪些文件可以删除,哪些文件不能删除。
长期以来,虽然你的联系人资料可能并不占用太多存储空间,但群组的资料却可能占据了大部分空间。
为什么你不退群?
没有习惯退群,即使退了,群组之前的记录仍会像狗皮膏药一样永远存储在你的手机中,无法轻易清除。
为什么不用内置聊天管理?
内置的聊天管理功能根本无法满足清理需求,缺乏一键选择群组的功能。
经过测试,即使勾选了清理选项,导出数据后你会发现数据库和缓存中仍然存在数据,内置功能并没有完全清理干净,就像删除了一个软连接一样。(测试自 8.0.2 版本)
功能:
UI 界面操作
支持操作:
这是搞了好几天的成果,虽然还是很大,但已经减少了十几 GB 的体积!
好在是可以弄成一键工具进行清理了。
对于没有 root 的 Android 或者 IOS 用户来说无法实现。
可以许愿未来哪一天宇宙级产品经理愿意实现自定义备份功能了,就有解了!
1
Tink 2023-07-19 13:32:48 +08:00
清理之后原来的图片还能看吗
|
2
dianso 2023-07-19 14:15:51 +08:00
清理之后还能看吗
|
3
ellermister OP |
4
LawlietZ 2023-07-19 15:26:56 +08:00
微信不是有这个功能吗
|
5
ellermister OP @LawlietZ 微信不能全选,按分类选,不能搜索删除。删除也无法删除干净。
|
6
wanwaneryide 2023-07-19 15:48:49 +08:00
@ellermister 按会话清理的话,这个不是微信自带的功能吗?
|
7
ellermister OP @wanwaneryide 微信不能全选,按分类选,不能搜索删除。删除也无法删除干净。
|
8
pkxutao 2023-07-19 16:46:08 +08:00
你把微信的数据库解密了?也就是说,你能访问微信本地的聊天内容吗?
|
9
ellermister OP @pkxutao 当然可以啊,不然怎么识别哪些文件能不能删除
|
10
pkxutao 2023-07-19 17:21:15 +08:00
@ellermister #9 在非 root 情况下可以做到导出聊天记录不?或者能恢复删除的聊天记录不?我觉得这个需求量更大哈哈哈
|
11
ellermister OP @pkxutao 可以通过某些厂商自带的备份功能,拿到 zip ,从 PC 端解码,但因为不能 hook ,所以密钥得自己计算,有可能计算不出来。
而且已经删除的聊天记录不存在主库,存在 FTS5IndexMicroMsg_encrypt.db ,它的加密参数不一样,你可以搜索这个关键字获取更多知识。 |
12
miniblink 2023-07-19 17:58:55 +08:00
这工具不错
|
13
Martens 2023-07-19 18:31:51 +08:00
微信的数据库好像是 sqlcipher
|
14
ellermister OP @Martens 嗯,兼容的。微信自己搞了个 wcdb (卧槽 DB ),你可以看看。
|
15
wenning 2023-07-19 20:53:36 +08:00
如果能导出微信聊天记录进行备份也是不错的.这样手机上就可以定期直接全清了
|
16
lhbc 2023-07-19 20:55:30 +08:00 via Android
装在备用机上,定期重装
|
17
chotow 2023-07-19 21:44:49 +08:00
🤣 配图里好多张某的粉丝群
|
18
lovelylain 2023-07-19 22:00:38 +08:00 via Android
@ellermister 以前微信自带的清理很废,但是现在的还行啊,不过要删两次才能彻底删除,第一次只删图片视频文件,第二次删语音和文字。你这个能删图片视频文件语音只保留文字吗?
|
19
dianso 2023-07-19 22:19:37 +08:00
@ellermister #3 误会了,我以为是删除缩略图这些,每次打开原图还会再生成缩略图占用更大体积,不打开就不占用。
原来是彻底清除啊。 我一般都是将重要数据备份到电脑端,定期随机重装,然后聊天记录恢复。 |
20
x86 2023-07-19 22:20:57 +08:00
张小龙真爱粉啊
|
21
ellermister OP @lovelylain 你说的那几次我不知道是啥。
我是说设置/一般/存储空间那里对聊天室清理,之前是清理不干净,图片和数据库依然存在残留。 |
22
ellermister OP @lovelylain 你可以把那几行删除数据库记录的代码屏蔽掉编译下就行。
另外在这里说明下,微信数据库只要你在线记录所有加的群的聊天记录,记录每一个文字和表情符号,图片语音缓存。 别人发了一个表情,你以为就占用几个字节,实际上他存了一个 xml 结构体,一个二进制的实体,还有一堆群用户关联的信息,还有索引信息。我估计几百 K 都少了吧。 很多群一天到晚全是消息,全存到你的手机。群里发个公众号或者小程序或者浏览器分享的图文信息,又是一大块 xml ,全塞到你的手机里。 |
23
ellermister OP |
24
anjingdexiaocai 2023-07-19 23:51:55 +08:00 via Android
如果要 root 的话,那我还是备份到电脑,然后卸载软件,再备份回来😂
|
25
wayne3602 2023-07-20 00:10:54 +08:00 via Android
问一下,如果可以做成模块,是不是就可以利用 lspatch 等免 root 工具让无 root 用户使用了?毕竟无 root 用户还是居多的,对于家人,让他们 root 更不现实,而他们的群聊天记录往往比我们还多
|
26
ellermister OP 可以的,劫持到微信的 db 连接,就行。只是我不会,调试也太麻烦,懒得弄。
@wayne3602 |
27
yhm2046 2023-07-20 03:08:02 +08:00
好人一生平安,请问下我有一台 pixel2xl 手机进不了系统了可以恢复内存里面的聊天记录吗?
|
28
Jirajine 2023-07-20 06:29:07 +08:00
既然解密了微信的聊天记录数据库,那么对其进行导出到通用格式或 html 这种易于浏览的格式应该更有价值,至少 dump 一份原始数据库的未加密版放 db 软件里浏览。
另外关于计算密钥的部分是不是过时了,Android 早就不能获取 IMEI 了,新版本密钥的生成方式肯定也不一样,frida 脚本应该是很不错的方式。 @wayne3602 如果你能够 patch 微信,并且安装使用 patch 后的微信,且微信允许你这么做,还不封你号,那么用 frida 也是一样的,frida 也可以通过 patch 的方式注入到特定应用中。 |
29
villivateur 2023-07-20 08:48:08 +08:00
我觉得更大的意义是能解密微信聊天记录啊,如果能做一个导出聊天记录的功能就更好了
|
30
opengps 2023-07-20 08:50:23 +08:00
漂亮,微信的臃肿确实不是自带聊天记录管理能解决的,重点是哪些 emo 表情的 data 存储根本清理不掉
|
31
shinsekai 2023-07-20 08:52:07 +08:00
其实借助电脑备份一下聊天记录,卸载后再转回来应该就可以实现同样的效果。另外 iOS 聊天获取可以通过 itunes 备份吧
|
33
allplay 2023-07-20 09:31:36 +08:00 via Android
常规手段操作:备份聊天记录至电脑,只选择你要保存的;卸载微信,清除残余文件;重装微信,把聊天记录恢复过来。
这样确实能消除微信内被秘密备份的不可删除数据,且不必 root 。缺点是每次备份恢复时间稍长,一年弄一次即可。 |
34
thetbw 2023-07-20 09:52:54 +08:00
导出和备份聊天记录感觉用户量更大,还有找到之前删除的好友这种,毕竟后悔药
|
35
lqzhgood 2023-07-20 11:03:10 +08:00
推一下自己写的聊天记录归档工具,可以导出微信记录做冷备份,而且不管用没用到的字段都会导出,确保数据完整
[卖瓜 🍉] Shmily-聊天记录归档 支持 QQ 、Wechat 、SMS 等 https://v2ex.com/t/944851 |
37
ellermister OP @villivateur 之前已经有人做了微信备份聊天记录到文件的项目,可以在 GitHub 搜一下,也是需要 root 。你也可以用我的这个源码改,如果你是只用一次也没必要,可以 dump 出不加密的 DB ,在电脑里随时用 SQL 工具看。
我有想过,弄个服务在 Android 后台,用浏览器打开界面就能搜关键词,搜聊天记录,真 like 搜索,微信现在[牛逼]的搜索功能,明明聊天记录有,就是搜不到,太[牛逼]了。暂时感觉我自己没需求了,懒得搞。 @thetbw 我想不起来主动删除的好友,但是如果是被别人删除的,那么 rcontact 表里就有你想要的,like %关键词% 查找就行。另外还有特别关注、拉黑的好友等,包括你加的所有群的群成员都在里面。 @anjingdexiaocai @allplay 从手机备份到电脑是一种方式,但是依然是不能只备份联系人,不能搜索选择全选的操作。就会导致备份一大堆垃圾数据上去,如果你只有几十个少量联系人愿意手动挑选,那么你确实不需要这种功能。 @shinsekai IOS 备份的也是全量备份,参考上一条,而且我是免费计划用户,只有 5GB ,无法备份。 @yhm2046 把你存储卡的数据导出来到电脑里,你慢慢折腾,网上文章不少,先从解密数据库开始。可以计算 key ,从配置文件找 KEY 和 IMEI ,另外如果你打包的得当,可以在另外一台设备上登录的并拥有完整数据。 我自己已经把微信垃圾清理干净了,备份到电脑,再恢复到全新 iPhone 上,最近会话和好友和聊天记录都在。但失去了好友请求记录,包含你什么时间加的好友,发的什么备注信息,反过来一样,有一个时间线先后信息,辅助记忆。 有点想换回 Android ,虽然感觉少了点什么,但也还能用。 |
38
cheese 2023-07-20 11:48:00 +08:00
Releases 里的安装包无法使用,下载后改成 apk 后缀,手机安装的时候提示安装包损坏
|
39
ellermister OP @cheese 他不是 apk 程序,是命令行交互的程序。你需要在 shell 终端执行。
|
41
wtdd 2023-07-20 13:21:00 +08:00
聊胜于无,看原理,这和 root 之后直接删图片视频等文件夹,区别不大吧
|
42
ellermister OP @wtdd 我的目的是仅删除群的所有记录。另外还要压缩数据库体积。
|
43
huihuiHK 2023-07-20 17:14:56 +08:00
[email protected] 是你嘛?
|
44
ellermister OP @huihuiHK 做咩野?
|
45
yagamil 2023-07-21 02:30:59 +08:00
如果只是删除群的所有记录,按着群,然后直接删除就可以了。
不过实际这样,你把所有群消息删除完了,实际体积还有一部分是有残余的。吐槽下 wx 的架构,这体积占用太恐怖了。 |
46
ellermister OP @yagamil 基本无残留了,你看描述。
|
47
skvi 316 天前 via Android
从 Android 到聊天记录到电脑,一直提示不在同一个网络,macos 中给了 wechat 获取 location 的权限!双端的网络接口都关了 ip tracking ,甚至电脑开热点都不识别!更离谱的是有一次识别出来了,也说不在同一 ssid !
|
48
ellermister OP @skvi mac 不清楚,如果 win 笔记本,试试关闭防火墙。热点好多都不太行,得连局域网 WIFI ,WIFI 别用公司那种,公司那种有可能会开 LAN TO LAN 的防火墙。
|
49
skvi 304 天前 via Android
@ellermister 相同环境,我换 weixin 其他账号可以,wechat 不行,但是我同事 wechat 又可以
|