____ ___ .-----.|_ | .' _|.--.--.--..--.--. |__ --| _| |_ | _|| | | ||_ _| |_____||______||__| |________||__.__|
There are two known archive formats:
- 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 (see below)
- firmware image files include all firmware files needed during runtime
- major changes to the archive function, now it uses scripts
- commandline options changed, now its no more case sensitive
- fixed a small bug in the firmware flash extractor caused by some devices
- all known bugs removed, upload archived files should be possible!
- added new script command "DATE"
- removed some bugs inside archive function
- flash-read autodetects firmware size, no buffer-overruns anymore
- fixed checksum generator
- additional information gets extracted from the players firmware
- improved repairing of extracted firmware files
- improved firmware extraction and added upload ability
- allows extraction of empty files
Frequently Asked Questions
How to extract a firmware from the player...
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 this page and extract the archive. Then connect your mp3 player device to your computers usb port and wait until it gets detected. Now doubleclick 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 all went well and no error gets displayed it will display the content of the extracted firmware file as it was readden 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 couldnt 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 doesnt matters if its just using different backlight or key-mapping.
How to extract firmware files...
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.
How to archive 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 to an extract firmware...
Flashing your player with an extracted firmware file is a very simple procedure, just take care you repaired the extracted file (see above) and use the latest "MP3 Update Tool" available at the download section. 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, read the forum for further instructions)
If you select an extracted firmware file now, it just displays "Invalid upgrade firmware file". This isnt a bug of s1fwx! The problem is that recovering needs some extra files included inside our AFI-file that isnt needed for simple flashing. This files couldnt 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 A]
- - recover using some official firmware
- - format the player (with the "MP3 Player Disk Tool")
- - finally update to the extracted firmware file
- - 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!
s1fwx fails to dump the players firmware, why?
it seems you have a player with firmware v9.0.5 or above (short: v9 player). those firmwares don't support the needed adfu command anymore and couldn't get read out by s1fwx. another tool which supports these devices is in development.
usually the error message should look like:
detect firmware size...
error: The system cannot read from the specified device.