Восстановление sms.db

Предыстория

Сегодня днем ​​я ответил на текст от моей подруги, а затем, по-видимому, забыл спать с моим телефоном, прежде чем положить его обратно в карман. Когда я вытащил его обратно через несколько минут, мой телефон решил нажать «Изменить-> Очистить все» в разговоре, испарив с ней два года и два телефона, имеющих историю SMS. В то время как у меня есть резервная копия телефона, на данный момент это близко к трем неделям, и есть достаточно солидных дискуссий, которые я бы хотел восстановить; Я уже схватил копию sms.db, но я думаю, что метод, который я использовал, пылесосил файл, поэтому в нем нет мягко удаленных текстов.

Мясо вопроса

У меня есть трехнедельная резервная копия моего sms.db , и у меня есть доступ к дате копии ее sms.db Я бы хотел

  1. экспортировать тексты, которые у нее есть, но я не (легко, по крайней мере, CSV)
  2. измените «перспективную» информацию (поле address поле sent/received/deleted/unknown ), сохраняя метку времени и текст
  3. импортировать / объединить эти новые записи в мою старую sms.db копию sms.db
  4. объедините эту обновленную резервную копию с моим текущим sms.db (необязательно /, похоже, для этого есть онлайн-утилита)

Я действительно не знаю SQL, но хочу учиться; проблема в том, что из того, что я понимаю, таблицы в sms.db стали более взаимозависимыми в течение срока действия ОС, и триггеры теперь вызывают функции C, которые не существуют вне телефона, поэтому не просто позвонить один триггер для нескольких записей. Кто-нибудь знает какие-либо способы обойти эту сложность или даже лучше, какие-либо утилиты, которые уже выяснили, как импортировать отдельные записи в sms.db ?

Редактировать:

Я изучал sms.db , и из того, что я могу сказать, отношения довольно просты:

  • для message , мне нужно в основном убедиться, что ROWID любых добавленных сообщений выше текущего максимального ROWID
  • msg_group содержит message:ROWID последнего сообщения для каждого контакта; Я могу найти правильный address в group_member ; group_member:group_id соответствует msg_group:ROWID
  • msg_group имеет хэш-столбец; это, вероятно, будет самым сложным для обновления, так как я не сразу понимаю, что он обновляет, или какой хэш использовать
  • sqlite_sequence не похоже, что он совсем обновлен; его записи кажутся все меньше, чем фактические ROWID, но я предполагаю, что это означает, что мне не придется много возиться с ним.
  • Я не уверен, что вообще смогу изменить msg_pieces : это таблица, отвечающая за обработку нескольких частей MMS-сообщения.

One Solution collect form web for “Восстановление sms.db”

Эй, ты это выяснил? если у вас нет, я предлагаю взглянуть на http://smsmerge.homedns.org/

Я был в том же положении, что и у вас, но мне повезло, и у меня была более поздняя резервная копия.

Дайте мне знать, если вам нужна рука

  • libsqlite в симуляторе и компиляции iOS
  • Как открыть базу данных sqlite, когда приложение работает в фоновом режиме в ios
  • sqlite3_prepare_v2 / sqlite3_exec
  • База данных в IOS Sqlite3 и db
  • Не удалось создать базу данных SQLite3 с защитой файлов в iOS
  • iPhone iOS: SQLite3 Не удалось получить последнее значение ID в таблице
  • Как создать базу данных sqlite для использования с основными данными?
  • Создание файла базы данных SQLite3 через Objective-C
  • Преобразование NSString в нижние регистры
  • Проблема с ObjectiveC sqlite3
  • Проверить Если столбец уже существует, и если нет Alter Table в sqlite
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.