Receiving phone book entries from a mobile phone without a display
Once an employee brought a Fly Ezzy Trendy 3 phone.

(According to his version, the phone started first, but the employee turned out to be stronger) The
realization that the loser remained with the loser did not come right away. And after some time, the employee turned to the nearest service with a request to extract the phone book.
This could have ended the story, but for some reason the service was denied to him under the pretext that they do not have a specialized program for this phone.
Checked, it seems to turn on. In any case, the keyboard backlight lights up.
We climb into Google and find out that the phone runs on a MediaTek MT6261D processor. We look at what service programs are used to work with devices based on such processors. We select MAUI META and at the same time download the driver package for devices based on MTK processors.
Googled these options:
- Most advanced user interface
- Multimodal Affective User Interface
- Multimedia Application User Interface
But this is all the lyrics.
We install drivers, launch MauiMETA, select the FAT Editor, connect the phone and see the file system of the phone.

We copy the contents of NVRAM \ NVD_DATA to the computer and begin to study it intensely. It turned out that we need only two files MP0C_003 (names are stored here) and MP0H_006 (phone numbers are stored here). Also, there was a file with sms MPA3_001, but we did not need them.
We will use Frhed. We determine the size of the records in these files.

(here you can clearly see where the data ends and empty records go)
Record format in a file with names:
- 44 bytes per record
- 2 last bytes under the checksum
- records themselves in UTF-16LE
Record format in a file with phones:
- 38 bytes per record
- each entry starts at 0x00 0x00 0x01 0x00
- 2 last bytes under the checksum
- ASCII entries themselves
Now it would be nice to somehow automate the process of extracting phone numbers and names from files. Since there was a web server at hand and I can do a bit of php, sketched a script, uploaded the files to the server. The result is a file with records of this kind: contact name, phone number . Then imported into the table.
The satisfied owner of the phone left with a list of his contacts in the sunset.
PS Out of sporting interest, I decided to check whether the last two bytes of each record really are some kind of checksum, and if so, what is its algorithm.
I read about CRC16 type 16-bit checksums and unsuccessfully selected the one that would suit me. I got tired and decided to use the
It turned out to be a little more complicated: the odd bytes are summed separately and the result is compared with the first byte of the checksum, the even bytes separately with the second. Summation occurs without overflow.
I hope that this post will help someone, but someone will simply amuse me.