Восстановление 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-сообщения.

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

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

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

  • iOS sqlite нет такой функции: ошибка ACOS
  • Swift Framework - Как импортировать sqlite3.h в файл зонтика
  • SQLite step () возвращает SQLITE_ROW, даже если таблица пуста
  • Копирование таблицы в один бит на другой db
  • iOS Sqlite3 SQLITE_ERROR
  • Ошибка приложения с сообщением о сбое при обновлении базы данных SQLite
  • Есть ли эквивалент sqlite .dump в объекте-c?
  • Шаги по созданию реляционной базы данных (sqlite) в быстрой
  • отладка заблокированной базы данных sqlite3
  • Процедура библиотеки SQLite3 вызвана из последовательности
  • Параметры guarded_open_np
  • Interesting Posts

    Циркуляр #import Reference

    Сохранение состояния сцены приложения iOS

    Как группировать ячейки с помощью UICollectionReusableView (с использованием JSON)

    iOS Убедитесь, что документы открыты перед доступом

    почему звук, искажающий искажение при использовании AVAssetReader со звуковой очередью

    iAds: отображение собственных объявлений, когда didFailToReceiveAdWithError

    Как программно отключить видеозапись iOS 8 в Mac Yosemite?

    Поддерживает ли iOS 7 изображение iTunesArtwork без альфы, без закругленных углов и без расширения файла?

    Travis-CI с: ОШИБКА: не удается найти схемы

    Входные элементы iOS 7, перемещающие фиксированные позиционированные элементы

    Поиск атрибута NSAttributedString ниже позиции крана представления

    Получите код ответа HTTP из каждого запроса UIWebView

    GKTurnBased Информация о пользователе

    Отменить разворот от кнопки навигации в Swift

    Все проекты RestKit не создаются при архивировании

    Давайте будем гением компьютера.