summaryrefslogtreecommitdiffstats
path: root/updater.sh
diff options
context:
space:
mode:
authorjt1134 <jt1134@gmail.com>2012-09-22 23:15:39 -0500
committerGerrit Code Review <gerrit@review.cyanogenmod.com>2012-09-25 21:36:21 -0400
commite3936f5145a98419eb2861f07c1476bdfa2fae6f (patch)
tree4a9ff1a8c9e17f6922aaa21751b35091a820bf6b /updater.sh
parent5e3a9016c150fac61e8d6321ab9592c2bb11fd53 (diff)
downloaddevice_samsung_aries-common-e3936f5145a98419eb2861f07c1476bdfa2fae6f.zip
device_samsung_aries-common-e3936f5145a98419eb2861f07c1476bdfa2fae6f.tar.gz
device_samsung_aries-common-e3936f5145a98419eb2861f07c1476bdfa2fae6f.tar.bz2
use logical volumes for system and data, bring back datadata
* use lvm to split eMMC into 2 logical partitions * use entire available space on OneNAND for /datadata based on information from: http://bit.ly/OMny8Z WARNING: WILL WIPE DATA Change-Id: I3caeec096a6798afafaf03b2eb72c20580272682
Diffstat (limited to 'updater.sh')
-rwxr-xr-xupdater.sh54
1 files changed, 44 insertions, 10 deletions
diff --git a/updater.sh b/updater.sh
index 5baad86..07f835c 100755
--- a/updater.sh
+++ b/updater.sh
@@ -21,6 +21,17 @@ set_log() {
exec >> $1 2>&1
}
+# ui_print by Chainfire
+OUTFD=$(/tmp/busybox ps | /tmp/busybox grep -v "grep" | /tmp/busybox grep -o -E "update_binary(.*)" | /tmp/busybox cut -d " " -f 3);
+ui_print() {
+ if [ $OUTFD != "" ]; then
+ echo "ui_print ${1} " 1>&$OUTFD;
+ echo "ui_print " 1>&$OUTFD;
+ else
+ echo "${1}";
+ fi;
+}
+
set -x
export PATH=/:/sbin:/system/xbin:/system/bin:/tmp:$PATH
@@ -29,14 +40,14 @@ if /tmp/busybox test "$1" = cdma ; then
# CDMA mode
IS_GSM='/tmp/busybox false'
SD_PART='/dev/block/mmcblk1p1'
- DATA_PART='/dev/block/mmcblk0p1'
- DATA_SIZE='490733568'
+ MMC_PART='/dev/block/mmcblk0p1 /dev/block/mmcblk0p2'
+ MTD_SIZE='490733568'
else
# GSM mode
IS_GSM='/tmp/busybox true'
SD_PART='/dev/block/mmcblk0p1'
- DATA_PART='/dev/block/mmcblk0p2'
- DATA_SIZE='442499072'
+ MMC_PART='/dev/block/mmcblk0p2'
+ MTD_SIZE='442499072'
fi
# check for old/non-cwm recovery.
@@ -88,7 +99,8 @@ if /tmp/busybox test -e /dev/block/bml7 ; then
/sbin/reboot now
exit 0
-elif /tmp/busybox test `/tmp/busybox cat /sys/class/mtd/mtd2/size` != "$DATA_SIZE" ; then
+elif /tmp/busybox test `/tmp/busybox cat /sys/class/mtd/mtd2/size` != "$MTD_SIZE" || \
+ /tmp/busybox test `/tmp/busybox cat /sys/class/mtd/mtd2/name` != "datadata" ; then
# we're running on a mtd (old) device
# make sure sdcard is mounted
@@ -97,6 +109,19 @@ elif /tmp/busybox test `/tmp/busybox cat /sys/class/mtd/mtd2/size` != "$DATA_SIZ
# everything is logged into /sdcard/cyanogenmod_mtd_old.log
set_log /sdcard/cyanogenmod_mtd_old.log
+ if ! /tmp/busybox test -e /.accept_wipe ; then
+ /tmp/busybox touch /.accept_wipe
+ ui_print
+ ui_print "============================================"
+ ui_print "This ROM uses an incompatible partition layout"
+ ui_print "Your /data will be wiped upon installation"
+ ui_print "Run this update.zip again to confirm install"
+ ui_print "============================================"
+ ui_print
+ exit 9
+ fi
+ /tmp/busybox rm /.accept_wipe
+
# write the package path to sdcard cyanogenmod.cfg
if /tmp/busybox test -n "$UPDATE_PACKAGE" ; then
/tmp/busybox echo "$UPDATE_PACKAGE" > /sdcard/cyanogenmod.cfg
@@ -183,13 +208,22 @@ elif /tmp/busybox test -e /dev/block/mtdblock0 ; then
# remove the cyanogenmod.cfg to prevent this from looping
/tmp/busybox rm -f /sdcard/cyanogenmod.cfg
- # unmount and format system (recovery seems to expect system to be unmounted)
+ # unmount system and data (recovery seems to expect system to be unmounted)
/tmp/busybox umount -l /system
- /tmp/make_ext4fs -b 4096 -g 32768 -i 8192 -I 256 -a /system $DATA_PART
-
- # unmount and format data
/tmp/busybox umount -l /data
- /tmp/erase_image userdata
+
+ # setup lvm volumes
+ /lvm/sbin/lvm pvcreate $MMC_PART
+ /lvm/sbin/lvm vgcreate lvpool $MMC_PART
+ /lvm/sbin/lvm lvcreate -L 400M -n system lvpool
+ /lvm/sbin/lvm lvcreate -l 100%FREE -n userdata lvpool
+
+ # format data (/system will be formatted by updater-script)
+ /tmp/make_ext4fs -b 4096 -g 32768 -i 8192 -I 256 -l -16384 -a /data /dev/lvpool/userdata
+
+ # unmount and format datadata
+ /tmp/busybox umount -l /datadata
+ /tmp/erase_image datadata
# restart into recovery so the user can install further packages before booting
/tmp/busybox touch /cache/.startrecovery