Merging/migrating sms.db sql 数据库从 iOS 10 到 iOS 12
Merging/migrating sms.db sql database from iOS 10 to iOS 12
我有一个 sms.db 可以追溯到 2012 年 iPhone 5,直到最近 iOS 6。强制升级到 iOS10,我惊讶地发现短信数据库完好无损并且可以被新的 OS 访问。我现在需要将此数据库移动到 iOS 12.
首先我简单地移动了原来的 sms.db - 它被标记为不兼容如下:
.incompatible10113 (iOS 10 client version)
正在将字符串添加到文件扩展名
那是 "fixed"(或者我是这么认为的),方法是直接在数据库属性中将 ClientVersion 字符串编辑为 12005(这是我从原始文件中得到的) iOS 12 分贝)。我还移动了附件、草稿和部件文件夹设置权限。
OS 现在接受数据库(因为它没有得到 deleted/renamed),但似乎无法读取 it/use。我已经尝试将权限设置为 0644、0750 和 0755,并且所有者设置为手机。
主 sms.db 文件保留在原位,创建 sms.db-shm 文件(标准33kb),但数据库的使用中的预写日志 sms.db-wal 即使在多次重新启动后仍保持为 0 字节。它在收到新消息时写入,并且 Messages.app 仅显示新消息。尝试在消息中搜索显示了一些较旧的条目(可能缓存在 /Library/SMS 以外的其他地方),这些条目已经消失,并且也从视图中删除了新收到的消息。
谁知道 sms.db 在 iOS12 中是否有新的架构,如果有,如何使旧数据库兼容?或者,我将如何合并这两个 sqlite 数据库?谢谢
不确定这有多少是偶然的,但我设法恢复了它:
- 复制了完整的 iOS 10 个 SMS 文件夹(包括 wal/shm 数据库文件)
- 粘贴到 iOS 12 上新创建的 SMS 文件夹中 - 将旧的 SMS 文件夹重命名为 SMSold 或更有创意的名称
- 将文件夹的权限设置为原始文件夹(mobile/mobile 所有者;644)
- 对里面的文件设置相同的权限(尤其是 db 文件 - sms.db 及其附件)
- 重新启动并希望
不知何故,这奏效了。
iOS 似乎有 "upgraded" iOS 10 db 本身(ClientVersion 属性 现在是 12005),并且主 db 文件中有一些新表。
我有一个 sms.db 可以追溯到 2012 年 iPhone 5,直到最近 iOS 6。强制升级到 iOS10,我惊讶地发现短信数据库完好无损并且可以被新的 OS 访问。我现在需要将此数据库移动到 iOS 12.
首先我简单地移动了原来的 sms.db - 它被标记为不兼容如下:
.incompatible10113 (iOS 10 client version)
正在将字符串添加到文件扩展名
那是 "fixed"(或者我是这么认为的),方法是直接在数据库属性中将 ClientVersion 字符串编辑为 12005(这是我从原始文件中得到的) iOS 12 分贝)。我还移动了附件、草稿和部件文件夹设置权限。
OS 现在接受数据库(因为它没有得到 deleted/renamed),但似乎无法读取 it/use。我已经尝试将权限设置为 0644、0750 和 0755,并且所有者设置为手机。
主 sms.db 文件保留在原位,创建 sms.db-shm 文件(标准33kb),但数据库的使用中的预写日志 sms.db-wal 即使在多次重新启动后仍保持为 0 字节。它在收到新消息时写入,并且 Messages.app 仅显示新消息。尝试在消息中搜索显示了一些较旧的条目(可能缓存在 /Library/SMS 以外的其他地方),这些条目已经消失,并且也从视图中删除了新收到的消息。
谁知道 sms.db 在 iOS12 中是否有新的架构,如果有,如何使旧数据库兼容?或者,我将如何合并这两个 sqlite 数据库?谢谢
不确定这有多少是偶然的,但我设法恢复了它:
- 复制了完整的 iOS 10 个 SMS 文件夹(包括 wal/shm 数据库文件)
- 粘贴到 iOS 12 上新创建的 SMS 文件夹中 - 将旧的 SMS 文件夹重命名为 SMSold 或更有创意的名称
- 将文件夹的权限设置为原始文件夹(mobile/mobile 所有者;644)
- 对里面的文件设置相同的权限(尤其是 db 文件 - sms.db 及其附件)
- 重新启动并希望 不知何故,这奏效了。 iOS 似乎有 "upgraded" iOS 10 db 本身(ClientVersion 属性 现在是 12005),并且主 db 文件中有一些新表。