пост полон технических деталей, поэтому если вы не продвинутый юзер, можете его игнорировать.
дело было в андроиде, но, предположительно, яблочникам тоже пригодится, поэтому отдельной темой, а не в клубочке андроидов.
так получилось, что мой телефон попал в чужие руки и ему сделали сброс на заводское состояние, адресная книга очистилась в ноль.
перед этим девица завела в адресную книгу телефон своей матери, через viber этот номер попал ко мне на планшет, и, в итоге, телефон вернулся ко мне. но это отдельная история.
в общем делайте почаще бэкапы адресной книги, у меня был бэкап полутора-годичной давности, сделанный с помощью программы "Super Backup".
а поелику я в некоторой степени параноик, то адресную книгу в гугли копировать не разрешаю.
контакты за последние полтора года пропали, что обидно.
но, порывшись, в итоге практически все эти контакты удалось восстановить из Viber, который из телефона "копирует" адресную книгу на другие устройства, на которых вы его активировали с привязкой к этому телефону. что собственно и помогло вернуть телефон.
у меня это был планшет андроидный и комп с линуксом. вайбер на планшете успел изрядно "похудеть" в результате манипуляций указанной выше девицы с телефоном, а вот комп "похудеть" не успел.
на телефоне вайбер я не ставил, это важно, так как если его включить до восстановления адресной книги, то "похудеют" все экземпляры вайбера в сети.
итак,
1. файл бэкапа, который делает "Super Backup", ничто иное как .vcf файл, т.е. файл с записями VCARD, например :
Код:
BEGIN:VCARD
VERSION:2.1
X-TIMES_CONTACTED:1
X-LAST_TIME_CONTACTED:1363769916820
N:Alex;Alexandr;;;
FN:Alexandr Alex
TEL;PREF;CELL:+380501234567
END:VCARD
Где поле N - фамилия, имя и отчество, в этом порядке, разделенные точкой с запятой,
а поле FN - имя "визуализации" контакта
там еще есть приколы с обозначением кодировки, если ФИО кириллицей, но вы их легко поймете, позырив свой такой файл
к этому файлу мы вернемся позжее.
2. в линуксе вайбер хранит "свою" адресную книгу в файле ~/.ViberPC/номер_вашего_телефона/viber.db
понятно, что в виндовсе или андроиде место будет отличаться, но если припечет, вы этот файл найдете.
поскольку Mac OS X отличается от линукса, по большому счету, только ядром, некоторыми библиотеками и изрядно обпиленной напильником графической оболочкой, то всё что касается командной строки линукса, с огромной вероятностью, будет работать и в Mac OS X.
в линуксе есть чудная програмулина file
Код:
smile@smile:$ file viber.db
viber.db: SQLite 3.x database
которая уверенно сказала, что viber.db это файл формата базы данных SQLite 3
я воспользовался простейшей утилитой командной строки sqlite3, как ее поставить в своем линуксе вы найдете сами, виндусятники - гугль вам в помощь.
команда
Код:
smile@smile:$ sqlite3 viber.db .dump
выдает дамп базы данных, в которой меня заинтересовали две таблички "Contact" и "ContactRelation".
в первой мы имеем идентификатор контакта и его имя, а во второй - привязку номера телефона к идентификатору контакта
команда
Код:
sqlite3 viber.db 'select Number,FirstName from Contact,ContactRelation where Contact.ContactID=ContactRelation.ContactID'
выдает чудный список в таком виде (номера и фио изменены)
Код:
+380671234567|Ivan Ivanich Ivanov
+380951234567|Ivan Ivanich Ivanov
+380501234567|Петр Петрович Петров
в поле FirstName, как видно, вайбер всовывает целиком поле FN адресной книги.
тут вы уже можете вносить в свой телефон недостающие контакты вручную, но в продолжении, которое воспоследует через какое-то время, я дам программку по гавтоматичному дополнению.