我在 ~/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/