Слияние / миграция базы данных sms.db sql с iOS 10 на iOS 12 - PullRequest
0 голосов
/ 09 мая 2019

У меня есть sms.db , датированный 2012 годом, на iPhone 5, который до недавнего времени был на iOS 6. После принудительного обновления до iOS10 я с удивлением обнаружил, что база данных sms осталась нетронутой и доступны новой ОС. Теперь мне нужно переместить эту базу данных на iOS 12.

Сначала я просто переместил оригинал sms.db - он был помечен как несовместимый, как показано ниже:

.incompatible10113 (версия клиента iOS 10)

строка, добавляемая к расширению файла

Это было «исправлено» (или я так думал), отредактировав строку ClientVersion непосредственно в свойствах db до 12005 (что я и получил от оригинальной iOS 12 db). Я также переместил разрешения для папок «Вложения», «Черновики» и «Детали».

Операционная система теперь принимает базу данных (например, она не удаляется / не переименовывается), но, похоже, не может прочитать / использовать ее. Я попытался установить разрешения для 0644, 0750 и 0755, а владелец настроен на мобильные устройства.

Основной файл sms.db остается на месте, создается файл sms.db-shm (стандарт 33 КБ), но используется журнал предварительной записи записи db, sms.db-wal , остается равным 0 байт даже после нескольких перезагрузок. Он записывается при получении нового сообщения, а Messages.app отображает только новое сообщение. Попытки поиска в сообщениях показали некоторые старые записи (потенциально кэшированные где-то, кроме / Library / SMS), которые с тех пор исчезли, а также стерли вновь полученные сообщения из представления.

Кто-нибудь знает, есть ли новая схема для sms.db в iOS12, и если да, то как сделать старый db-совместимым? Или как мне объединить эти две базы данных sqlite? Спасибо

1 Ответ

0 голосов
/ 19 мая 2019

не уверен, насколько это случайно, но мне удалось его восстановить:

  • скопировал полную папку SMS 10 iOS (включая файлы базы данных wal / shm)
  • вставьте в только что созданную папку SMS на iOS 12 - переименуйте старую папку SMS в SMSold или что-нибудь более творческое
  • установить разрешения для папки как для исходной папки (владельцы мобильных / мобильных устройств; 644)
  • установить одинаковые разрешения для файлов внутри (особенно для файлов базы данных - sms.db и его приложений)
  • перезагрузись и надейся каким-то образом это сработало. Похоже, что iOS «обновила» саму iOS 10 дБ (свойство ClientVersion теперь 12005), и в главном файле базы данных есть несколько новых таблиц.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...