I built a new CM9 ROM and put the delta up. The updater fetched it fine and then ran out of memory applying the patch. Apparently the java rdiff implementation is not very memory friendly.
Got the memory issue fixed. So here's how it works:
I publish a manifest that contains a ROM list. Each ROM description has an URL, filename, filesize, and md5sum. It may optionally contain the name of a "base" ROM and the description of a "patch" file that can be applied.
I successfully downloaded a base ROM from mediafire (cm9 a10pre1 in this case). Then I uploaded a patch file to turn it into my next update (cm9 a10pre4 in this case). The updater noticed that it had a10pre1, so it downloaded and applied the patch. Yay!
How much of a savings is this? Well, in my test, the patch file is 34mb and the full ROM is 96mb. So that saved 62mb (almost 2/3) of the data. I expect that to be fairly typical for quattrimus, though the -pre updates within an alpha release are likely to be smaller. For example, cm9 a10pre1 to cm9 a10pre3 is 11mb.
Now, I'm on to making some context menu icons and continuing to hack up my recovery-free installer.
Oh yeah, and back on topic, I'm also fixing some more issues for a10pre4. I've got the hosts file line endings fixed and adb-over-network for aokp done. I'm also investigating "su" on aosp and some other things. And trying to get the latest cm9 code to run, of course.