Как извлечь SMS из файла резервной копии SMS HTC One ICS?

У меня есть HTC One V, и я сделал резервную копию своих SMS с помощью приложения для обмена сообщениями телефона (которое является частью стандартного ПЗУ ICS) на SD-карту. Полученная резервная копия представляет собой файл с именем SD_20121221_448193_0, который хранится на SD-карте в /sms_backup.

После этого я обновился до неофициального Cyanogenmod 10 и не вижу в приложении для обмена сообщениями, которое поставляется с CM10, никаких опций для резервного копирования или восстановления SMS.

Как восстановить мои резервные копии сообщений? В качестве альтернативы, как мне извлечь их из этого файла резервной копии или преобразовать в другой формат? (Я попытался открыть файл с помощью текстового редактора, и он выглядит как двоичный файл, я также попытался открыть его с помощью браузера SQLite, но он говорит, что это не база данных SQLite. Так что, если честно, я не знаю формат файла, и было бы здорово, если бы кто-нибудь хотя бы сказал мне, в каком формате должен быть этот файл...)

Вы можете определить тип файла, посмотрев на заголовок файла. Если вы работаете на машине с Linux, есть помощник: просто позвоните file SD_20121221_448193_0, и он сообщит вам тип файла. Скорее всего, это будет сжатый XML. Таким образом, в Windows вы можете попробовать открыть его с помощью WinZip — если повезет, это просто .gzсжатый (GZip) XML.
Выполнение «файла SD_20121221_448193_0» в Linux выдало: «SD_20121221_448193_0: данные». И не удалось открыть его как архив, ни с помощью файлового ролика в Ubuntu, ни с помощью 7zip в Windows...
Итак, если вы откроете его с помощью какого-либо редактора/просмотрщика (самый простой: head -n 1 SD_20121221_448193_0), есть ли какой-либо читаемый контент в пределах первых нескольких символов?
Я выполнил это и получил странный вывод: ����t
"Странный вывод" можно было ожидать, так как файл является двоичным. Вот почему я попросил «читаемую часть». Чтобы привести пример: .jpgфайлы имеют «JFIFF» в первой строке. Если ваши смс не слишком секретный материал, вы могли бы выложить их куда-нибудь для скачивания, потом зайти в чат и мы проверим дальше?
Хорошо, я сейчас в чате...

Ответы (1)

Как мы проверили в чате, файл не был (как первоначально ожидалось) сжатым XML в каком-либо известном формате, поэтому, похоже, нет простого способа прочитать содержимое этого файла. Что оставляет вам несколько вариантов:

  1. перепрошейте стоковое изображение на свое устройство, импортируйте резервную копию, а затем используйте хорошее приложение для резервного копирования, такое как SMS Backup & Restore, для резервного копирования ваших SMS. После этого восстановите текущее ПЗУ и импортируйте его с помощью того же приложения.
    Это всегда должно работать (и сработало в случае с OP), но требует некоторых усилий, так как нужно прошить устройство еще как минимум два раза (на сток и обратно). Прежде чем сделать это, подумайте о том, чтобы сделать резервную копию, если вы уже выполнили некоторые работы по настройке / настройке в своем текущем ПЗУ.
  2. Аналогично: используйте эмулятор Android (из SDK или Jar of Beans ), загрузите ту же версию Android, которая была на вашем устройстве ранее, импортируйте резервную копию и используйте одно из упомянутых приложений, чтобы экспортировать ее из эмулятора, как а также импортировать его на свое устройство.
    Примечание: это может работать только для «Обычного ванильного Android», так как эмулятор, скорее всего, не будет поддерживать вещи, специфичные для устройства (или производителя). Если, конечно, не существует эмулятора, поддерживающего образы для конкретных устройств. В случае с OP это не сработало, так как рассматриваемое приложение было привязано к материалам HTC Sense.

К сожалению, нам не удалось определить используемый формат файла. Для полноты мы попробовали еще одну вещь:

Если доступна полная резервная копия Nandroid, базу данных SMS можно найти /data/data/com.android.providers.telephony/databases/mmssms.dbи изучить с помощью любого внешнего интерфейса SQLite (рекомендуется графический интерфейс: SQLiteman ). К сожалению, в данном случае база данных была пуста из-за вайпа, происходящего при разблокировке устройства.

К сожалению, второй вариант не работает, потому что эмулятор поддерживает запуск простых образов Android (без надстроек, таких как пользовательский интерфейс HTC sense), поэтому я не смог запустить приложение для обмена сообщениями, которое поставлялось с телефоном, на эмуляторе :(
Я боялся чего-то подобного. Так у вас получилось с первым вариантом?
Ага, перепрошил и смог экспортировать СМС...
@Lawand Tnx за отзыв! Обновил мой ответ соответственно.
@Izzy .. У меня такая же проблема, когда я экспортировал смс со старого HTC, а этого телефона сейчас нет. И не могу открыть экспортированные смс на моем новом телефоне Samsung. Можете ли вы предложить что-нибудь?
@Garry, к сожалению, не зная, что вы использовали для резервного копирования. И даже тогда я не уверен. Я предлагаю вам задать новый вопрос (ссылка здесь и указать, что вы прочитали это, указав, почему это не работает для вас), указать, что вы использовали для резервного копирования, а также марку, модель и версию Android устройства. затем. Это должно дать нам некоторые ориентиры для работы.