Well I managed to figure out how to download different firmwares directly from Samsung without using NPS, but they're encrypted zip files so I can't get into them.
There doesn't seem to be a download for I4 yet.
In case there's another programmer that wants to pick up the pieces:
- here's an example file:
http://fus.samsungmobile.com/Phone_Binary/6/GT-i7500I7500VIAIH4I7500XXIH8I7500XXIH8_500.zip.enc
- as you can see, the URL consists of the CSC code and the firmware version, followed by _500.zip.enc . If you change it to use other known combinations of CSC and firmware, you get a download. If you try something that doesn't exist, you get a 404.
- given a list of known mobile operators (e.g. O2U, VIA, ITV) and awareness of how Samsung numbers its releases (e.g II4 is the 4th release in September 2009), you could brute force checks for new firmware in nested loops based on HTTP response codes (i.e. 200 = found, 404 = not found).
- FUSCrypt.dll seems to be used to decrypt the files. This is a COM+ DLL. I managed to get it to encrypt a file and then decrypt it again, but I can't get it to decrypt the Samsung file. It needs a public key and a symmetric key to work, but the Import key routines don't seem to work

The only way I could decrypt my
own encrypted files was to regenerate the keys again using the exact same known values as during encryption.
- You might be able to use Fiddler2 to monitor the HTTP traffic between NPS and the update server, but it seems to be RSA-encrypted so I'm not sure how much you'd be able to glean.
Ho hum.. Guess we just wait for firmware updates via the usual routes: NPS and the various files that the good folks here post every now and then.
Chris