6

I'm looking to find out if a firmware of a device is readable and potentially writeable. The device has a USB port and other devices by this manufacturer have had firmware updates (through USB) so it's within the realm of possibilities this is doable.

How will it be possible to find out if the firmware is accessible through the USB port? If it helps the device is a Cloupor Mini

  • 1
    Does the device make any use of the USB port, other than charging the battery? Does windows device manager find a new device when you plug in the USB? What happens if you use the firmware flash tool for a different device by this manufacturer, does it output any error messages like 'no device found' or 'incompatible device'? The first would suggest the USB has no other meaning than charging the battery, the second could mean the device responds to the flash tool in some way. – Guntram Blohm supports Monica Jan 22 '15 at 20:11
  • The best way to tell is to take it (& other models) apart and look for a UART. Then do an update on the other model and sniff the USB port, etc. – Chris K Feb 16 '15 at 20:45
  • To complement @GuntramBlohm 's suggestion; have a look at the bNumConfiguration field in the USB Device descriptor (see USB specs). It indicates the number of configurations available at the current operating speed. I assume this field can also give away the availability of a DFU or SW upgrade mode or not. – ixje Aug 10 '15 at 5:46
3

Standard USB protocol for firmware upgrade is DFU. Linux has 2 tools to work with DFU devices:

dfu-util is more advanced and for example allows to list connected DFU-capable devices, e.g. when run on my laptop:

# dfu-util -l
dfu-util 0.5

[...]
Found Runtime: [0a5c:21e6] devnum=0, cfg=1, intf=3, alt=0, name="UNDEFINED"

Both of the tools may be useful though when working with different devices and their peculiarities.

Note though:

  1. Quite a few vendors don't go out of their way and just use DFU, for which standard implementations and tools are available. But of course, any particular device may use a proprietary upgrade protocol. One particular case is when device uses USB solely for async serial protocol (UART/RS-232) emulation.
  2. While DFU provides means for both reading and writing firmware, any particular device may block reading as basic means of IP protection.
  3. As for writing firmware, it may be protected with check codes/signatures, so writing arbitrary firmware may be not possible.

If you want to upgrade and modify firmware, consider buying only open devices (use community resources to discover them), and avoid, ignore, and warn other users of non-open ones.

  • 1
    While open-source is nice and all, hacking into a closed source device and modding it to your needs is very satisfying, and quite a "reverse engineering" experience. – rev Apr 18 '15 at 19:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.