Search
Write a publication
Pull to refresh

Сказ о том, как восстановить удаленные контакты из Iphone. Моя версия квеста

Началось с того, что коллега на работе сказал, что не может разобраться с SQL файлом. Я, будучи в этом более-менее разбирающимся, предложил помощь.

Выяснилось, что он перед продажей на mac book удалил все контакты, что сказалось через icloud и на iphon'е.
Первый достойный вариант, попавшийся ему на просторах интернета был соседский по ветке.
Пройдя тот самый квест до пункта 6 (Натыкаемся на файл содержащий нечто типа) он столкнулся с проблемами.

Первое и основное, у него отсеилось более ста файлов и каждый из них смотреть — как-то накладно. Я скопировал эти файлы себе и принялся за изучение этой же статьи.

Скажу сразу, что вариант с SQLexpert и прочими читалками sql не прокатывал. Почему — толком не знаю. То ли виной 64х битная ОС, то ли кривые руки, но ни на одной машине и программе прочитать этот файл корректно не получалось.

Пришлось искать другие пути. Зацепился я за то, что было написано в статье чуть ниже, а именно:

Открываем её в SQLexpert, в окно запроса вводим SELECT * FROM ZWACONTACT as a LEFT OUTER JOIN ZWAPHONE as b on b.[ZCONTACT]=a.[Z_PK]


Глядя на это, ясно, что файл должен содержать имя таблицы «ZWACONTACT», что я, собственно, и стал искать по всем файлам средствами midnight commander'a.
Тут же был найден файл весом 204Кб. Открыв его, я нашел искомую строку…

image

… а так же, все телефоны…

image

… и стало ясно, что это он.

Далее, необходимо было его прочитать как базу данных. В начале самого файла было написано «SQLite format 3». Формат очевиден. На помощь пришла программка Sqliteman.
Файл
171b11a9861861624f4681d61751ca7d6c7a2bf7

был переименован в
1.sqlite3

для читабельности программой. Открылся он на ура! Очень порадовало, что все контакты на месте и прекрасно сохранили свои параметры и доп. поля.
Введя в ней указанный выше SQL запрос, ней все было достаточно ясно:

image

Далее, полученную информацию надо было выгрузить в читабельный файл и загрузить в сам телефон. Спустя пол часа неудачного ковыряния различного хлама, нашлось решение: можно выгрузить только что созданные контакты из телефона с помощью Contacts Kit в xls формат и привести к такому же виду данные из Sqliteman, ну а потом просто обратно импортировать в телефон.

Для корректного формата, выгруженного из телефона…

image

… пишем следующий запрос в sql lite:

SELECT a.ZFIRSTNAME, a.ZFULLNAME, 'mobile', b.ZPHONE, b.ZLABEL FROM ZWACONTACT as a LEFT OUTER JOIN ZWAPHONE as b on b.[ZCONTACT]=a.[Z_PK]


… и получаем данные в виде:

image

Потом совмещаем новые данные с выгруженными в один файл и льем обратно в мобильник с пунктом «marge», тем самым говоря, что одинаковые имена с разными телефонами надо совмещать, т.е. несколько контактов у одного человека. Осталось только порадоваться, попивая кофе.

Но, как говорится, без ложки дёгтя никуда:

все контакты были сохранены в исходном файле в виде
«Имя», «полное имя»(содержащее в одной строке полностью ФИО), прочие данные.

А в экспортированном из телефона новые контакты были вида
«Имя», «Фамилия», прочие данные.

По сему пришлось сохранять данные в таком виде:
«Имя», №полное имя (ФИО)", прочие данные.

Далее на телефоне уже можно ручками все подправить.

На этом, все. Всем удачных окончаний квестов!
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.