[Droid Eris Android Development] zach.xtr:
Ah.. this is a CyanogenMod ROM and he always has more complex update-scripts ;)...

So are you actually getting errors when you try to run this? If my limited understanding of show_progress is correct you may be getting errors on having the total above 1.0

If it is helpful, I have separated out the script and added comments on what is happening base on my current knowledge so you can see what the script is doing. Apart from the possible show_progress issue I do not see why this would not work fine as a no wipe update :)

I have also added what "should" work to wipe the dalvik-cache but this is not necessary and you can just ask testers to wipe from recovery...

Let me know if it works!

[EDIT] saw that I had the incorrect comment on the backup restore section and have fixed...

[EDIT2] okay I had a chance to take a look at the backuptool.sh file and basically it is just saving a copy of the google app/, etc/permissions, framework/, and lib/ files that cannot be included in CyanogenMod ROMs. Nice! I need to look at this for my ROM updates! I have update code comments below...

# feedback to user during update
ui_print("Welcome to CyanogenMod-6.0.0-Desirec-test4!");

# not sure what this is used for... maybe the backuptool.sh do not see use of these values later though...
assert(getprop("ro.product.device") == "desirec" || getprop("ro.build.product") == "desirec" || getprop("ro.product.board") == "desirec");

# Process to temp store google app/, etc/permissions, framework/, and lib/ files that cannot be included in CyanogenMod ROMs so they can be added back after ROM update.
package_extract_file("system/bin/backuptool.sh", "/tmp/backuptool.sh");
set_perm(0, 0, 0777, "/tmp/backuptool.sh");
run_program("/tmp/backuptool.sh", "backup");

# format system
show_progress(0.500000, 0);
format("MTD", "system");
mount("MTD", "system", "/system");

# the next line may be causing issues so I commented it out as your total show_progress count is 1.5 not 1.0...
# show_progress(0.500000, 40);
# copy ROM files to system
package_extract_dir("system", "/system");

# setup symlinks
symlink("../xbin/su", "/system/bin/su");
symlink("busybox", "/system/xbin/[", "/system/xbin/[[",
"/system/xbin/arp", "/system/xbin/ash", "/system/xbin/awk",
"/system/xbin/basename", "/system/xbin/bbconfig", "/system/xbin/brctl",
"/system/xbin/bunzip2", "/system/xbin/bzcat", "/system/xbin/bzip2",
"/system/xbin/cal", "/system/xbin/cat", "/system/xbin/catv",
"/system/xbin/chgrp", "/system/xbin/chmod", "/system/xbin/chown",
"/system/xbin/chroot", "/system/xbin/cksum", "/system/xbin/clear",
"/system/xbin/cmp", "/system/xbin/cp", "/system/xbin/cpio",
"/system/xbin/cut", "/system/xbin/date", "/system/xbin/dc",
"/system/xbin/dd", "/system/xbin/depmod", "/system/xbin/devmem",
"/system/xbin/df", "/system/xbin/diff", "/system/xbin/dirname",
"/system/xbin/dmesg", "/system/xbin/dnsd", "/system/xbin/dos2unix",
"/system/xbin/du", "/system/xbin/echo", "/system/xbin/ed",
"/system/xbin/egrep", "/system/xbin/env", "/system/xbin/expr",
"/system/xbin/false", "/system/xbin/fdisk", "/system/xbin/fgrep",
"/system/xbin/find", "/system/xbin/fold", "/system/xbin/free",
"/system/xbin/freeramdisk", "/system/xbin/fuser", "/system/xbin/getopt",
"/system/xbin/grep", "/system/xbin/gunzip", "/system/xbin/gzip",
"/system/xbin/head", "/system/xbin/hexdump", "/system/xbin/id",
"/system/xbin/ifconfig", "/system/xbin/insmod", "/system/xbin/install",
"/system/xbin/ip", "/system/xbin/kill", "/system/xbin/killall",
"/system/xbin/killall5", "/system/xbin/length", "/system/xbin/less",
"/system/xbin/ln", "/system/xbin/losetup", "/system/xbin/ls",
"/system/xbin/lsmod", "/system/xbin/lspci", "/system/xbin/lsusb",
"/system/xbin/lzop", "/system/xbin/lzopcat", "/system/xbin/md5sum",
"/system/xbin/mkdir", "/system/xbin/mke2fs", "/system/xbin/mkfifo",
"/system/xbin/mkfs.ext2", "/system/xbin/mknod", "/system/xbin/mkswap",
"/system/xbin/mktemp", "/system/xbin/modprobe", "/system/xbin/more",
"/system/xbin/mount", "/system/xbin/mountpoint", "/system/xbin/mv",
"/system/xbin/netstat", "/system/xbin/nice", "/system/xbin/nohup",
"/system/xbin/nslookup", "/system/xbin/ntpd", "/system/xbin/od",
"/system/xbin/patch", "/system/xbin/pgrep", "/system/xbin/pidof",
"/system/xbin/ping", "/system/xbin/pkill", "/system/xbin/printenv",
"/system/xbin/printf", "/system/xbin/ps", "/system/xbin/pwd",
"/system/xbin/rdev", "/system/xbin/readlink", "/system/xbin/realpath",
"/system/xbin/renice", "/system/xbin/reset", "/system/xbin/rm",
"/system/xbin/rmdir", "/system/xbin/rmmod", "/system/xbin/route",
"/system/xbin/run-parts", "/system/xbin/sed", "/system/xbin/seq",
"/system/xbin/setsid", "/system/xbin/sh", "/system/xbin/sha1sum",
"/system/xbin/sha256sum", "/system/xbin/sha512sum",
"/system/xbin/sleep", "/system/xbin/sort", "/system/xbin/split",
"/system/xbin/stat", "/system/xbin/strings", "/system/xbin/stty",
"/system/xbin/swapoff", "/system/xbin/swapon", "/system/xbin/sync",
"/system/xbin/sysctl", "/system/xbin/tac", "/system/xbin/tail",
"/system/xbin/tar", "/system/xbin/tee", "/system/xbin/telnet",
"/system/xbin/test", "/system/xbin/tftp", "/system/xbin/time",
"/system/xbin/top", "/system/xbin/touch", "/system/xbin/tr",
"/system/xbin/traceroute", "/system/xbin/true", "/system/xbin/tty",
"/system/xbin/tune2fs", "/system/xbin/umount", "/system/xbin/uname",
"/system/xbin/uniq", "/system/xbin/unix2dos", "/system/xbin/unlzop",
"/system/xbin/unzip", "/system/xbin/uptime", "/system/xbin/usleep",
"/system/xbin/uudecode", "/system/xbin/uuencode", "/system/xbin/vi",
"/system/xbin/watch", "/system/xbin/wc", "/system/xbin/wget",
"/system/xbin/which", "/system/xbin/whoami", "/system/xbin/xargs",
"/system/xbin/yes",
"/system/xbin/zcat");
symlink("toolbox", "/system/bin/cat", "/system/bin/cmp",
"/system/bin/date", "/system/bin/dd", "/system/bin/dmesg",
"/system/bin/getevent", "/system/bin/getprop", "/system/bin/hd",
"/system/bin/id", "/system/bin/ifconfig", "/system/bin/iftop",
"/system/bin/insmod", "/system/bin/ioctl", "/system/bin/ionice",
"/system/bin/kill", "/system/bin/log", "/system/bin/lsmod",
"/system/bin/mkdir", "/system/bin/nandread", "/system/bin/netstat",
"/system/bin/newfs_msdos", "/system/bin/notify", "/system/bin/printenv",
"/system/bin/ps", "/system/bin/reboot", "/system/bin/renice",
"/system/bin/rmdir", "/system/bin/rmmod", "/system/bin/route",
"/system/bin/schedtop", "/system/bin/sendevent",
"/system/bin/setconsole", "/system/bin/setprop", "/system/bin/sleep",
"/system/bin/smd", "/system/bin/start", "/system/bin/stop",
"/system/bin/sync", "/system/bin/top", "/system/bin/uptime",
"/system/bin/vmstat", "/system/bin/watchprops",
"/system/bin/wipe");

