Получение записей телефонной книги с мобильного телефона без дисплея

Это скорее развлекательная история для тех, кто так же, как и я, не является специалистом в телефонах и восстановлении данных.

Однажды сотрудник принёс телефон Fly Ezzy Trendy 3.

image
(по его версии телефон начал первый, но сотрудник оказался сильнее)

Осознание того, что телефонная книга осталась у побеждённого наступило не сразу. И через некоторое время сотрудник обратился в ближайший сервис с просьбой извлечь телефонную книгу.

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

Проверили, вроде включается. Во всяком случае, загорается подсветка клавиатуры.

Лезем в гугл и узнаём, что телефон работает на процессоре MediaTek MT6261D. Смотрим какие сервисные программы используются для работы с устройствами на базе таких процессоров. Выбираем MAUI META и заодно качаем пакет драйверов для устройств на базе процессоров MTK.

Тут я заинтересовался названием программы
И если META это Mobile Engineering Testing Architecture, как следует из найденой документации, то с MAUI не совсем понятно.

Нагуглил вот такие варианты:

  • Most Advanced User Interface
  • Multimodal Affective User Interface
  • Multimedia Application User Interface

Но это всё лирика.

Ставим драйвера, запускаем MauiMETA, выбираем FAT Editor, подключаем телефон и видим файловую систему телефона.

image

Копируем на компьютер содержимое NVRAM\NVD_DATA и начинаем усиленно его изучать. Оказалось, что нам нужны всего два файла MP0C_003 (здесь хранятся имена) и MP0H_006 (здесь хранятся номера телефонов). Так же, там был файл с смсками MPA3_001, но они нам были не нужны.

Будем использовать Frhed. Определяем размеры записей в этих файлах.

image
(вот здесь хорошо видно, где заканчиваются данные и идут пустые записи)

Формат записи в файле с именами:

  • 44 байта на одну запись
  • 2 последних байта под контрольную сумму
  • сами записи в UTF-16LE

Формат записи в файле с телефонами:

  • 38 байт на одну запись
  • каждая запись начинается с 0x00 0x00 0x01 0x00
  • 2 последних байта под контрольную сумму
  • сами записи в ASCII

Теперь было бы неплохо как-то автоматизировать процесс извлечения из файлов номеров телефонов и имён. Поскольку под рукой был вёб-сервер и я немного могу в php, набросал скрипт, закинул файлы на сервер. В результате получился файл с записями такого вида: имя контакта, номер телефона. Дальше импортировали в таблицу.

Довольный владелец телефона ушёл со списком своих контактов в закат.

P.S. Из спортивного интереса решил проверить действительно ли последние два байта каждой записи являются какой-то контрольной суммой и если да, то каков её алгоритм.

Читал про 16-битные контрольные суммы типа CRC16 и безуспешно подбирал ту, которая подошла бы мне. Запарился и решил использовать «помощь зала» «звонок другу», который предположил, что всё намного проще и там может использоваться простая сумма всех байт записи.

Оказалось немного сложнее: нечётные байты суммируются отдельно и результат сравнивается с первым байтом контрольной суммы, чётные отдельно — со вторым. Суммирование происходит без учёта переполнения.

Простенький скрипт
<?php

$fd1 = fopen("MP0C_003", "rb") or die();
$fd2 = fopen("MP0H_006", "rb") or die();

while(!feof($fd1))
{
// Name file
  $str = fread($fd1, 44);

  $data = substr($str, 0, -2);
  echo iconv("utf-16le", "utf-8", $data).",";

// Number file
  $str = fread($fd2, 38);

  $data = substr($str, 0, -2);
  echo $data."\n";
}

?>


Проверка контрольных сумм на примере файла с именами
<?php

$fd1 = fopen("MP0C_003", "rb") or die();

while(!feof($fd1))
{
  $str = fread($fd1, 44);

  $cs1 = 0;
  $cs2 = 0;

  for($i = 0; $i < 42; $i++)
  {
    if($i%2)
      $cs1 = ($cs1 + ord($str[$i]))%256;
    else
      $cs2 = ($cs2 + ord($str[$i]))%256;
  }

  if($cs1 == ord($str[43]) && $cs2 == ord($str[42]))
    echo "Checksum is OK\n";
  else
    echo "Checksum mismatch\n";
}

?>


