从 chat.db 恢复 OS X iMessages 历史记录

nod*_*ase 3 sqlite macos restore imessage

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

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

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

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

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

fav*_*tti 7

在我的头上敲了 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
Run Code Online (Sandbox Code Playgroud)

如您所见,这是一个称为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
Run Code Online (Sandbox Code Playgroud)

啊哈!片刻。退出 Messages、替换文件、kill对 PID 进行处理IMDPersistenceAgent然后启动 Messages 让我立即恢复了我的历史记录。

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