diff options
author | Koushik Dutta <koushd@gmail.com> | 2011-05-18 09:52:27 -0700 |
---|---|---|
committer | Koushik Dutta <koushd@gmail.com> | 2011-05-18 09:52:27 -0700 |
commit | 7dc3ecd7b0cc19658593c92f2de677a793d7b858 (patch) | |
tree | e234d191be0fa3f83821932c1bc75db2583de7c7 /updater.sh | |
parent | 4f388a184d736fa6d9e9b4fe9be2523aefe2861d (diff) | |
download | device_samsung_aries-common-7dc3ecd7b0cc19658593c92f2de677a793d7b858.zip device_samsung_aries-common-7dc3ecd7b0cc19658593c92f2de677a793d7b858.tar.gz device_samsung_aries-common-7dc3ecd7b0cc19658593c92f2de677a793d7b858.tar.bz2 |
move the release tools into aries-common
Change-Id: Ib374ce9c6798ca0f910139cf8884a3966402094a
Diffstat (limited to 'updater.sh')
-rw-r--r-- | updater.sh | 128 |
1 files changed, 128 insertions, 0 deletions
diff --git a/updater.sh b/updater.sh new file mode 100644 index 0000000..af49b45 --- /dev/null +++ b/updater.sh @@ -0,0 +1,128 @@ +#!/tmp/busybox sh +# +# Universal Updater Script for Samsung Galaxy S Phones +# (c) 2011 by Teamhacksung +# + +set -x +export PATH=/:/sbin:/system/xbin:/system/bin:/tmp:$PATH + +# check if we're running on a bml or mtd device +if /tmp/busybox test -e /dev/block/bml7 ; then +# we're running on a bml device + + # make sure sdcard is mounted + if ! /tmp/busybox grep -q /mnt/sdcard /proc/mounts ; then + /tmp/busybox mkdir -p /mnt/sdcard + /tmp/busybox umount -l /dev/block/mmcblk0p1 + if ! /tmp/busybox mount -t vfat /dev/block/mmcblk0p1 /mnt/sdcard ; then + /tmp/busybox echo "Cannot mount sdcard." + exit 1 + fi + fi + + # remove old log + rm -rf /mnt/sdcard/cyanogenmod_bml.log + + # everything is logged into /sdcard/cyanogenmod.log + exec >> /mnt/sdcard/cyanogenmod_bml.log 2>&1 + + # make sure efs is mounted + if ! /tmp/busybox grep -q /efs /proc/mounts ; then + /tmp/busybox mkdir -p /efs + /tmp/busybox umount -l /dev/block/stl3 + if ! /tmp/busybox mount -t rfs /dev/block/stl3 /efs ; then + /tmp/busybox echo "Cannot mount efs." + exit 1 + fi + fi + + # create a backup of efs + /tmp/busybox rm -rf /mnt/sdcard/backup/efs + /tmp/busybox mkdir -p /mnt/sdcard/backup/efs + /tmp/busybox cp -R /efs/ /mnt/sdcard/backup + + # write the package path to sdcard cyanogenmod.cfg + if /tmp/busybox test -n "$UPDATE_PACKAGE" ; then + PACKAGE_LOCATION=${UPDATE_PACKAGE#/mnt} + /tmp/busybox echo "$PACKAGE_LOCATION" > /mnt/sdcard/cyanogenmod.cfg + fi + + # write new kernel to boot partition + /tmp/flash_image /tmp/boot.img /dev/block/bml7 + + /sbin/reboot now + exit 0 + +elif /tmp/busybox test -e /dev/block/mtdblock0 ; then +# we're running on a mtd device + + # make sure sdcard is mounted + /tmp/busybox mkdir -p /sdcard + + if ! /tmp/busybox grep -q /sdcard /proc/mounts ; then + /tmp/busybox umount -l /dev/block/mmcblk0p1 + if ! /tmp/busybox mount -t vfat /dev/block/mmcblk0p1 /sdcard ; then + /tmp/busybox echo "Cannot mount sdcard." + exit 1 + fi + fi + + # remove old log + rm -rf /sdcard/cyanogenmod_mtd.log + + # everything is logged into /sdcard/cyanogenmod.log + exec >> /sdcard/cyanogenmod_mtd.log 2>&1 + + # if a cyanogenmod.cfg exists, then this is a first time install + # let's format the volumes and restore radio and efs + if ! /tmp/busybox test -e /sdcard/cyanogenmod.cfg ; then + exit 1 + fi + # remove the cyanogenmod.cfg to prevent this from looping + /tmp/busybox rm -f /sdcard/cyanogenmod.cfg + + # unmount, format and mount system + /tmp/busybox umount -l /system + /tmp/erase_image system + /tmp/busybox mount -t yaffs2 /dev/block/mtdblock2 /system + + # unmount and format cache + /tmp/busybox umount -l /cache + /tmp/erase_image cache + + # unmount and format data + tmp/make_ext4fs -b 4096 -g 32768 -i 8192 -I 256 -a /data /dev/block/mmcblk0p2 + + # unmount and format datadata + /tmp/busybox umount -l /datadata + /tmp/erase_image datadata + + # flash radio image + /tmp/erase_image radio + /tmp/flash_image radio /tmp/modem.bin + + # restore efs backup + if /tmp/busybox test -e /sdcard/backup/efs/nv_data.bin ; then + /tmp/busybox umount -l /efs + /tmp/erase_image efs + /tmp/busybox mkdir -p /efs + + if ! /tmp/busybox grep -q /efs /proc/mounts ; then + if ! /tmp/busybox mount -t yaffs2 /dev/block/mtdblock4 /efs ; then + /tmp/busybox echo "Cannot mount efs." + exit 1 + fi + fi + + /tmp/busybox cp -R /sdcard/backup/efs / + /tmp/busybox umount -l /efs + else + /tmp/busybox echo "Cannot restore efs." + fi + + # flash boot image + /tmp/bml_over_mtd.sh boot 72 reservoir 2004 /tmp/boot.img + + exit 0 +fi |