从iOS 10到iOS 12合并/迁移SMS.DB SQL数据库



我有一个 sms.db 可以追溯到2012年的iPhone 5,直到最近在iOS 6上。惊讶地发现新操作系统的SMS数据库保持完整并可以访问。我现在需要将此DB移至iOS 12。

首先,我简单地移动了原始 sms.db - 它被标记为不兼容:

.compatible10113(iOS 10客户端版本(

字符串被添加到文件扩展名

通过直接在DB属性中编辑 clientversion 字符串到12005(这是我从原始iOS 12 dB中获得的内容(,这是"固定"(或我认为是这样(的。我还移动了附件,草稿和零件文件夹设置权限。

OS现在接受DB(如在IN中,它不会被删除/重命名(,但是似乎无法阅读/使用它。我已经尝试将权限设置为0644、0750和0755,所有者设置为移动设置。

sms.db 文件停留在适当的位置,创建了 sms.db-shm 文件(标准33kb(,但是使用中的写入log即使在重新启动后,DB, sms.db-wal ,仍处于0字节。它将写入收到新消息的时候,并将其写入消息。AppApp仅显示新消息。尝试在消息中搜索的尝试显示了一些较旧的条目(可能在/库/SMS以外的其他地方缓存(,这些条目已消失,并且从视图中擦除了新收到的消息。

有人会知道 sms.db 是否有新的架构,如果是这样,如何使旧的db兼容?另外,我将如何合并这两个SQLite数据库?谢谢

不确定其中多少是偶然的,但是我设法还原了:

  • 复制完整的iOS 10 SMS文件夹(包括WAL/SHM数据库文件(
  • 粘贴到iOS 12上的新鲜创建的SMS文件夹中 - 将旧的SMS文件夹重命名为Smsold或更具创意的东西
  • 将权限设置在文件夹上的权限(移动/移动所有者; 644(
  • 在内部文件(尤其是DB文件-SMS.DB及其附录(上设置相同的权限
  • 重新启动和希望不知何故,这起作用了。iOS似乎已"升级" iOS 10 dB本身(Clientversion属性现在为12005(,并且主DB文件中有一些新表。

最新更新