[G1 Android Development] Darkrift:
The original thread has become a support thread for "it worked" and "it didnt work!" comments on the update, but the real work to be done is figuring out how to make our own update.

So far what we know about it is that every file in the archive is signed by the following files located inside the archive in "/META-INF/":

CERT.RSA CERT.SF MANIFEST.MF

The signatures are as follows (from CERT.SF):

Name: system/framework/input.jar
SHA1-Digest: oTqRlwaIYFz8+J6HPaqPmPF05do=

and from MANIFEST.MF:

Name: system/framework/input.jar
SHA1-Digest: GMJobzU6jVv2U756Kjbt292GdEA=

Making changes to either of these files causes the update to fail, so these files must also be signed. From what was guessed in the other thread, this might be done through the CERT.RSA file (binary, I cant make anything of it).

Inside the archive is a boot.img and a radio.img which were tested by someone and said not to be standard .img files.

In "/META-INF/com/google/android/" is a file called update-script (also signed, cannot be edited) which has the step by step procedure to update the system with all the included components. Permissions are set, images are flashed and at the very beginning device name (and other info?) are compared to the current device causing it to either fail or install. (contents below):

assert getprop("ro.build.fingerprint") == "tmobile/kila/dream/trout:1.0/TC4-RC29
/115247:user/ota-rel-keys,release-keys" || getprop("ro.build.fingerprint") == "t
mobile/kila/dream/trout:1.0/TC4-RC28/114235:user/ota-rel-keys,release-keys" || g
etprop("ro.build.fingerprint") == "tmobile/kila/dream/trout:1.0/TC4-RC19/109652:
user/ota-rel-keys,release-keys" || getprop("ro.build.fingerprint") == "tmobile/k
ila/dream/trout:1.0/TC4-RC29/115247:user/ota-rel-keys,test-keys" || getprop("ro.
build.fingerprint") == "tmobile/kila/dream/trout:1.0/TC4-RC28/114235:user/ota-re
l-keys,test-keys" || getprop("ro.build.fingerprint") == "tmobile/kila/dream/trou
t:1.0/TC4-RC19/109652:user/ota-rel-keys,test-keys"
assert compatible_with("0.2") == "true"
assert getprop("ro.product.device") == "dream" || getprop("ro.build.product") ==
"dream"
assert getprop("ro.bootloader") == "0.95.0000"
format BOOT:
show_progress 0.1 0
write_radio_image PACKAGE:radio.img
show_progress 0.5 0
format SYSTEM:
copy_dir PACKAGE:system SYSTEM:
set_perm_recursive 0 0 0755 0644 SYSTEM:
set_perm_recursive 0 2000 0755 0755 SYSTEM:bin
symlink dumpstate SYSTEM:bin/dumpcrash
set_perm 0 3004 02755 SYSTEM:bin/ping
symlink toolbox SYSTEM:bin/dmesg
symlink toolbox SYSTEM:bin/df
symlink toolbox SYSTEM:bin/getevent
symlink toolbox SYSTEM:bin/getprop
symlink toolbox SYSTEM:bin/hd
symlink toolbox SYSTEM:bin/id
symlink toolbox SYSTEM:bin/ifconfig
symlink toolbox SYSTEM:bin/iftop
symlink toolbox SYSTEM:bin/insmod
symlink toolbox SYSTEM:bin/ioctl
symlink toolbox SYSTEM:bin/kill
symlink toolbox SYSTEM:bin/ln
symlink toolbox SYSTEM:bin/log
symlink toolbox SYSTEM:bin/ls
symlink toolbox SYSTEM:bin/lsmod
symlink toolbox SYSTEM:bin/mkdir
symlink toolbox SYSTEM:bin/mkdosfs
symlink toolbox SYSTEM:bin/mount
symlink toolbox SYSTEM:bin/mv
set_perm 0 3003 02755 SYSTEM:bin/netcfg
symlink toolbox SYSTEM:bin/netstat
symlink toolbox SYSTEM:bin/notify
symlink toolbox SYSTEM:bin/ps
symlink toolbox SYSTEM:bin/printenv
symlink toolbox SYSTEM:bin/reboot
symlink toolbox SYSTEM:bin/rm
symlink toolbox SYSTEM:bin/renice
symlink toolbox SYSTEM:bin/rmdir
symlink toolbox SYSTEM:bin/rmmod
symlink toolbox SYSTEM:bin/route
symlink toolbox SYSTEM:bin/schedtop
symlink toolbox SYSTEM:bin/sendevent
symlink toolbox SYSTEM:bin/setconsole
symlink toolbox SYSTEM:bin/setprop
symlink toolbox SYSTEM:bin/sleep
symlink toolbox SYSTEM:bin/smd
symlink toolbox SYSTEM:bin/start
symlink toolbox SYSTEM:bin/stop
symlink toolbox SYSTEM:bin/sync
symlink toolbox SYSTEM:bin/top
symlink toolbox SYSTEM:bin/umount
symlink toolbox SYSTEM:bin/vmstat
symlink toolbox SYSTEM:bin/watchprops
symlink toolbox SYSTEM:bin/wipe
symlink toolbox SYSTEM:bin/cat
symlink toolbox SYSTEM:bin/chmod
symlink toolbox SYSTEM:bin/cmp
symlink toolbox SYSTEM:bin/date
symlink toolbox SYSTEM:bin/dd
set_perm 1002 1002 0440 SYSTEM:etc/dbus.conf
set_perm 0 2000 0550 SYSTEM:etc/init.goldfish.sh
set_perm 1002 1002 0440 SYSTEM:etc/hcid.conf
set_perm 1014 2000 0550 SYSTEM:etc/dhcpcd/dhcpcd-run-hooks
show_progress 0.2 0
write_raw_image PACKAGE:boot.img BOOT:
show_progress 0.2 10

And last but certainly not least, Download links!!! W00tah:

Download: https://android.clients.google.com/updates/signed-kila-ota-115247-prereq.TC4-RC19+RC28.zip

**This download might need to be refreshed once or twice before it works. If you get 503 server error, try again, if it doesn't work after a while use the links below.

Rapidshare Download 1: http://rapidshare.com/files/159243313/signed-kila-ota-115247-prereq.TC4-RC19_RC28.zip

Rapidshare Download 2: http://rapidshare.com/files/159244738/signed-kila-ota-115247-prereq.TC4-RC19_RC28.zip.html

Rapidshare Download 3: http://rapidshare.com/files/159798803/signed-kila-ota-115247-prereq.TC4-RC19_RC28.zip.html

If anyone knows anything about the signing process or thinks they have an idea on how to bypass it, please share it. XDA-devs is known for exactly this, but it seems we are limited to a smaller number of devs than most WM devices usually get so every little bit helps here.