Надеюсь, что кому-то эта заметка поможет, а кого-то просто позабавит.
Метки:
Поделиться публикацией
Комментарии 31
  • +3
    Одно не понял, зачем вебсервер? А так давольно интересно, что такими динозаврами еще пользуются, что аж так важны контакты на нём) Хотя еще встречаются персонажи с контактами на симке, так что…
    • –1
      Эм? У меня контакты на симке, а что не так?)
      • +2
        Ну у симкарты есть ресурс, и они достаточно часто дохнут.
        Я ничего против не имею, но 2017 год на дворе, надо как то двигаться дальше)
        • 0
          Впервые слышу. Первой симкой пользовался с 2006 по 2016-й; пришлось поменять, когда купил смартфон под micro SIM.
          • +2
            Хорошо, что не слышали. Работая в сотовой связи таких случаев предостаточно повстречалось. Приходило куча знакомых с просьбой востановить контакты с симки. Но это было в конце нулевых… за последний год только один обратился))
            Ну не буду с Вами спорить, каждому свое. Я например не представляю работу без фар манагера)
            • 0
              Я тоже ни в коем случае с вами не спорю, просто удивляюсь :)
              (а у меня вообще файловый менеджер собственной разработки)
            • +4
              я вам даже завидую, пожалуй. у вас видимо небыло необходимости в контактах типа Константин Щекочихин-Крестовоздвиженский с пятеркой номеров, двумя почтами и заметкой.
              • +1
                надо было обрезать)
                • 0
                  Не хотел связываться с этой рискованной процедурой. Но если бы я знал, что мою раритетную симку отберут… :)
                  • 0
                    да там не разберешься, то на старых симках 4g не работает( это ясно), но чтобы 3g…
                  • 0

                    Один мой не слишком Айтишный приятель обрезал как раз симку со всеми контактами :) Не сам разумеется, в салоне связи. Симка оказалась 90х годов, с большим чипом. Некоторые номера восстанавливал по детализации звонков :)

                    • 0

                      "Специалисты" в салонах те еще… Как-то понадобилась эта операция… Зашел в пафосный салон с белой техникой, они не глядя оценили услугу в $2. В салоне от оператора связи просто поменяли старую карту на новую.

                  • 0
                    Штуки 4 симки сдохли.
                    Время жизни было порядка 5 лет 10 лет назад, сейчас больше, так как и ресурс вырос у самих симок и меньше операций записи на них (смс пишутся на телефон, контакты тоже).
                    • 0
                      У меня симка прожила с 2003 по 2017. При переходе с корпоратива на личный почему то сменили.
                    • 0
                      Никогда еще не видел «убитой» сим карты, а вот убитые телефоны и microSD карты — видел…
                      • 0
                        Сим карты умирают. У нас более 50 сим карт, в год 1-2 умрут… Правда телефонная книга обычно всегда остается доступной.
                        • 0
                          К счастью убитого Google Contacts пока ещё не видел никто)
                        • 0
                          К слову.
                          У меня сдохло за 20 лет разными способами около двух десятков телефонов. И только одна симка, которая не позволяла звонить но телефонная книга тем не менее читалась.
                          • 0
                            Согласен. И желательно не доверять сохранение важных данных лишь одному сервису. Только недавно гугл потерял все мои пароли. Это не страшно в силу специфики данных (потеря не так страшна, как разглашение, восстановление паролей — вполне детерминированная и достаточно простая процедура). Однако тоже самое могло произойти и с контактами и с файлами на гугл диске и вообще с любым другим облачным сервисом.
                            • 0
                              Моей симкарте уже 12 лет. Пережила порезку ножницами для вставления во смартфон.
                            • 0
                              Блаженны те, кто никогда не терял телефон…
                            • 0

                              Зачем веб-сервер? Ну написано же, что он уже был, так что использовали то, что есть

                              • 0
                                автор умеет только php и не умеет запускать его в консоли, я на первом курсе универа тоже так делал.

                                Рекомендую выучить Python, для таких задач он очень хорошо подходит.
                                • 0
                                  В консоли не так удобно смотреть результаты )
                                • 0
                                  У меня контакты на симках. Двух. Если аппарат позволяет, то стараюсь и на телефоне копии делать.
                                  Сейчас основным аппаратом хороший двухчимочный «фонарик» с большой батарейкой и физической клавиатурой. Без синхронизации контактов (но переносить контакты на ПК, в принципе, можно). Смартфон, в основном, для интернета и мессенджеров. Но большая часть контактов есть и на нём, на всякий случай…
                                  Большинство важных номеров помню наизусть.
                                  Телефоны у меня выходят из строя чаще чем симки, некоторым из которых уже по 7 и больше лет (вообще, только одна симка умерла смертью храбрых, продержавшись много лет). Разве что староростелекомовскую пришлось поменять, дабы 4G работал.

                                  Но я все равно всем рекомендую хранить важные контакты и смски где-нибудь в отдельном файлике или приложении. В запароленном виде, если данные конфиденциальные.
                                • +1
                                  А можно было найти такой же второй с дисплеем и пройтись по меню сохранив контакты на сим карту.
                                  • 0
                                    Можно и по мануалу попробовать восстановить последовательность шагов для копирования. Мануал в онлайне наверняка есть.
                                  • 0
                                    Хммм, обычно у таких динозавров, были программы по синхронизации данных с ПК.
                                    Я раньше постоянно синхронизировал, свой тел с компом.
                                    Теперь всё проще, все контакты синхронизируются с гуглом…
                                    • 0
                                      Вообще да, стоило бы начать с мткшного PC Sync Manager или Fly PhoneSuite.
                                    • 0

                                      У нормальных сервисных центров уже есть готовые программные решения для извлечения пользовательских данных из телефонов

                                      • 0
                                        Нормальности не существует.

                                      Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.