Skip to content

bgcngm/mtk-tools

Repository files navigation

MTK-Tools by Bruno Martins

MTK unpack and repack scripts

If you are looking for a way to easily unpack / repack boot.img, recovery.img or logo.bin from your MediaTek device, don't look any further. Here you can find my own Perl scripts.

Scripts were first based on the ones available on Android-DLS WiKi, but are now highly modified in order to work with specific MTK boot and recovery images. The scripts fully work with every image from all known MediaTek SoC:

  • MT6516
  • MT65x3 (MT6513 and MT6573)
  • MT65x5 (MT6515 and MT6575)
  • MT6577
  • MT65x2 (MT6572, MT6582 and MT6592)
  • MT6589
  • MT83xx (MT8377 and MT8389)
  • MT6595

Unpack script usage:

Usage: unpack-MTK.pl <infile> [COMMAND ...]
  Unpacks MediaTek boot, recovery or logo images

Optional COMMANDs for boot or recovery images are:

  -info_only
    Display file information only
     (useful to check image information without unpacking)

  -kernel_only [--debug]
    Extract kernel only

  -ramdisk_only [--debug]
    Extract ramdisk only

    (optional argument '--debug' can additionally be used to provide useful
     information for debugging purposes, even while unpacking both kernel
     and ramdisk)

Optional COMMANDs for logo images are:

  -force_logo_res <width> <height>
    Forces file to be unpacked by specifying image resolution (in pixels)
     (only useful when no zlib compressed images are found)

  -invert_logo_res
    Invert image resolution (width <-> height)
     (may be useful when extracted images appear to be broken)
  • Note: for the new platforms requirements, the unpack script will now display the complete information about input image (example shown bellow) and also create an extra file with arguments needed for further repacking.
Input file information (example):

 Header:

  Boot magic:                   ANDROID!
  Kernel size (bytes):          3436480         (0x00346fc0)
  Kernel load address:          0x10008000

  Ramdisk size (bytes):         1989254         (0x001e5a86)
  Ramdisk load address:         0x11000000
  Second stage size (bytes):    0               (0x00000000)
  Second stage load address:    0x10f00000

  Tags address:                 0x10000100
  Page size (bytes):            2048            (0x00000800)
  ASCIIZ product name:          ''
  Command line:                 ''
  ID:                           727cb3e6a37d7973d94f5061a4fb6169a8c4da77

 Other:

  Boot magic offset:            0x00000000
  Base address:                 0x10000000

  Kernel offset:                0x00008000
  Ramdisk offset:               0x01000000
  Second stage offset:          0x00f00000
  Tags offset:                  0x00000100

Repack script usage:

Usage: repack-MTK.pl <COMMAND ...> <outfile>
  Repacks MediaTek boot, recovery or logo images

COMMANDs for boot or recovery images are:

  -boot [--debug] <kernel> <ramdisk-directory>
    Repacks boot image

  -recovery [--debug] <kernel> <ramdisk-directory>
    Repacks recovery image

    (optional argument '--debug' can additionally be used to provide useful
     information for debugging purposes, while repacking)

COMMANDs for logo images are:

  -logo [--no_compression] <logo-directory>
    Repacks logo image

    (optional argument '--no_compression' can be used to repack logo images
     without compression)
  • Note: for the new platforms requirements, repack script now takes into account the file (created when unpacking) containing extra arguments. More information about the built image is now also displayed (example shown bellow).
Build information (example):

 Base address and offsets:

  Base address:                 0x10000000
  Kernel offset:                0x00008000
  Ramdisk offset:               0x01000000
  Second stage offset:          0x00f00000
  Tags offset:                  0x00000100

 Other:

  Page size (bytes):            2048
  ASCIIZ product name:          ''
  Command line:                 ''

Credits:

  • Android-DLS for the initial scripts
  • starix (from forum.china-iphone.ru) for the decryption of logo.bin files structure
  • carliv (from forum.xda-developers.com) for new platform support and new binaries

Support page:

Visit the support page for any questions or comments. Please don't just leech the files and go away. You can easily say thanks just by pressing "Thanks" button on XDA-Developers forum.

Copyright:

Copyright (C) 2012 Bruno Martins (bgcngm@XDA)

You may not distribute nor sell this software or parts of it in Source, Object nor in any other form without explicit permission obtained from the original author.