我在 ~/Library/Messages/ 中保存了所有内容的副本,其中包括一个名为Attachments 充满了一堆子目录,其中包含我曾经附加到消息的所有文件(图像、文档、电影等),以及三 (3) 个名为:

  • chat.db(大约 20 MB 文件大小),
  • chat.db-shm (33 KB) 和
  • chat.db-wal (565 KB)。

  • 我打开了很大的 chat.db 文件,它在 SQLite 数据库中包含了我的所有消息。我知道这个文件包含重建我的 iMessage 历史记录所需的所有信息,我只是不确定如何说服 iMessages.app 这样做。

    我已经在这里讨论了大约 60 分钟,尝试了几种不同的方法(我不会列出每一种)。

    一定有办法从我保存的这些文件中恢复我的消息。

    最佳答案

    在我的头上敲了 3 天后 - 我发现了以下内容:

    所有这 3 个文件都保留了您在文件中拥有的内容的索引。所以删除损坏的文件和/或只是恢复这 3 个文件的备份应该已经完成​​了。但它没有。替换这些文件后,我尝试重新启动消息应用程序一千次,但无济于事。直到我决定运行 lsof 以查看实际使用 chat.db 的内容。令我惊讶的是,它不是 Messages 应用程序:

    [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 的进程。正在寻找那个进程:
    [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
    

    啊哈!片刻。退出 Messages,替换文件,在 kill 的 PID 上执行 IMDPersistenceAgent,然后启动 Messages 立即让我恢复了我的历史记录。

    以为我会分享,尽管这是一个旧线程。

    关于macos - 从 chat.db 恢复 OS X iMessages 历史记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27142623/

    10-12 22:57