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

Однажды сотрудник принёс телефон 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)


  1. easty
    13.08.2017 17:35
    +3

    Одно не понял, зачем вебсервер? А так давольно интересно, что такими динозаврами еще пользуются, что аж так важны контакты на нём) Хотя еще встречаются персонажи с контактами на симке, так что…


    1. VioletGiraffe
      13.08.2017 18:16
      -1

      Эм? У меня контакты на симке, а что не так?)


      1. easty
        13.08.2017 18:38
        +2

        Ну у симкарты есть ресурс, и они достаточно часто дохнут.
        Я ничего против не имею, но 2017 год на дворе, надо как то двигаться дальше)


        1. VioletGiraffe
          13.08.2017 19:37

          Впервые слышу. Первой симкой пользовался с 2006 по 2016-й; пришлось поменять, когда купил смартфон под micro SIM.


          1. easty
            13.08.2017 19:48
            +1

            Хорошо, что не слышали. Работая в сотовой связи таких случаев предостаточно повстречалось. Приходило куча знакомых с просьбой востановить контакты с симки. Но это было в конце нулевых… за последний год только один обратился))
            Ну не буду с Вами спорить, каждому свое. Я например не представляю работу без фар манагера)


            1. VioletGiraffe
              13.08.2017 20:03

              Я тоже ни в коем случае с вами не спорю, просто удивляюсь :)
              (а у меня вообще файловый менеджер собственной разработки)


          1. vorphalack
            13.08.2017 21:51
            +4

            я вам даже завидую, пожалуй. у вас видимо небыло необходимости в контактах типа Константин Щекочихин-Крестовоздвиженский с пятеркой номеров, двумя почтами и заметкой.


          1. Alexufo
            13.08.2017 22:00
            +1

            надо было обрезать)


            1. VioletGiraffe
              13.08.2017 22:07

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


              1. Alexufo
                13.08.2017 22:12

                да там не разберешься, то на старых симках 4g не работает( это ясно), но чтобы 3g…


            1. dmitryredkin
              13.08.2017 22:33

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


              1. iig
                14.08.2017 11:06

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


          1. volanddd
            14.08.2017 14:03

            Штуки 4 симки сдохли.
            Время жизни было порядка 5 лет 10 лет назад, сейчас больше, так как и ресурс вырос у самих симок и меньше операций записи на них (смс пишутся на телефон, контакты тоже).


          1. BoogieMan75
            14.08.2017 17:57

            У меня симка прожила с 2003 по 2017. При переходе с корпоратива на личный почему то сменили.


        1. lv333
          14.08.2017 01:01

          Никогда еще не видел «убитой» сим карты, а вот убитые телефоны и microSD карты — видел…


          1. burst
            14.08.2017 06:53

            Сим карты умирают. У нас более 50 сим карт, в год 1-2 умрут… Правда телефонная книга обычно всегда остается доступной.


          1. aelaa
            14.08.2017 17:57

            К счастью убитого Google Contacts пока ещё не видел никто)


        1. 9660
          14.08.2017 07:07

          К слову.
          У меня сдохло за 20 лет разными способами около двух десятков телефонов. И только одна симка, которая не позволяла звонить но телефонная книга тем не менее читалась.


        1. x67
          14.08.2017 11:24

          Согласен. И желательно не доверять сохранение важных данных лишь одному сервису. Только недавно гугл потерял все мои пароли. Это не страшно в силу специфики данных (потеря не так страшна, как разглашение, восстановление паролей — вполне детерминированная и достаточно простая процедура). Однако тоже самое могло произойти и с контактами и с файлами на гугл диске и вообще с любым другим облачным сервисом.


        1. herr_kaizer
          14.08.2017 17:34

          Моей симкарте уже 12 лет. Пережила порезку ножницами для вставления во смартфон.


      1. mSnus
        14.08.2017 11:11

        Блаженны те, кто никогда не терял телефон…


    1. Onegai
      14.08.2017 01:01

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


    1. A_Anper
      14.08.2017 01:01

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

      Рекомендую выучить Python, для таких задач он очень хорошо подходит.


    1. klikalka
      14.08.2017 11:12

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

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


  1. instalator
    14.08.2017 01:01
    +1

    А можно было найти такой же второй с дисплеем и пройтись по меню сохранив контакты на сим карту.


    1. K0styan
      14.08.2017 11:14

      Можно и по мануалу попробовать восстановить последовательность шагов для копирования. Мануал в онлайне наверняка есть.


  1. DEM_dwg
    14.08.2017 01:01

    Хммм, обычно у таких динозавров, были программы по синхронизации данных с ПК.
    Я раньше постоянно синхронизировал, свой тел с компом.
    Теперь всё проще, все контакты синхронизируются с гуглом…


    1. Andrusha
      14.08.2017 01:21

      Вообще да, стоило бы начать с мткшного PC Sync Manager или Fly PhoneSuite.


  1. Igor3404391
    14.08.2017 01:01

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


    1. pavelkolodin
      14.08.2017 17:58

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