Home

Awesome

pymdt

Manipulation of mdt firmware images

Examples

Build an elf from a splitted mdt image:

#unsplit.py:

from pymdt import *

# unsplit the dump into an elf
ELFFile.from_mdt('dump/modem','build/modem.elf')

$ ls dump/

modem.mdt modem.b01 modem.b02 [etc...]

$ mkdir build

$ ./unsplit.py

$ ls build

modem.elf

Patch an elf, then split it

#patch.py

from pymdt import *

# load an elf
elf = ModemFirmware('build/modem.elf')

# Patch something
elf.put_data(0x89000000, "BREAKTHEBOOT")

# Fix the hash segment
elf.regen()

# Save the patched elf
elf.write("build/modem_patched.elf")

# Save the splitted image
elf.write_mdt("build/modem")

$ ls build/

modem.elf

$ ./patch.py

$ ls build/

modem.elf modem_patched.elf modem.mdt modem.b01 modem.b02 [etc...]