After a lot of work and collaboration with Da_G, I was able to get some custom imageupdate packages working with the CDMA Touch Diamond (results should port easily to other CDMA devices). The first video (sorry its flipped, I can’t figure out how to rotate it, and I took it on the touch pro) below shows installing a ImageUpdate package (simple.cab.pkg). In this case, we simply copy the package file via activesync to the device and run it. ImageUpdate first runs ImageValidator, which among other things, checks if the update was already installed to the device, and if the certificate matches one of the certificates located in defaultcerts.dat. Once verified, ImageValidator sets the flag to boot into the uldr partition, and runs uldr from there. Uldr is basically a special, minimal build of CE 5.0, you can see that the “dirty” display driver is being used with the occasional lines present on the screen. Uldr handles updating the imgfs partition, moving and relocating modules, etc. Finally, the device boots back to WM, where we are presented with a screen indicating the update was successful.
ImageUpdate for CDMA Touch Diamond Part 1
Part 2 shows the device being hard reset. After a hard reset, we try to install the package again, but the update fails because it has already been applied.
ImageUpdate for CDMA Touch Diamond Part 2
Before we get too excited, its important to note that there are some quirks that will hold us back a little bit.. First, kitchens cannot be used to generate uldr compatible images (this is why I am running a near-stockish ROM). The reason is that nearly all kitchens today delete the package manifest (.sof) and relocation sections, which are required by the update mechanism. Second, imgfstools in “bigstorage” mode will reduce the size of imgfs so that updates are not possible. Running imgfstools in conservative mode helps, but we’ll probably have to fine tune the memory allocation so that we have a good compromise of “updateable space” and user storage. Finally, .cab.pkg files aren’t the easiest thing to generate, but Da_G tells me a bit of people at xda-devs are already on the job. Da_G has a working ImageUpdate ROM for the GSM Raphael… I plan to follow suit with a CDMA version.
Once ImageUpdate is ready, ROM kitchens (at least by the masses) will be a thing of the past – most users will download a minimal “reference” ROM, and update their ROM to their liking using the imageupdate mechanism. Maybe Microsoft will even begin distributing updates via WindowsUpdate as well!