Example #1
0
    patcher.nopout((0x080499e2 + 0x14))
    patcher.nopout((0x08049ca8 + 0x10))
    patcher.nopout((0x08049ca8 + 0x12))
    patcher.nopout((0x0804a134 + 0x10))
    patcher.nopout((0x0804a134 + 0x12))
    patcher.nopout((0x0804abc0 + 0x10))
    patcher.nopout((0x0804abc0 + 0x12))

    # Color Code check

    # remove volume screen
    patcher.nopout((0x0801FED2))
    patcher.nopout((0x0801FED2 + 0x2))

    # freeing ~200k for code patches
    patcher.ffrange(0x0809aee8, 0x080cf754)

    # This mirrors the RESET vector to 0x080C020, for use in booting.
    patcher.setword(0x0800C020, patcher.getword(0x0800C004), 0x00000000)

    # This makes RESET point to our stub below.
    patcher.setword(0x0800C004, 0x0809af00 + 1)

    # This stub calls the target RESET vector,
    # if it's not FFFFFFFF.
    patcher.sethword(0x0809af00, 0x4840)
    patcher.sethword(0x0809af02, 0x2100)
    patcher.sethword(0x0809af04, 0x3901)
    patcher.sethword(0x0809af06, 0x4508)
    patcher.sethword(0x0809af08, 0xd100)
    patcher.sethword(0x0809af0a, 0x483c)
Example #2
0
    patcher.nopout((0x804b9fc + 0x2))

    #Marks the version as "md380tools"
    patcher.setwstring(0x080d0b6c, "MD380Tools Ver.")

    #Fix some bad grammar
    patcher.setwstring(0x080f9a94, "No Fix")

    #Change the manufacturer string. *Never Worked...*
    #    patcher.setstring(0x080f9588,
    #                      "Travis Goodspeed KK4VCZ");
    #Change the device name.
    patcher.setstring(0x080d0eb4, "Patched MD-380/390G")

    # freeing ~200k for code patches
    patcher.ffrange(0x0809bda8, 0x80d0614)

    #This mirrors the RESET vector to 0x080C020, for use in booting.
    patcher.setword(0x0800C020, patcher.getword(0x0800C004), 0x00000000)

    #This makes RESET point to our stub below.
    patcher.setword(0x0800C004, 0x0809bf00 + 1)

    # app start @  0x0809c000
    patcher.sethword(0x0809bf00, 0x4840)
    patcher.sethword(0x0809bf02, 0x2100)
    patcher.sethword(0x0809bf04, 0x3901)
    patcher.sethword(0x0809bf06, 0x4508)
    patcher.sethword(0x0809bf08, 0xd100)
    patcher.sethword(0x0809bf0a, 0x483c)
    patcher.sethword(0x0809bf0c, 0x4700)
Example #3
0
    # patcher.nopout((0x08028F88 + 0x2))
    # patcher.nopout((0x08028F88 + 0x4))
    #patcher.nopout((0x08028F88 + 0x6))
    # patcher.nopout((0x08028F88 + 0x8))
    # patcher.nopout((0x08028F88 + 0xA))

    #test site roaming
    #patcher.sethword(0x0801C774, 0x2001)
    #record
    #patcher.sethword(0x0801C7A8, 0x2001)
    #Morola/PC-Audio
    #patcher.sethword(0x0801C6FE, 0x2001)
    #patcher.sethword(0x0801C718, 0x11B0) #fix a typo..

    # freeing ~200k for code patches
    patcher.ffrange(0x80986E8, 0x80CCF54)

    # This mirrors the RESET vector to 0x080C020, for use in booting.
    patcher.setword(0x0800C020, patcher.getword(0x0800C004), 0x00000000)

    # This makes RESET point to our stub below.
    patcher.setword(0x0800C004, 0x08098700 + 1)

    # This stub calls the target RESET vector,
    # if it's not FFFFFFFF.
    patcher.sethword(0x08098700, 0x4840)
    patcher.sethword(0x08098702, 0x2100)
    patcher.sethword(0x08098704, 0x3901)
    patcher.sethword(0x08098706, 0x4508)
    patcher.sethword(0x08098708, 0xd100)
    patcher.sethword(0x0809870a, 0x483c)
