V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
huihuiHK
V2EX  ›  分享创造

我从根上解决了微信占用手机内存问题

  •  7
     
  •   huihuiHK · 2022-06-23 15:52:35 +08:00 · 6265 次点击
    这是一个创建于 883 天前的主题,其中的信息可能已经有所发展或是发生改变。

    效果图

    由于不会前端,所以前端界面比较丑,不过能看就行。哈哈

    工具地址

    有用的话点个 star ,谢谢 开源地址: https://github.com/greycodee/wechat-backup

    使用流程

    详细说明在: https://greycode.top/posts/android-wechat-bak/

    1. 手机聊天记录备份到电脑,在有 ROOT 权限的手机上登陆微信,电脑点击备份恢复,把聊天记录恢复到有 ROOT 的手机上。(如果没有有 ROOT 权限的手机,建议可以用安卓模拟器)
    2. 收集下面这些数据,然后放在同一个文件夹下:
      • image2 文件夹:里面存放着所有的微信聊天图片,位置在:/data/data/com.tencent.mm/MicroMsg/[32 位字母]/image2
      • voice2 文件夹:里面存放着所有的微信语音,位置在:/sdcard/Android/data/com.tencent.mm/MicroMsg/[32 位字母]/voice2
      • voide 文件夹:里面存放着所有的微信视频,位置在:/sdcard/Android/data/com.tencent.mm/MicroMsg/[32 位字母]/voide
      • avatar 文件夹:里面存放着所有的微信头像,位置在:/data/data/com.tencent.mm/MicroMsg/[32 位字母]/avatar
      • Download 文件夹: 微信的聊天发送的文件存放在这里,位置在:/sdcard/Android/data/com.tencent.mm/MicroMsg/Download
      • EnMicroMsg.db: 微信的数据库文件,位置在:/data/data/com.tencent.mm/MicroMsg/[32 位字母]/EnMicroMsg.db
      • WxFileIndex.db: 微信的文件索引数据库文件,位置在:/data/data/com.tencent.mm/MicroMsg/[32 位字母]/WxFileIndex.db
    3. 获取解密 DB 的密钥。
    4. 进行微信聊天数据 DB 的解密
    5. 转换微信语音
    6. 运行本程序,打开控制台输出的网址,就可以查看你的聊天记录了。

    快速解密微信 DB

    把要解密的微信 DB 所在文件夹挂在到容器的 /wcdb 上面。

    $ docker run --rm -v /Users/zheng/Documents:/wcdb  greycodee/wcdb-sqlcipher -f DB 名字 -k 解密密钥
    
    2022/06/22 05:31:17 开始解密...
    2022/06/22 05:31:28 解密成功: ok
    2022/06/22 05:31:28 明文数据库文件名: EnMicroMsg_plain.db
    

    快速转换微信语音 amr 文件

    把要转换的语音文件夹挂载到容器的 /media 目录上,然后执行下面的命令,就会自动将文件夹里的语音转换成 mp3 格式了。

    $ docker run --rm -v /Users/zheng/Documents/voice2:/media  greycodee/silkv3-decoder
    
    /media/msg_491351061422dbfa9bb0a84104.amr
    -e [OK] Convert /media/msg_491351061422dbfa9bb0a84104.amr To /media/msg_491351061422dbfa9bb0a84104.mp3 Finish.
    
    第 1 条附言  ·  2022-06-24 13:57:48 +08:00

    如果没有有 ROOT 的手机,根据 V 友的说法,使用安卓模拟器的话有一定的封号机率。这个还有一个方法就是使用手机自带的系统备份。感谢 @Muniesa 的方法。

    我自己是miui系统的手机,整理了大致方法如下:

    1. 在手机设置里找到备份功能,然后备份微信应用数据
    2. 备份的数据放在手机的 MIUI/backup/AllBackup/备份的日期/ 下
    3. 里面有三个文件 分别是 .bak .zip .xml 结尾
    4. zip 可以直接解压,然后获取聊天语音和聊天视频等文件
    5. bak 需要使用 HEX 编辑器打开,然后将 41 4E 前的数据删除(就是这个文件的描述数据)。然后保存
    6. 使用 abe 解包工具进行 .bak 文件的解包,开源工具地址:https://github.com/nelenkov/android-backup-extractor
    7. 解压解包后生产的 tar 压缩包,然后从里面可以获取到 DB 等文件(相当于本来要ROOT后才能获取到的这些数据,现在可以直接获取了)
    第 2 条附言  ·  2022-06-24 14:03:57 +08:00
    我这边通过系统备份然后解包-解压后,文件路径在:apps/com.tencent.mm/r/MicroMsg/ 下,大家可以参考一下
    第 3 条附言  ·  2022-06-24 14:13:29 +08:00
    如果通过手机系统自带的备份来获取数据时,解密 DB 的密码可以通过这篇文章的方法一来获取: https://greycode.top/posts/android-wechat-bak/#%E8%8E%B7%E5%8F%96-db-%E8%AE%BF%E9%97%AE%E5%AF%86%E7%A0%81
    54 条回复    2022-07-01 22:37:30 +08:00
    huihuiHK
        1
    huihuiHK  
    OP
       2022-06-23 15:56:18 +08:00
    备份完后就可以清掉手机上的微信数据了
    huihuiHK
        2
    huihuiHK  
    OP
       2022-06-23 15:56:37 +08:00
    释放手机存储空间
    aliezoip
        3
    aliezoip  
       2022-06-23 15:57:52 +08:00 via Android
    牛逼啊!
    2han9wen71an
        4
    2han9wen71an  
       2022-06-23 16:32:27 +08:00
    ios 咋操作?
    NullData
        5
    NullData  
       2022-06-23 16:35:37 +08:00
    牛逼,已经 star 了
    huihuiHK
        6
    huihuiHK  
    OP
       2022-06-23 16:36:22 +08:00
    @2han9wen71an 同样的操作,先聊天记录备份到电脑,然后从电脑备份到有 ROOT 的手机上(或者安卓模拟器上),然后转移上面的几个文件夹和 DB
    huihuiHK
        7
    huihuiHK  
    OP
       2022-06-23 16:37:58 +08:00
    @NullData 谢谢支持
    zytomorrow
        8
    zytomorrow  
       2022-06-23 17:31:40 +08:00
    牛逼,已 start 。
    但我没有 ROOT 的手机,等下用模拟器试试
    ggwangqi
        9
    ggwangqi  
       2022-06-23 19:15:03 +08:00 via iPhone
    解密 DB 的密钥怎么获取?
    neighbads
        11
    neighbads  
       2022-06-24 07:33:12 +08:00 via Android
    太棒了。30 几个 G 微信数据。终于有地方放了
    neighbads
        12
    neighbads  
       2022-06-24 07:40:14 +08:00 via Android
    后面多次备份的文件怎么解决呢。数据好弄。直接合并。db 文件有办法合并吗
    thetbw
        13
    thetbw  
       2022-06-24 09:04:43 +08:00
    nice
    huihuiHK
        14
    huihuiHK  
    OP
       2022-06-24 09:45:27 +08:00 via Android
    @neighbads 建议每次备份后就直接清理微信的数据,节省内存。如果不清除手机微信数据的话,下次备份还是全量备份的,也就是说下次备份 db 会包含本次的数据的。
    huihuiHK
        15
    huihuiHK  
    OP
       2022-06-24 09:53:42 +08:00 via Android
    @neighbads 还有就是多次备份的话,按日期建立文件夹就可以了,每次备份就放到新的文件夹里。后面要看聊天记录的话在我那个代码里改到要查看的文件路径,然后运行程序
    Wdafff
        16
    Wdafff  
       2022-06-24 10:32:36 +08:00
    [如果没有有 ROOT 权限的手机,建议可以用安卓模拟器] 这个操作有可能会封号的,最好还是实体机器
    huihuiHK
        17
    huihuiHK  
    OP
       2022-06-24 10:40:52 +08:00
    @Wdafff 微信现在这么严格的吗😂?
    huihuiHK
        18
    huihuiHK  
    OP
       2022-06-24 10:42:02 +08:00
    @Wdafff 不过备份的话一般都是好几个月或一年备份一次,隔这么久登陆一次模拟器应该没什么大问题吧
    huihuiHK
        19
    huihuiHK  
    OP
       2022-06-24 10:47:44 +08:00
    不过以微信这个尿性,建议大家能不用模拟器就不用模拟器,毕竟微信账户还是挺重要的
    Wdafff
        20
    Wdafff  
       2022-06-24 11:23:45 +08:00
    @huihuiHK #18 毕竟是微信,谁知道呢,还是防着点好
    huihuiHK
        21
    huihuiHK  
    OP
       2022-06-24 11:41:29 +08:00
    @Wdafff 是啊。天下苦微信久已!
    Muniesa
        22
    Muniesa  
       2022-06-24 12:23:54 +08:00 via Android
    这个界面还可以,之前都是直接看数据库😂没有 root 权限的可以试试系统自带的备份,有的系统备份出来就是个压缩包,可以直接把数据复制出来。
    huihuiHK
        23
    huihuiHK  
    OP
       2022-06-24 12:51:22 +08:00
    @Muniesa mac 系统吗?
    huihuiHK
        24
    huihuiHK  
    OP
       2022-06-24 12:53:35 +08:00
    @Muniesa 还是手机自带的设置里的系统备份?
    Muniesa
        25
    Muniesa  
       2022-06-24 13:49:58 +08:00 via Android   ❤️ 1
    @huihuiHK 手机自带的,以前用的 MIUI 和氢 OS 都可以
    huihuiHK
        26
    huihuiHK  
    OP
       2022-06-24 13:58:44 +08:00
    @Muniesa 嗯嗯 ,刚中午试了下,确实可以,已经将方法添加到附加上了。
    neighbads
        27
    neighbads  
       2022-06-24 20:46:03 +08:00
    搞了几个小时才搞下来。太麻烦了

    后面能不能直接从,微信的备份恢复下手呢
    neighbads
        28
    neighbads  
       2022-06-24 21:37:24 +08:00
    数量也显示不太正常....聊天信息只能显示几条。
    huihuiHK
        29
    huihuiHK  
    OP
       2022-06-24 22:21:08 +08:00
    @neighbads 可以试试新方法,直接使用手机自带的系统备份。应该会快一点
    huihuiHK
        30
    huihuiHK  
    OP
       2022-06-24 22:22:36 +08:00
    @neighbads 代码我今天更新了。聊天信息点击上面那条红线可以继续加载的。默认只加载 5 条数据。前端我写的很烂
    huihuiHK
        31
    huihuiHK  
    OP
       2022-06-24 22:24:11 +08:00
    @neighbads 到目前为止的三个方法中,使用手机系统自带的备份功能,然后按照上面的方法进行转移数据,我觉得这是最快的方法了。我现在自己备份的话一套流程下来也就十几分钟就搞定了
    huihuiHK
        32
    huihuiHK  
    OP
       2022-06-24 22:36:27 +08:00
    @neighbads 由于 BAK_0_MEDIA 和 BAK_0_TEXT 是经过特殊加密的,暂时无法解密。所以这个方法暂时无解
    vvjyun318
        33
    vvjyun318  
       2022-06-25 21:09:25 +08:00 via iPad   ❤️ 1
    @huihuiHK 海外 WeChat 用了一次模拟器不到 5 秒就封号,然后找了所有的好友都说不符合条件不予解封,联系客服说按照提示操作
    huihuiHK
        34
    huihuiHK  
    OP
       2022-06-25 21:52:37 +08:00
    @vvjyun318 微信这么狗啊。。
    vvjyun318
        35
    vvjyun318  
       2022-06-25 22:13:17 +08:00 via iPad
    @huihuiHK 就是这么恶心人
    huihuiHK
        36
    huihuiHK  
    OP
       2022-06-25 23:21:24 +08:00
    @vvjyun318 最后解封了没?
    vvjyun318
        37
    vvjyun318  
       2022-06-26 07:24:26 +08:00 via Android
    @huihuiHK 没有,客服让重新注册微信
    gtheone1
        38
    gtheone1  
       2022-06-27 00:50:57 +08:00
    啊明白了,这是一个能在电脑上直接查看已备份内容的工具是吧(我电脑小白)
    huihuiHK
        39
    huihuiHK  
    OP
       2022-06-27 09:58:35 +08:00
    @gtheone1 是的
    xiozf
        40
    xiozf  
       2022-06-27 15:10:37 +08:00
    微信的自定义动图表情,楼主知道在哪个文件夹里吗?总感觉聊天记录里,这个动图占很大空间,想直接删了。
    huihuiHK
        41
    huihuiHK  
    OP
       2022-06-27 16:07:36 +08:00
    @xiozf 应该在 /sdcard/Android/data/com.tencent.mm/MicroMsg/[32 位字母]/emoji 下
    huihuiHK
        42
    huihuiHK  
    OP
       2022-06-27 16:21:44 +08:00
    @xiozf 我看了下,自定义表情大部分是走 cdn 的
    MiracleShadow
        43
    MiracleShadow  
       2022-06-27 17:36:40 +08:00
    点进来之前还以为是”卸载“
    huihuiHK
        44
    huihuiHK  
    OP
       2022-06-27 17:53:28 +08:00
    @MiracleShadow 我也想啊,可是微信在方方面面帮你绑的死死的
    anonymous1024
        45
    anonymous1024  
       2022-06-27 23:59:53 +08:00 via iPhone
    牛逼,明天再看看
    Bronya
        46
    Bronya  
       2022-06-28 17:45:29 +08:00
    厉害了,之前一直想把聊天记录保存起来,这下方便操作了
    huihuiHK
        47
    huihuiHK  
    OP
       2022-06-28 17:59:01 +08:00
    @Bronya 是的 可以直接在本地离线查看聊天记录了
    blankmiss
        48
    blankmiss  
       2022-06-28 20:43:05 +08:00
    完全不想用微信这个勾吧软件 虽然不得不用
    huihuiHK
        49
    huihuiHK  
    OP
       2022-06-28 22:30:48 +08:00
    @blankmiss 是啊,非常难用但是为了生活却不得不用,诶!
    20210610204811
        50
    20210610204811  
       2022-06-29 14:27:21 +08:00
    把博主网站的部分文章看了一遍,内容写的很精炼啊,但是你这个网站在搜索引擎上毫无权重这是为何,是只想默默的记录吗😂
    huihuiHK
        51
    huihuiHK  
    OP
       2022-06-29 15:45:52 +08:00
    @20210610204811 谢谢你的肯定,真是受宠若惊。由于前段时间换了域名,所以现在搜索引擎上记录基本上都没了。然后本人比较懒,所以没搞 seo 优化了。
    shawndev
        52
    shawndev  
       2022-06-30 14:29:14 +08:00
    牛逼,马克。
    laobei521
        53
    laobei521  
       2022-06-30 17:55:59 +08:00
    http://wxbackup.imxfd.com/

    和这个很类似
    FrankHB
        54
    FrankHB  
       2022-07-01 22:37:30 +08:00
    ……你这标题。。我还以为现在微信已经流氓到卸载也需要专用定制方案了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2948 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 51ms · UTC 03:48 · PVG 11:48 · LAX 19:48 · JFK 22:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.