我有一个 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文件中有一些新表。