From 47681943eccd0b479095e9ddc2d16f679fc8dd80 Mon Sep 17 00:00:00 2001 From: Luxferre <3335173-suborg@users.noreply.gitlab.com> Date: Sat, 18 Dec 2021 14:20:30 +0200 Subject: [PATCH] initial --- .gitignore | 2 + README.md | 43 ++++++ fdls/sc6531efm/nor_fdl.bin | Bin 0 -> 30156 bytes fdls/sc6531efm/nor_fdl1.bin | Bin 0 -> 7080 bytes fdls/sc770x/fdl1.bin | Bin 0 -> 7880 bytes fdls/sc770x/fdl2.bin | Bin 0 -> 57496 bytes fdls/ums9117/fdl1.bin | Bin 0 -> 32596 bytes fdls/ums9117/fdl2.bin | Bin 0 -> 75540 bytes unicmd.py | 265 ++++++++++++++++++++++++++++++++++++ unidump.py | 202 +++++++++++++++++++++++++++ 10 files changed, 512 insertions(+) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 fdls/sc6531efm/nor_fdl.bin create mode 100644 fdls/sc6531efm/nor_fdl1.bin create mode 100644 fdls/sc770x/fdl1.bin create mode 100644 fdls/sc770x/fdl2.bin create mode 100644 fdls/ums9117/fdl1.bin create mode 100644 fdls/ums9117/fdl2.bin create mode 100644 unicmd.py create mode 100644 unidump.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e0e8c99 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +__pycache__ +.DS_Store diff --git a/README.md b/README.md new file mode 100644 index 0000000..4ac29f2 --- /dev/null +++ b/README.md @@ -0,0 +1,43 @@ +# UniDump: an opensource Unisoc/Spreadtrum phone flash reader + +## Dependencies + +Python 3.8+ and PyUSB. + +## Usage + +Run `python unidump.py -h` to see all parameters. But there are several typical scenarios that UniDump officially supports. + +**Note**: you need to hold a bootkey pressed when connecting the device for it to be detected correctly. This key can vary across devices. Typically it's Call, Soft Left, Soft Right, Center, 9 or #, but it can be anything else. + +### SC6531E/F/M + +This is the default target for UniDump, FDLs for it are shipped in the repo and you don't need to configure anything else. + +For SC6531E, firmware is usually 4MB long, so you just need to run `python unidump.py your-output-file.bin`. + +For SC6531F or SC6531M where firmware can be larger, you need to pass in the length. As with any integer parameter here, you can pass it in hexadecimal format as well. + +E.g. for CAT B26 (bootkey is `#`): `python unidump.py -l 0x6b7000 b26.bin` + +### UMS9117/UMS9117L (NOT SUPPORTED YET) + +For these 4G chipsets you need to use your own FDLs (although you **may** try the ones shipped with UniDump) and the following addresses: 0x6200 for FDL1, 0x80100000 for FDL2. + +E.g. for Nokia 225 4G (if you're in the UniDump directory): `python unidump.py -fdl1 fdls/ums9117/fdl1.bin -addr1 0x6200 -fdl2 fdls/ums9117/fdl2.bin -addr2 0x80100000 225.bin` + +### SC7701/SC7702/SC7703 (NOT SUPPORTED YET) + +First, for these 3G chipsets you need to use your own FDLs (although you **may** try the ones shipped with UniDump) and the following addresses: 0x40000000 for FDL1, 0x0 for FDL2. + +E.g. for Nokia 3310 3G (if you're in the UniDump directory): `python unidump.py -fdl1 fdls/sc770x/fdl1.bin -addr1 0x40000000 -fdl2 fdls/sc770x/fdl2.bin -addr2 0 3310-3g.bin` + +Second, these phones are connected in a different way: disconnect the cable, remove the battery, run the command, connect the cable, hold the bootkey and then insert the battery. + +### SC6531D and lower + +For now, SC6531DA and other single-FDL variants of SC6531 chipset are not supported. + +## Credits + +Created by Luxferre in 2021. All files except the FDL blobs are public domain. diff --git a/fdls/sc6531efm/nor_fdl.bin b/fdls/sc6531efm/nor_fdl.bin new file mode 100644 index 0000000000000000000000000000000000000000..b2e9096b1b735e4302749efe4df5912ffc6be4d5 GIT binary patch literal 30156 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 literal 0 HcmV?d00001 diff --git a/fdls/sc6531efm/nor_fdl1.bin b/fdls/sc6531efm/nor_fdl1.bin new file mode 100644 index 0000000000000000000000000000000000000000..87a0748e8e7952365759d3ec594887b714f4905e GIT binary patch literal 7080 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 literal 0 HcmV?d00001 diff --git a/fdls/sc770x/fdl1.bin b/fdls/sc770x/fdl1.bin new file mode 100644 index 0000000000000000000000000000000000000000..72a006d5f4b3b261df00719005c95a246e01598d GIT binary patch literal 7880 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

