Восстановление списка контактов из телефона Samsung Galaxy S4


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

 

К сожалению, в описываемом случае все было сложнее. Во-первых, телефон уже был отремонтирован «ЦУМовскими» умельцами. А именно, был заменён родной NAND чип(жёсткий диск, как его любят называть) на новый — всё чинно, благородно. Я даже немного удивился, когда увидел, что IMEI на обратной стороне телефона соответствует IMEI по *#06#.  Телефон работает, но он абсолютно чист, как младенец. И собственно говоря, поэтому к нам и пришёл его владелец,  с аккуратно отпаянным чипом в целлофановом пакетике.  Соответственно, маппить было нечего, и склонировать тоже. Предстояла распайка чипа на специальное устройство для чтения, заказчик был предупреждён, что нам неизвестно его ли это чип на самом деле, и может возникнуть момент, когда данные считаны, но оказывается, что данные не принадлежат заказчику, то есть перепутали или просто отдали чужой NAND чтобы отвязаться. А проделанную работу придётся оплатить. Заказчик долго размышлял, нужен ли ему список контактов по цене нового телефона, но в итоге решился.

flash 2

Дело в том, что в случае с такими телефонами единственная надежда –  прочитать данные напрямую с памяти и расшифровать полученный дамп. Естественно, сама процедура имеет несколько этапов: выпаивание микросхемы(за нас это уже сделали наши друзья); подготовка микросхемы к чтению (обычно заключается в полировке контактов и выравнивании их высоты); собственно чтение; дочитывание областей с битовыми ошибками; исправление битовых ошибок, которые не удалось дочитать (механизмы ЕСС); расшифровка дампа и реконструкция оригинальной файловой системы; извлечение данных. Выглядит сложно, не так ли?

 

В нашем же случае оказалось еще сложнее. На стадии вычитывания чипа оказалось, что он сильно пострадал и поменяли его не зря. «Отдался» чип — один единственный раз и как оказалось не без ошибок, потому что после монтирования образа выяснилось, что часть данных не работает, и как назло именно злополучный файл контактов. Однако, была и хорошая новость: чип памяти — принадлежал именно нашему заказчику, так как были найдены его фотографии, но фото нашего заказчика не интересовали, ему нужны только контакты.  Было принято решение перечитать микросхему, но дальше-больше,и чип памяти начал постоянно «отваливаться» через 10-20 секунд после подачи питания. Что только не пробовали — повышали, понижали напряжения, подпаивали разные подтяжки в виде резисторов, паяли конденсаторы — но всё одно чип больше не хотел  читаться.

P70213-173607-07

В телефонах на базе Android контакты хранятся в виде файла базы данных, очень похожего по структуре на базы данных MySQL в  файле contacts.db2 ,обычно  конвертировать  его в понятный любому приложению формат VCF (виртуальная визитная карта)   при помощи бесплатного он-лайн конвертера www.gsmrecovery.ru не составляет труда. Но в нашем случае конвертер выдавал нам только часть контактов на букву А, и затыкался. Нужно было что-то решать! В сети есть целая куча сопособов решения проблемы —  используя Plugin SQL для браузера FireFox, есть способ с использованием  специального скрипта под Linux, однако, все эти способы не давали результата. «По-лёгкому»  кейс сделать не получилось и заказчик был предупреждён, что нужно разбираться, и скорее всего писать программку для «ремонта» битого файла контактов.  Разница между двумя форматами значительная: файл базы данных может занимать мегабайты, тогда как виртуальная визитная карта – килобайты. Соответственно, масса данных в файлах базы данных контактов для использования не нужна. Мы решили, что раз она не нужна – то надо ее убрать, и посмотреть, что останется. Таким образом, была поставлена задача: написать программу, которая конвертирует контакты из базы данных в визитную карточку, убрав все «лишнее».  Анализ обоих форматов (все гениальное просто – создали в телефоне контакты, скопировали базу данных и средствами телефона сохранили те же контакты в виде визитной карты) показал, что первоначальный файл придется «парсить». Что и было сделано.

Screenshot from 2017-02-13 12-51-31

 

Компактный парсер распаковывает базу данных, производит поиск всех таблиц, сравнивает их и вычленяет номера телефонов и присвоенные им имена. Отладка программы заняла два часа – по истечении их нам удалось конвертировать «больной» файл базы данных в формат виртуальной визитки. Как ни странно, но список контактов оказался довольно внушительным: больше 500 штук. Клиент был очень доволен – с его слов, контакты почти все, «может, штук пять не хватает».

P.S. Отдельное спасибо Кирсанову Антону за помощь в написании программы для восстановлении данных с данного девайса.

 

Видео об аналогичном случае будет на нашем канале в YouTube! Если у вас есть вопросы, или нужна помощь пишите на info@911.kg, постараюсь помочь!

-5%