brandonlw / Psychson

Phison 2251-03 (2303) Custom Firmware & Existing Firmware Patches (BadUSB)
MIT License
4.11k stars 1.28k forks source link

Different burner image == different firmware dump #47

Open jeroen-80 opened 9 years ago

jeroen-80 commented 9 years ago

For my understanding: what is a burner image and why is it used? If I loop

  tools\DriveCom.exe /drive=D /action=DumpFirmware /burner=BN03Vyyyz.BIN /firmware=fw-original_BN03Vyyyz.bin

with all PS2251-03 burner images, the resulting firmware are all different, checked with md5sum:

  8240ae5e354bfb784e872a5d86620f49 *fw-original_bn03v101.bin
  3cba25880d9f06e6258d205a46aed1bd *fw-original_bn03v101m.bin
  febec9c0cf620cf04d317e512578bad0 *fw-original_bn03v103.bin
  44a7779b3149dbafce300a953dfd82a7 *fw-original_bn03v103m.bin
  a8c03e65ab40ec0641598a9461b9b40a *fw-original_bn03v104m.bin
  078c5ceb3dc7b3f7d9f98e69fd802704 *fw-original_bn03v114m.bin
  608a6b52da7337f51b9ade6815a85f0f *fw-integral_bn03v117m.bin

This is not in accordance with https://github.com/adamcaudill/Psychson/wiki/Obtaining-a-Burner-Image ("version number (irrelevant)"):

  where xx is the controller version (such as 03 for PS2251-03 (2303)), yyy is the version number (irrelevant), and z indicates the page size.

Is it possible to determine which burner image is the correct one for my device since I can imagine that sending firmware will also result in different results in the chip's internals? Or might there be another explanation for the differences? Thanks!

brandonlw commented 9 years ago

The burner image is an executable containing all the code to read the firmware or flash new firmware. Boot mode itself doesn't have this code, as it can be more complex than it has room for.

It's possible that the firmware images are corrupted or garbage -- in your case, I wouldn't trust them. The "Useful Links" section of the wiki can tell you where to download "official" images.

Use DriveCom's GetInfo command to get your controller version and flash chip ID, which can help with determining the right burner image to use.

jeroen-80 commented 9 years ago

So the burner image is runtime code that is not stored on the chip at all, correct? And a newer version only contains patches / updated to this code so every version version should run all chips? If this is right, I'd preferably always use the latest version right? If not: why not?

The latest firmware I can find is FW03FF01V11210M_20140912.BIN. Should this version run on a random PS2251-03-based USB thumb drive like mine?

  Reported chip type: 2303
  Reported chip ID: 98-DE-84-93-72-D7
  Reported firmware version: 1.09.10