~9BhNW+Ok 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 8 + lsb = crc & 255 + for c in data: + x = (0xFF & c) ^ msb + x ^= (x >> 4) + msb = (lsb ^ (x >> 3) ^ (x << 4)) & 255 + lsb = (x ^ (x << 5)) & 255 + return (msb << 8) + lsb + +def crc16_fdl(data: bytes): # used in FDL1/2 mode + crc = 0 + data = bytearray(data) + l = len(data) + for i in range(0,l,2): + if i+1 == l: + crc += data[i] + else: + crc += (data[i]<<8)|data[i+1] + crc = (crc >> 16) + (crc & 0xffff) + crc += (crc >> 16) + return ~crc & 0xffff + +def hdlc_encode(data, fdl = False, nocrc = False): + if nocrc: + crc = 0 + else: + if fdl: + crc = crc16_fdl(data) + else: + crc = crc16_xmodem(data) + out = [] + for c in data: + if c == 0x7e or c == 0x7d: + out.append(0x7d) + out.append(c ^ 0x20) + else: + out.append(c) + out = bytes(out) + return b'\x7e' + out + pack('>HB', crc, 0x7e) + +def hdlc_decode(data, fdl = False, ignoreCrc = False): # HDLC bug in Unisoc: CRC is also encoded!!! + rawdata = bytearray(data[1:-1]) + out = [] + esc = False + for c in rawdata: + if esc: + if c == 0x5e or c == 0x5d: + out.append(c ^ 0x20) + esc = False + else: + raise Exception("Invalid escape sequence while decoding HDLC frame") + elif c == 0x7d: + esc = True + else: + out.append(c) + decoded = bytes(out) + rawcrc = unpack('>H', decoded[-2:])[0] + decoded = decoded[:-2] + if fdl: + calc_crc = crc16_fdl(decoded) + else: + calc_crc = crc16_xmodem(decoded) + if ignoreCrc: # don't hard assert but return a special error code on CRC mismatch + if rawcrc != calc_crc: + return UNICMD_CRC_MISMATCH + else: + assert rawcrc == calc_crc, "Actual CRC16 value %04x does not match calculated value %04x after decoding HDLC frame" % (rawcrc, calc_crc) + return decoded + +def resp_decode(data, fdl = False, ignoreCrc = False): + rawdata = hdlc_decode(data, fdl, ignoreCrc) + if rawdata != UNICMD_CRC_MISMATCH: + respcode, resplen = unpack('>HH', rawdata[:4]) + content = rawdata[4:4+resplen] + return respcode, resplen, content + else: + return UNICMD_CRC_MISMATCH, 0, None + +# Unisoc command set constants + +FLAG_BYTE = 0x7E + +BSL_PKT_TYPE_MIN = 0 + +# PC -> phone commands + +BSL_CMD_CONNECT = BSL_PKT_TYPE_MIN + +BSL_CMD_START_DATA = 1 +BSL_CMD_MIDST_DATA = 2 +BSL_CMD_END_DATA = 3 +BSL_CMD_EXEC_DATA = 4 + +BSL_CMD_NORMAL_RESET = 5 +BSL_CMD_READ_FLASH = 6 +BSL_CMD_READ_CHIP_TYPE = 7 +BSL_CMD_READ_NVITEM = 8 +BSL_CMD_CHANGE_BAUD = 9 +BSL_CMD_ERASE_FLASH = 0xa +BSL_CMD_REPARTITION = 0xb +BSL_CMD_READ_FLASH_TYPE = 0xc +BSL_CMD_READ_FLASH_INFO = 0xd +BSL_CMD_READ_SECTOR_SIZE = 0xf + +BSL_CMD_READ_START = 0x10 +BSL_CMD_READ_MIDST = 0x11 +BSL_CMD_READ_END = 0x12 + +BSL_CMD_KEEP_CHARGE = 0x13 +BSL_CMD_EXTTABLE = 0x14 +BSL_CMD_READ_FLASH_UID = 0x15 +BSL_CMD_READ_SOFTSIM_EID = 0x16 +BSL_CMD_POWER_OFF = 0x17 +BSL_CMD_CHECK_ROOT = 0x19 +BSL_CMD_READ_CHIP_UID = 0x1a +BSL_CMD_ENABLE_WRITE_FLASH = 0x1b +BSL_CMD_ENABLE_SECUREBOOT = 0x1c +BSL_CMD_READ_RF_TRANSCEIVER_TYPE = 0x24 +BSL_CMD_CHECK_BAUD = FLAG_BYTE + +BSL_DDR_VERIFY = 0x26 + +BSL_CMD_END_PROCESS = 0x7F + +# Phone -> PC responses + +BSL_REP_TYPE_MIN = 0x80 +BSL_REP_ACK = BSL_REP_TYPE_MIN +BSL_REP_VER = 0x81 +BSL_REP_INVALID_CMD = 0x82 +BSL_REP_UNKNOWN_CMD = 0x83 +BSL_REP_OPERATION_FAILED = 0x84 +BSL_REP_NOT_SUPPORT_BAUDRATE = 0x85 + +BSL_REP_DOWN_NOT_START = 0x86 +BSL_REP_DOWN_MULTI_START = 0x87 +BSL_REP_DOWN_EARLY_END = 0x88 +BSL_REP_DOWN_DEST_ERROR = 0x89 +BSL_REP_DOWN_SIZE_ERROR = 0x8A +BSL_REP_VERIFY_ERROR = 0x8B +BSL_REP_NOT_VERIFY = 0x8C + +BSL_PHONE_NOT_ENOUGH_MEMORY = 0x8D +BSL_PHONE_WAIT_INPUT_TIMEOUT = 0x8E + +BSL_PHONE_SUCCEED = 0x8F +BSL_PHONE_VALID_BAUDRATE = 0x90 +BSL_PHONE_REPEAT_CONTINUE = 0x91 +BSL_PHONE_REPEAT_BREAK = 0x92 + +BSL_REP_READ_FLASH = 0x93 +BSL_REP_READ_CHIP_TYPE = 0x94 +BSL_REP_READ_NVITEM = 0x95 + +BSL_REP_INCOMPATIBLE_PARTITION = 0x96 +BSL_REP_UNKNOWN_DEVICE = 0x97 +BSL_REP_INVALID_DEVICE_SIZE = 0x98 +BSL_REP_ILLEGAL_SDRAM = 0x99 +BSL_WRONG_SDRAM_PARAMETER = 0x9A +BSL_REP_READ_FLASH_INFO = 0x9B +BSL_REP_READ_SECTOR_SIZE = 0x9C +BSL_REP_READ_FLASH_TYPE = 0x9D +BSL_REP_READ_FLASH_UID = 0x9E +BSL_REP_READ_SOFTSIM_EID = 0x9F + +BSL_ERROR_CHECKSUM = 0xA0 +BSL_CHECKSUM_DIFF = 0xA1 +BSL_WRITE_ERROR = 0xA2 +BSL_CHIPID_NOT_MATCH = 0xA3 +BSL_FLASH_CFG_ERROR = 0xA4 +BSL_REP_DOWN_STL_SIZE_ERROR = 0xA5 +BSL_REP_PHONE_IS_ROOTED = 0xA7 +BSL_REP_SEC_VERIFY_ERROR = 0xAA +BSL_REP_READ_CHIP_UID = 0xAB +BSL_REP_NOT_ENABLE_WRITE_FLASH = 0xAC +BSL_REP_ENABLE_SECUREBOOT_ERROR = 0xAD +BSL_REP_FLASH_WRITTEN_PROTECTION = 0xB3 +BSL_REP_FLASH_INITIALIZING_FAIL = 0xB4 +BSL_REP_RF_TRANSCEIVER_TYPE = 0xB5 + +BSL_REP_UNSUPPORTED_COMMAND = 0xFE +BSL_REP_LOG = 0xFF +BSL_PKT_TYPE_MAX = 0x100 + +BSL_UART_SEND_ERROR = 0x101 +BSL_REP_DECODE_ERROR = 0x102 +BSL_REP_INCOMPLETE_DATA = 0x103 +BSL_REP_READ_ERROR = 0x104 +BSL_REP_TOO_MUCH_DATA = 0x105 +BSL_USER_CANCEL = 0x106 +BSL_REP_SIZE_ZERO = 0x107 +BSL_REP_PORT_ERROR = 0x108 + +# Unisoc command packet interface + +def shape_cmd_packet(command): + return pack('>HH', command, 0) + +def shape_data_packet(dtype, data, dlen = 0): + if dlen == 0: + dlen = len(data) + #if dlen&1: + # dlen += 1 + packethdr = pack('>HH', dtype, dlen) + return packethdr + data + +def cmd_data_start(targetAddr, targetLen): + datahdr = pack('>LL', targetAddr, targetLen) + return shape_data_packet(BSL_CMD_START_DATA, datahdr) + +def cmd_data_send(data): + return shape_data_packet(BSL_CMD_MIDST_DATA, data) + +def cmd_data_end(): + return shape_cmd_packet(BSL_CMD_END_DATA) + +def cmd_data_exec(targetAddr): + datahdr = pack('>L', targetAddr) + return shape_data_packet(BSL_CMD_EXEC_DATA, datahdr) + +def cmd_connect(): + return shape_cmd_packet(BSL_CMD_CONNECT) + +def cmd_reset(): + return shape_cmd_packet(BSL_CMD_NORMAL_RESET) + +def cmd_keep_charge(): + return shape_cmd_packet(BSL_CMD_KEEP_CHARGE) + +def cmd_sync(): + return pack('>H', BSL_CMD_CHECK_BAUD) + +def cmd_sync_full(baudrate = 921600): + datahdr = pack('>L', baudrate) + return shape_data_packet(BSL_CMD_CHANGE_BAUD, datahdr) + +def cmd_read_chip_type(): + return shape_cmd_packet(BSL_CMD_READ_CHIP_TYPE) + +def cmd_read_sector_size(): + return shape_cmd_packet(BSL_CMD_READ_SECTOR_SIZE) + +def cmd_read_flash_type(): + return shape_cmd_packet(BSL_CMD_READ_FLASH_TYPE) + +def cmd_enable_flash(): + return shape_cmd_packet(BSL_CMD_ENABLE_WRITE_FLASH) + +def cmd_read_flash_info(): + return shape_cmd_packet(BSL_CMD_READ_FLASH_INFO) + +def cmd_read_flash(targetAddr, targetLen, offset): + return pack('>HHLLL', BSL_CMD_READ_FLASH, 12, targetAddr, targetLen, offset) diff --git a/unidump.py b/unidump.py new file mode 100644 index 0000000..bb2f2a7 --- /dev/null +++ b/unidump.py @@ -0,0 +1,202 @@ +#!/usr/bin/env python + +import usb +import sys, time +import os +import unicmd + +# global params + +UNISOC_VID = 0x1782 +UNISOC_PID = 0x4d00 +MAX_PKT_SIZE = 1024 +bSize = 512 # read block size +genTimeout = 4000 + +# all main procedures + +def connect(vid, pid): + while True: + dev = usb.core.find(idVendor=vid, idProduct=pid) + sys.stdout.write('.') + sys.stdout.flush() + if dev is not None: + print('\nDevice connected') + break + time.sleep(0.1) + dev.set_configuration() + cfg = dev.get_active_configuration() + intf = cfg[(0,0)] + epIn = usb.util.find_descriptor( + intf, + custom_match = \ + lambda e: \ + usb.util.endpoint_direction(e.bEndpointAddress) == \ + usb.util.ENDPOINT_IN) + epOut = usb.util.find_descriptor( + intf, + custom_match = \ + lambda e: \ + usb.util.endpoint_direction(e.bEndpointAddress) == \ + usb.util.ENDPOINT_OUT) + assert epIn is not None + assert epOut is not None + return dev, epIn, epOut + + +def reqonly(packet, fdlBooted = False, noCrc = False): + packet = unicmd.hdlc_encode(packet, fdlBooted, noCrc) + dev.write(epOut, packet, genTimeout) + +def reqresp(packet, fdlBooted = False, noCrc = False): + reqonly(packet, fdlBooted, noCrc) + resp = bytes(dev.read(epIn, bSize, genTimeout)) + return resp + +def handshake(fdlBooted = False): + resp = reqresp(unicmd.cmd_sync(), fdlBooted) + rcode, rlen, r = unicmd.resp_decode(resp, fdlBooted) + if len(r): + print('>', r.decode()) + resp = reqresp(unicmd.cmd_connect(), fdlBooted) + rcode, rlen, r = unicmd.resp_decode(resp, fdlBooted) + if len(r): + print('>', r.decode()) + +def send_file_to_addr(fname, faddr, fdlBooted = False): + pSize = MAX_PKT_SIZE + f = open(fname, 'rb') + fdata = f.read() + f.close() + flen = len(fdata) + print('Initializing data transfer...') + resp = reqresp(unicmd.cmd_data_start(faddr, flen), fdlBooted) + rcode, rlen, r = unicmd.resp_decode(resp, fdlBooted) + assert rcode == unicmd.BSL_REP_ACK, 'Could not start data transfer, response code is %X' % rcode + print('Starting data transfer...') + while fdata: + buf = fdata[:pSize] + resp = reqresp(unicmd.cmd_data_send(buf), fdlBooted) + rcode, rlen, r = unicmd.resp_decode(resp, fdlBooted) + assert rcode == unicmd.BSL_REP_ACK, 'Something is wrong and response code is %X, block is %s' % (rcode, buf.hex()) + fdata = fdata[pSize:] + sys.stdout.write('.') + sys.stdout.flush() + print('\nEnding data transfer...') + resp = reqresp(unicmd.cmd_data_end(), fdlBooted) + rcode, rlen, r = unicmd.resp_decode(resp, fdlBooted) + assert rcode == unicmd.BSL_REP_ACK, 'Could not finalize data transfer, response code is %X' % rcode + print('Data transfer successful') + +def read_partdata(baseaddr, size, offset): + t = b'' + reqonly(unicmd.cmd_read_flash(baseaddr, size, offset), True) + while True: + xr = bytes(dev.read(epIn, bSize, genTimeout)) + t += xr + if len(xr) < bSize: + break + return t + +def read_partition(baseaddr, partsize, partoffset, outfile, rbblocksize): + outf = open(outfile, 'wb') + psize = partsize + offset = partoffset + print('Dumping %d bytes from partition 0x%X at offset 0x%X to %s...' % (partsize, baseaddr, partoffset, outfile)) + bufsize = rbblocksize + while psize > 0: + if psize < bufsize: + bufsize = psize + resp = read_partdata(baseaddr, bufsize, offset) + rcode, rlen, r = unicmd.resp_decode(resp, True) + outf.write(r) + sys.stdout.write('.') + sys.stdout.flush() + psize -= rlen + offset += rlen + outf.flush() + print('\nPartition dumped!') + +def auto_int(x): + return int(x,0) + +# main code start + +if __name__ == '__main__': # main app start + from argparse import ArgumentParser + rootdir = os.path.dirname(os.path.realpath(__file__)) + parser = ArgumentParser(description='UniDump: an opensource Unisoc SC6531E/F/M phone dumper', epilog='(c) Luxferre 2021 --- No rights reserved ') + parser.add_argument('file', help='File to write the dump into') + parser.add_argument('-p','--partid', type=auto_int, default=0x80000003, help='partition ID (defaults to 0x80000003 that can address full flash space on SC6531E/F/M)') + parser.add_argument('-s','--start', type=auto_int, default=0, help='start position (in the partition, defaults to 0)') + parser.add_argument('-l', '--length', type=auto_int, default=0x400000, help='data length in bytes to read, defaults to 0x400000') + parser.add_argument('-bs','--block-size', type=auto_int, default=4096, help='Readback block size (in bytes), defaults to 4096') + parser.add_argument('-dv','--device-vid', type=auto_int, default=UNISOC_VID, help='Override device vendor ID') + parser.add_argument('-dp','--device-pid', type=auto_int, default=UNISOC_PID, help='Override device product ID') + parser.add_argument('-fdl1','--fdl1-file', default=rootdir+'/fdls/sc6531efm/nor_fdl1.bin', help='Path to FDL1, defaults to the generic SC6531E/F/M FDL1 shipped with UniDump') + parser.add_argument('-addr1','--fdl1-addr', type=auto_int, default=0x40004000, help='Address to load FDL1 into, defaults to 0x40004000') + parser.add_argument('-fdl2','--fdl2-file', default=rootdir+'/fdls/sc6531efm/nor_fdl.bin', help='Path to FDL2, defaults to the generic SC6531E/F/M FDL2 shipped with UniDump') + parser.add_argument('-addr2','--fdl2-addr', type=auto_int, default=0x14000000, help='Address to load FDL2 into, defaults to 0x14000000') + args = parser.parse_args() + + UNISOC_VID = args.device_vid + UNISOC_PID = args.device_pid + fdl1Addr = args.fdl1_addr + fdl2Addr = args.fdl2_addr + fdl1Name = args.fdl1_file + fdl2Name = args.fdl2_file + outfile = args.file + partitionId = args.partid + readbs = args.block_size + readoffset = args.start + readlen = args.length + + print('Using FDL1 %s, loading to 0x%X' % (fdl1Name, fdl1Addr)) + print('Using FDL2 %s, loading to 0x%X' % (fdl2Name, fdl2Addr)) + + # initial connection + print('Connect the device %X:%X while holding the bootkey...' % (UNISOC_VID, UNISOC_PID) ) + dev, epIn, epOut = connect(UNISOC_VID, UNISOC_PID) + handshake() + + def reconnect(): + global dev + if dev is not None: + usb.util.dispose_resources(dev) + time.sleep(0.5) + dev, epIn, epOut = connect(UNISOC_VID, UNISOC_PID) + + print('Boot mode entered') + + print('Sending FDL1') + send_file_to_addr(fdl1Name, fdl1Addr) + print('Starting FDL1') + resp = reqresp(unicmd.cmd_data_exec(fdl1Addr)) + rcode, rlen, r = unicmd.resp_decode(resp, False) + if rcode == unicmd.BSL_REP_ACK: + print('FDL1 started successfully, reconnecting...') + reconnect() + handshake(True) + + print('Protocol set up, sending FDL2') + send_file_to_addr(fdl2Name, fdl2Addr, True) + print('Starting FDL2') + resp = reqresp(unicmd.cmd_data_exec(fdl2Addr), True) + rcode, rlen, r = unicmd.resp_decode(resp, True) + if rcode == unicmd.BSL_REP_ACK: + print('FDL2 started successfully!') + + resp = reqresp(unicmd.cmd_sync_full(), True) + rcode, rlen, r = unicmd.resp_decode(resp, True) + assert rcode == unicmd.BSL_REP_ACK, 'Could not set the baudrate, response code is %X' % rcode + + print('FDL2 running, may start interacting with flash memory') + + read_partition(partitionId, readlen, readoffset, outfile, readbs) + + resp = reqresp(unicmd.cmd_reset(), True) + rcode, rlen, r = unicmd.resp_decode(resp, True) + assert rcode == unicmd.BSL_REP_ACK, 'Could not reset the device, response code is %X' % rcode + + if dev is not None: + usb.util.dispose_resources(dev)