# set permissions
set_perm_recursive(0, 0, 0755, 0644, "/system");
set_perm_recursive(0, 2000, 0755, 0755, "/system/bin");
set_perm(0, 3003, 02750, "/system/bin/netcfg");
set_perm(0, 3004, 02755, "/system/bin/ping");
set_perm(0, 2000, 06750, "/system/bin/run-as");
set_perm(1001, 1005, 0444, "/system/etc/AudioPara4.csv");
set_perm_recursive(1002, 1002, 0755, 0440, "/system/etc/bluetooth");
set_perm(0, 0, 0755, "/system/etc/bluetooth");
set_perm(1000, 1000, 0640, "/system/etc/bluetooth/auto_pairing.conf");
set_perm(3002, 3002, 0444, "/system/etc/bluetooth/blacklist.conf");
set_perm(1002, 1002, 0440, "/system/etc/dbus.conf");
set_perm(1014, 2000, 0550, "/system/etc/dhcpcd/dhcpcd-run-hooks");
set_perm_recursive(0, 2000, 0755, 0750, "/system/etc/init.d");
set_perm(0, 0, 0755, "/system/etc/init.d");
set_perm(0, 2000, 0550, "/system/etc/init.goldfish.sh");
set_perm_recursive(0, 0, 0755, 0555, "/system/etc/ppp");
set_perm_recursive(0, 2000, 0755, 0755, "/system/xbin");
set_perm(0, 0, 06755, "/system/xbin/librank");
set_perm(0, 0, 06755, "/system/xbin/procmem");
set_perm(0, 0, 06755, "/system/xbin/procrank");
set_perm(0, 0, 06755, "/system/xbin/su");
set_perm(0, 0, 06755, "/system/xbin/tcpdump");

# next line is not needed but fills up progress bar...
show_progress(0.200000, 0);

# added by zach.xtr but not sure if syntac is correct. On HTC ROMs I have just used delete_recursive DATA:dalvik-cache/
delete_recursive("/data/dalvik-cache");

# Add back the temp store google app/, etc/permissions, framework/, and lib/ files that cannot be included in CyanogenMod ROMs.
show_progress(0.200000, 10);
package_extract_file("system/bin/backuptool.sh", "/tmp/backuptool.sh");
set_perm(0, 0, 0777, "/tmp/backuptool.sh");
run_program("/tmp/backuptool.sh", "restore");

# update boot.img kernel
show_progress(0.200000, 10);
assert(package_extract_file("boot.img", "/tmp/boot.img"),
write_raw_image("/tmp/boot.img", "boot"),
delete("/tmp/boot.img"));

show_progress(0.100000, 0);
unmount("/system");