Котов Юрий (krokokot) wrote,

Восстановление удаленных контактов, заметок и sms в iPhone

Сегодня решил нетривиальную задачу.

Было: айфон 3G, с которого удалено ~700 контактов; резервной копии/синхронизации нет.

Стало: контакты восстановлены; потеряно не более 3% информации. Для контактов с несколькими номерами телефонов не сохранилось информации о типе номера (рабочий/домашний/сотовый). Сами номера сохранились.

Бонус: восстановлены заметки (notes).

Если кому-то понадобится - обращайтесь: iphone@safeit.biz


Контакты в iPhone хранятся в файле /var/root/Library/AddressBook/AddressBook.sqlitedb (или /var/mobile/Library/AddressBook/AddressBook.sqlitedb). Сей файл, как видно из расширения, есть не что иное, как БД SQLite. Полноценная такая БД, с таблицами, триггерами и т.п.

Достать этот файл из "тушки" очень просто - в процессе резервного копирования средствами iTunes (не путать с синхронизацией) он помещается в %APPDATA%\Apple Computer\MobileSync\Backup\[UID резервной копии из 40 символов]\31bb7ba8914766d4ba40d6dfb6113c8b614be442.mddata

SQLite, как приличная СУБД, дорожит скоростью работы и при удалении данных не затирает их, а просто помечает занятые ими страницы БД как свободные. Размер файла при этом не уменьшается, новые данные записываются в свободные страницы, ну, все как обычно. Если после удаления данных в БД ничего не записывать (не создавать новые контакты, не пытаться восстановить данные из резервной копии и т.д.) - теоретически можно восстановить содержимое БД на момент "до удаления".

Ваш покорный слуга осуществил сию теоретическую возможность.

Аналогичные БД используются в iPhone для хранения заметок (notes) и текстов смс. Выводы делайте сами.

:-)
Tags: инфобез, сделал сам
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your IP address will be recorded  

  • 70 comments
Previous
← Ctrl← Alt
Next
Ctrl →Alt →
Previous
← Ctrl← Alt
Next
Ctrl →Alt →