3

我保存了其中所有内容的副本,~/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 分钟,尝试了几种不同的东西(我不会一一列出)。

必须有一种方法可以从我保存的这些文件中恢复我的消息。

4

2 回答 2

8

在用头敲了三天之后-我发现了以下内容:

所有这 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 让我很快恢复了我的历史。

想我会分享,虽然这是一个旧线程。

于 2017-05-18T16:59:18.867 回答
2

Apple 讨论论坛上有一些有用的信息。

基本上,只需要移动一个备份的~Library/Messages文件夹来替换新的空~Library/Messages文件夹。

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

https://discussions.apple.com/thread/5378830

于 2014-12-23T03:25:48.000 回答