Friday, October 19, 2007

Upgrading MP3 player firmware

Okay, everything seems fine and you, now, want to upgrade the firmware version of your MP3 player, most probably a PRC made. Please, back up your data before proceeding any work and make ready for the original sotwares/drivers/firmwares you have. Remember, you are taking RISK yourself.

Basics of the Firmware:

s1fwx (s1 firmware extractor) is a free commandline tool (public domain) which lets you extract the original firmware from your s1 mp3 player device plus additional futures support operations on the firmware files like decrypt, extract and archive. this way you could investigate all the files included in any fw file, change their content and put them back together.

There are two known archive formats:

  • AFI: this archives include files needed to flash the device, a minimal set may consist of an BRECFxxx.BIN (the bootloader) and a FWIMAGE.FW file (as below)

  • FW/FWI: firmware image files include all firmware files needed during runtime

    Commandline usage:
     

  usage:     s1fwx {i|x|s|a|l|f|r} {filename{:[afi|fw|enc]}}    examples:     display file info                s1fwx i fname.ext     extract firmware file            s1fwx x fname.ext     generate script from file        s1fwx s fname.ext > new.script     create firmware file by script   s1fwx a new.fw:fw < def_fw.script     create afi file by script        s1fwx a new.bin:afi < def_afi.script     list entire content of any file  s1fwx l *.bin     extract firmware from player     s1fwx f dump.bin     repair dumped firmware files     s1fwx r dump.bin  

You may need admin-rights to extract firmware from your player.

How To Extract and Repair Firmware?

Extracting your players firmware is a very good idea just to create a backup of the original firmware files. It's no promise that you could always backup your player after some bad firmare update, but at least you have some more possibilities.

  • First download newest version of s1fwx from the link provided at the last of this post and extract the archive.

  • Then connect your mp3 player device to your computers USB port and wait until it gets detected.

  • Now double click the extracted file "extract.bat" or run "s1fwx f dump.bin" from the windows commandline console. Skip the disclaimer by pressing space and select the drive your player gets mounted to. (eg. if detected drives displays "<x>" then choose drive "x:" by pressing x)

  • Now s1fwx should start extracting your firmware, this may take arround 10 seconds.

  • If everything went well and no error gets displayed it will display the content of the extracted firmware file as it was redden from your player.

    Before you could update your player with this firmware file using the original "Mp3 Player Update Tool" you will first have to repair it.

  • Start "repair.bat" or type "s1fwx r dump.bin". A backup will be saved at "dump.bi$" automatically and the repaired file is now available as "dump.bin".

  • Notice that its not possible to do a firmware recovery with this file (only regular firmware updates) since there are missing files needed by the "Mp3 Player Update Tool" recovery mode. Since this files couldn't be found on your player you will need to get them from some official firmware file which is known to work with your players hardware.

  • Either you first could recover to this firmware before updateing to "dump.bin", or you could insert the needed files from the original AFI file into "dump.bin" using s1fwx. The original firmware has to support your flash chip(s). It doesn't matters if its just using different backlight or key-mapping.  

Extracting Firmware

Here some example how to extract the whole content of the AFI file "firmware.bin". Place firmware and s1fwx in one folder, open commandline console (run "cmd") and go to the folder containing the files. To extract the AFI type "s1fwx x firmware.bin". Then make a sub- folder "md fw", change "cd fw" and extract the firmware files using "../s1fwx x ../fwimage.fw". Now you should have extracted all the files usually included in some general firmware file.  

Achieving Firmware Files

To modify files in a firmware you will have to extract, modify and then archive the files back together to one AFI file. First generate the script from the firmware file "firmware.bin" using "s1fwx s firmware.bin >firmware.bin.script". Then extract the files and modify their content if you want. if you want to add or remove files or change file specific parameters edit the generated script using an usual text editor (I think the syntax is self explaining). To archive the files back together type "s1fwx a new_firmware.bin:afi <firmware.bin.script".
This could also be used to archive firmware files like "fwimage.fw". In this case use "s1fwx a fwimage.fw:fw <fwimage.fw.script".
 

How to recover extracted Firmware files?

Flashing your player with an extracted firmware file is a very simple procedure, just take care you repaired the extracted file and use the latest "MP3 Update Tool" available.

This works good until the day we flash our player with some partial corrupted firmware (a total corrupted firmware will damage the player permanently) and the update tool tells something about recovery mode and just opens an open-dialog. (maybe you will have to open your player and short some pins to get to this point).
If you select an extracted firmware file now, it just displays "Invalid upgrade firmware file". This isn't a bug of s1fwx! The problem is that recovering needs some extra files included inside our AFI-file that isn't needed for simple flashing. This files couldn't be found on the players flash, the only source is to look for them inside some original firmware files.

There are two methods to solve this problem and each of them expects you could find some original firmware file which is compatible to your players hardware and extracted firmware.

[Method 1]
- recover using some official firmware
- format the player (with the "MP3 Player Disk Tool")
- finally update to the extracted firmware file

[Method 2]
- extract the extracted and the official firmware file using s1fwx (only the AFI part)
- generate a script for both files ("s1fwx s dump.bin >dump.script")
- merge the scripts to some new script file using a text editor
- build a firmware using the new script ("s1fwx a new.bin:afi <new.script")

Both methods should have the same effect, give it a try!

s1res (s1 resource editor) is a free win32 gui licensed as public domain. It enables you to modify/change all possible resource information of your s1 mp3 player.

How to change Graphics or Text on my S1 MP3 Player?
Its very simple, just extract and repair your firmware using s1fwx. Then run s1res and edit the extracted firmware file directly. Save the file and upload it using the original MP3 Update Tool.

Disclaimer: I'm not responsible for any damages made to your system <MP3 or Flash Player> by using any of this information. This info here is retrieved from following links where you can find details, but modifications are made to suit the current needs.

1 responses:

Anonymous said...

nice work dude

Post a Comment

Thanking you for your comment(s). Hope you will visit this blog again!

Subscribe to geeklog feed Bookmark and Share

Design by Free blogger template