NOTE: The whole repacking is completely worthless. The files that one would change are encrypted, and the whole PUP is signed as well. Any tiny change, even if you "repack" it, will make the PUP unusable.
Unless one can recalculate the proper checks, which we cant since we don't know the Sony keys.
This weekend I have wrote some tools for working with PS3 firmware files. Basically there is support for firmware extraction and creation. Yes, there is some tools for extraction already (thanks to [RO]man sources, it wasn't difficult to understand structure of PUP-file), but I have implemented it as I like and under GPL license.
Of course, for now firmware creation doesn't help a lot, because there is Sony signatures both for header and for all of the files included. So, what you can do with it: you can extract firmware (this implies creation of XML-config file for firmware, which included ID's of all extracted files and can be modified and used for firmware creation), then you can edit it, and pack back. XML configuration file contains also hashes, which can be edited, but I doubt, that it'll be of any help now.
All firmwares, I've repacked without changes were diffed, and are identical (in except of 2.16 firmware, which were dumped from Gran Turismo, my tool stripped zeroes padding from end of file, and replicated it to original state).
1. place firmware.pup in save directory with gpup;
2. run "./gpup x firmware.pup" - this will unpack firmware and creates firmware.pup.xml;
3. edit firmware.pup.xml file to suit your needs and possibly change extracted files;
4. run "./gpup c firmware.pup" - this will create new firmware.pup file based on firmware.pup.xml config and firmware files.
Gpup v0.3.0, Copyright 2008 G.
records count: 5
type: 0x100 [version.txt]
type: 0x101 [dots.txt]
type: 0x200 [updater.sce]
type: 0x201 [vsh.tar]
type: 0x300 [update.tar]
writing file 5 [update.tar]
doneI've attached binary (compiled in "Ubuntu Hardy") and source. There isn't currently windows version, maybe i'll add it in the future, just haven't currently time for windows compilation.
Please reply here bugs/feature requests. And if anyone has information, regarding Sony's hashes (algorithms used), or any other interesting info - please post it here.
For Windows users:
Place here your PS3UPDAT.PUP
extract.bat - extracts firmware
~edit data files or config, if you want~
combine.bat - combines firmware