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:
- MT65x3 (MT6513 and MT6573)
- MT65x5 (MT6515 and MT6575)
- MT65x2 (MT6572, MT6582 and MT6592)
- MT83xx (MT8377 and MT8389)
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: ''
- 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
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 (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.