I’m currently working on version 1.40 of USB Image Tool. I have removed the faulty XZip routines and already implemented an new gzip compatible compression based on zlib. For compatibility reasons I will also implement an extraction for the old zip based imz files (minizip). It’s also included in the zlib package and contributed by the author of WinImage (Gilles Vollant). I still have to modify the source a little bit to make it working nicely with my UNICODE based program, because I don’t want to do to much character set conversion. At least I want to have the the file access routines working with UNICODE functions.
Unfortunately both compression routines have issues with files larger than 4 GiB. Gzip files are valid, but the original file size is stored in a 32 bit integer, limiting it to 4 GiB. The files will unzip correctly, but file size checks will not work properly. Zip files were originaly limited to 4 GiB as well. For the new zip64 extension I couldn’t find any free library, that can implement it, although most compression programs (WinZip, TUGZip) can work with it. Eventually I will implement 7zip, but it’s not documented as nicely as zlib is.
I also want to add some new functions like boot sector import/export, image checksum creation and access to USB hard drives. Eventually I will implement some of this feature with later minor version changes.
Yesterday I tested USB Image Tool with the public beta of Windows 7. Everything in USB Image Tool seemed to be working so far. On the other hand, Microsoft changed some internal USB handling routines very late in the Windows Vista development progress. Hopefully this won’t happen with Windows 7 again.
Update: After looking a little bit into zlib and minizip sources, it seems, that both can already be used with UNICODE programs (fdopen can be used instead of fopen in gzio.c). I still have to check for minizip, but this could make things a lot easier.
Tags: USB Image Tool