Firmware Related

From M:Robe 500i Development Wiki

Jump to: navigation, search

There are three official, and one unofficial firmware versions for the m:robe 500i.

Contents

Official Firmware

  • Version 1.02 is the oldest. This version was available for those who bought m:robe when it first hit the market.
  • Version 1.03 is available for download from the Olympus website.

Unofficial Firmware

  • Version 1.04 is the newest known firmware version, and is not officially available for download. This version appeared on newly bought m:robe 500i players, or ones which were recently repaired or refurbished.
  • Exploitable version of firmware 1.03 (N5002-BD-EXPv01.zip mirror) has been announced by shirour. This version allows one to run code placed inside a remix xml file. See Software Development.

Modified Firmware

  • Custom images firmware allow you to add your own background images for the m:robe player. Click on the link for a detailed description.

Firmware File Format

See forum thread about the format.

See also forum thread with a Python script that implements the enciphering algorithm and checksum updating.

About the Firmware

At offset 39h of the decrypted firmware file, there is the string "SOL-eBinder-L". More information:

Firmware Updater

The core of the firmware updater is in the OlyGin.dll file. The update process does roughly the following:

  • Scans the system for a disk drive with the correct type (see article on CodeProject)
  • Opens the disk drive using its device name (e.g. \\.\E:, see CreateFile, under Physical Disks and Volumes)
  • Uses I/O control code 4D004h (IOCTL_SCSI_PASS_THROUGH) to send SCSI commands directly to the device
  • The SCSI commands (first 4 bytes of the CDB) used are:
    • The standard SCSI IDENTIFY command, to which the device responds with a human-readable identification string that also contains the firmware version (e.g. "OLYMPUS m:robe MR-500i 1.03")
    • The remainder of the firmware update is carried out using SCSI commands in the range C0h - C4h inclusive, which is defined as vendor-specific

File Usage to Updater

  • OlyGin.dll-runs everything/core
  • AutoPlayCanceler.dll-turns off windows auto play of mrobe during session
  • OlyGloss.dll-not sure yet

References

Personal tools