Macos 从chat.db还原OS X iMessages历史记录

Macos 从chat.db还原OS X iMessages历史记录,macos,sqlite,restore,imessage,Macos,Sqlite,Restore,Imessage,我保存了~/Library/Messages/中所有内容的副本,其中包括一个名为 附件包含一系列子目录,其中包含邮件中所附的所有我的文件(图像、文档、电影等),以及三(3)个文件,名为: chat.db(大约20 MB的文件大小) chat.db shm(33 KB),以及 chat.dbwal(565kb) 我打开了一个很大的chat.db文件,其中包含了SQLite数据库中的所有消息。我知道这个文件包含重建我的iMessage历史记录所需的所有信息,我只是不知道如何说服iMessages.a

我保存了
~/Library/Messages/
中所有内容的副本,其中包括一个名为
附件
包含一系列子目录,其中包含邮件中所附的所有我的文件(图像、文档、电影等),以及三(3)个文件,名为:

  • chat.db
    (大约20 MB的文件大小)
  • chat.db shm
    (33 KB),以及
  • chat.dbwal
    (565kb)
  • 我打开了一个很大的
    chat.db
    文件,其中包含了SQLite数据库中的所有消息。我知道这个文件包含重建我的iMessage历史记录所需的所有信息,我只是不知道如何说服iMessages.app这样做

    我已经做了大约60分钟了,尝试了几种不同的方法(我不会一一列举)


    一定有办法从我保存的文件中恢复我的邮件

    苹果论坛上有一些有用的信息

    基本上,只需移动已备份的
    ~库/Messages
    文件夹即可替换新的空
    ~库/Messages
    文件夹

    可能是
    chat.db
    chat.db shm
    chat.db wal
    文件通过按键等链接在一起,这可能是iMessages不接受更改的原因


    在我的头撞了它三天后,我发现了以下几点:

    所有这3个文件都保存着你在档案中拥有的东西的索引。因此,删除损坏的文件和/或只是恢复这3个文件的备份就可以了。但事实并非如此。在替换这些文件后,我尝试重新启动Messages应用程序一千次,但都没有成功。直到我决定运行
    lsof
    以查看实际使用的是什么
    chat.db
    。令我惊讶的是,这不是短信应用程序:

    [none-none][18:42:24] vlazarenko@alluminium (~/Library/Messages)$ lsof -n | grep chat.db
    IMDPersis 1655 vlazarenko  txt       REG                1,3      32768 107632436 /Users/vlazarenko/Library/Messages/chat.db-shm
    IMDPersis 1655 vlazarenko    4u      REG                1,3     309032 107632435 /Users/vlazarenko/Library/Messages/chat.db-wal
    IMDPersis 1655 vlazarenko    5u      REG                1,3       4096 107632432 /Users/vlazarenko/Library/Messages/chat.db
    IMDPersis 1655 vlazarenko    6u      REG                1,3      32768 107632436 /Users/vlazarenko/Library/Messages/chat.db-shm
    
    如您所见,这是一个名为
    IMDPersis
    something.的过程。。寻找那个:

    [none-none][18:57:10] vlazarenko@alluminium (~/Library/Messages)$ ps -ef | grep IMDPersis
      501  1655     1   0  6:48PM ??         0:00.11 /System/Library/PrivateFrameworks/IMDPersistence.framework/XPCServices/IMDPersistenceAgent.xpc/Contents/MacOS/IMDPersistenceAgent
    
    哈哈!片刻。退出消息,替换文件,在
    imdpersistenceageant
    的PID上执行
    kill
    ,然后启动消息,我很快就恢复了历史记录


    我想与大家分享一下,尽管这是一个老话题。

    我尝试了10种不同的解决方案,但都没有结果。事实上,在最后一次尝试之后,我放弃了……我开始积累我当前的消息,几天后我重新启动了我的系统,当它重新启动时,我的最新消息消失了,我不得不重新开始!我只是移动了整个文件夹,似乎对我来说还可以。我遵循了推荐的程序,即在打开iMessages之前重新启动。我投票将这个问题作为离题题题结束,因为它应该是开着的