Skip to content
moonheart edited this page Aug 19, 2018 · 1 revision

Note: This is for recently released Xiaomi devices.

logo.img File Structure

File header

It's a byte array that seems always start at 0x4000 (offset0), but values were different in different devices.

4C 4F 47 4F 21 21 21 21 21 00 00 00 63 08 00 00
13 15 00 00 82 16 00 00 F9 45 00 00 42 08 00 00
B0 0C 00 00 6F 01 00 00 77 2F 00 00 77 2F 00 00
LOGO!!!!!...c.......‚...ùE..B...°...o...w/..w/..

And Five BMP Images

start offsets were different in different devices.

  • 01.bmp: 0x4200
  • 02.bmp: 0x10C600
  • 03.bmp: 0x2A2600
  • 04.bmp: 0x2D0400
  • 05.bmp: 0x8BF200

How to get these parameters?

offset0

Use any Hex viewer to look for string LOGO and get its offset.

offset1 - offset5

Thanks for the awesome Firmware Analysis Tool binwalk, I can check how files were organized in logo.img.

Use the following command to look into logo.img.

binwalk --dd='.*' MIMAX3_logo.img

output:

DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
16896         0x4200          PC bitmap, Windows 3.x format,, 1080 x 334 x 24
1099264       0x10C600        PC bitmap, Windows 3.x format,, 558 x 992 x 24
2762240       0x2A2600        PC bitmap, Windows 3.x format,, 178 x 350 x 24
2950144       0x2D0400        PC bitmap, Windows 3.x format,, 1080 x 1920 x 24
9171456       0x8BF200        PC bitmap, Windows 3.x format,, 1080 x 1920 x 24

These are the offset1 - offset5.

Also 5 bmp images were extracted into _MIMAX3_logo.img.extracted directory. Edit these files as you like and you can generate your own logo.img.

Clone this wiki locally