Example #4
0
    patcher.setwstring(0x080d0b6c,
                       "MD380Tools Ver.")

    # Fix some bad grammar
    patcher.setwstring(0x080f9a94,
                       "No Fix")

    # Change the manufacturer string. *Never Worked...*
    #    patcher.setstring(0x080f9588,
    #                      "Travis Goodspeed KK4VCZ");
    # Change the device name.
    patcher.setstring(0x080d0eb4,
                      "Patched MD-380/390G")

    # freeing ~200k for code patches
    patcher.ffrange(0x0809bda8, 0x80d0614)

    # This mirrors the RESET vector to 0x080C020, for use in booting.
    patcher.setword(0x0800C020,
                    patcher.getword(0x0800C004),
                    0x00000000)

    # This makes RESET point to our stub below.
    patcher.setword(0x0800C004,
                    0x0809bf00 + 1
                    )

    # app start @  0x0809c000
    patcher.sethword(0x0809bf00, 0x4840)
    patcher.sethword(0x0809bf02, 0x2100)
    patcher.sethword(0x0809bf04, 0x3901)
Example #5
0
    patcher.sethword(0x0803ee88,0xe7d6); #Jump back to matched condition.
    
    patcher.export("prom-public.img");
    
    # This should be changed to only show missed calls for private
    # calls directed at the user, and to decode others without
    # triggering a missed call.
    patcher.nopout(0x0803ef10,0xd11f);  #Matches all private calls.
    patcher.export("prom-private.img");

    #Everything after here is experimental.
    #Everything after here is experimental.
    #Everything after here is experimental.
    
    #This cuts out the Chinese font, freeing ~200k for code patches.
    patcher.ffrange(0x809c714,0x80d0f80);
    
    #This mirrors the RESET vector to 0x080C020, for use in booting.
    patcher.setword(0x0800C020,
                    patcher.getword(0x0800C004),
                    0x00000000);

    #This makes the app its own sideload.  Don't ship with it!
    #patcher.setword(0x0809D004,
    #                patcher.getword(0x0800C020),
    #                0xFFFFFFFF);

    #This makes RESET point to our stub below.
    patcher.setword(0x0800C004,
                    0x0809cf00+1
    );
Example #6
0
    patcher.nopout((0x080499e2 + 0x14))
    patcher.nopout((0x08049ca8 + 0x10))
    patcher.nopout((0x08049ca8 + 0x12))
    patcher.nopout((0x0804a134 + 0x10))
    patcher.nopout((0x0804a134 + 0x12))
    patcher.nopout((0x0804abc0 + 0x10))
    patcher.nopout((0x0804abc0 + 0x12))

    # Color Code check

    # remove volume screen
    patcher.nopout((0x0801FED2))
    patcher.nopout((0x0801FED2 + 0x2))

    # freeing ~200k for code patches
    patcher.ffrange(0x0809aee8, 0x080cf754)

    # This mirrors the RESET vector to 0x080C020, for use in booting.
    patcher.setword(0x0800C020,
                    patcher.getword(0x0800C004),
                    0x00000000)

    # This makes RESET point to our stub below.
    patcher.setword(0x0800C004,
                    0x0809af00 + 1)

    # This stub calls the target RESET vector,
    # if it's not FFFFFFFF.
    patcher.sethword(0x0809af00, 0x4840)
    patcher.sethword(0x0809af02, 0x2100)
    patcher.sethword(0x0809af04, 0x3901)
Example #7
0
    #patcher.export("prom-colors.img");

    # This should be changed to only show missed calls for private
    # calls directed at the user, and to decode others without
    # triggering a missed call.
    patcher.nopout(0x0803ef10, 0xd11f)
    #Matches all private calls.
    #patcher.export("prom-private.img");

    #Everything after here is experimental.
    #Everything after here is experimental.
    #Everything after here is experimental.

    #This cuts out the Chinese font, freeing ~200k for code patches.
    patcher.ffrange(0x809c714, 0x80d0f80)

    #This mirrors the RESET vector to 0x080C020, for use in booting.
    patcher.setword(0x0800C020, patcher.getword(0x0800C004), 0x00000000)

    #This makes RESET point to our stub below.
    patcher.setword(0x0800C004, 0x0809cf00 + 1)

    #This stub calls the target RESET vector,
    #if it's not FFFFFFFF.
    patcher.sethword(0x0809cf00, 0x4840)
    patcher.sethword(0x0809cf02, 0x2100)
    patcher.sethword(0x0809cf04, 0x3901)
    patcher.sethword(0x0809cf06, 0x4508)
    patcher.sethword(0x0809cf08, 0xd100)
    patcher.sethword(0x0809cf0a, 0x483c)