Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/sbin/sh
- # Installer script for Team ICSSGS
- # © 2012 Team ICSSGS
- # Written by DemonWav
- set -x
- PATH=$PATH:/tmp:/tmp/updates
- BUSYBOX="/tmp/icssgs-data/busybox"
- mount_part()
- {
- if ! [ $($BUSYBOX mount | $BUSYBOX grep "/$1" | $BUSYBOX wc -l) -eq "1" ] ; then
- $BUSYBOX mkdir -p /$1
- $BUSYBOX umount -l /dev/block/$2
- if ! $BUSYBOX mount -t $3 /dev/block/$2 /$1 ; then
- echo "$1 cannot be mounted successfully."
- fi
- else
- $BUSYBOX umount -l /dev/block/$2
- if ! $BUSYBOX mount -t $3 /dev/block/$2 /$1 ; then
- echo "$1 cannot be mounted successfully."
- fi
- fi
- }
- format_data()
- {
- #mount system
- mount_part system mtdblock2 yaffs2
- #copy needed libs for mkfs.ext4
- $BUSYBOX cp -r /tmp/updates/lib/* /system/lib/
- #make needed symlink for mkfs.ext4
- $BUSYBOX ln -s /tmp/updates/mke2fs /tmp/updates/mkfs.ext4
- ext4_format mmcblk0p2
- mount_new data mmcblk0p2
- }
- ext4_format()
- {
- /tmp/updates/mkfs.ext4 -F -J size=32 -T default /dev/block/$1
- /tmp/updates/tune2fs -c 100 -i 100d -m 0 /dev/block/$1
- }
- mount_new()
- {
- /tmp/updates/e2fsck -p /dev/block/$2
- $BUSYBOX mount -t ext4 -o noatime,barrier=0,data=ordered,barrier=1,noauto_da_alloc /dev/block/$2 /$1
- echo -e "\n"
- }
- wipedata()
- {
- #mount sdcard
- mount_part sdcard mmcblk0p1 vfat
- #check if the data needs to be wiped or not
- if [ -e /sdcard/wipedata ] ; then
- #the data does need to be wiped
- #format cache
- $BUSYBOX umount -l /cache
- /tmp/erase_image cache
- #format data
- $BUSYBOX umount /data
- format_data
- #format datadata
- $BUSYBOX umount -l /datadata
- /tmp/erase_image datadata
- #cleanup sdcard
- $BUSYBOX rm -rf /sdcard/.android_secure
- $BUSYBOX rm -rf /sdcard/wipedata
- else
- #the data does not need to be wiped, so restore batterystats.bin
- #ensure that /data/system exists, just to be safe
- mount_part data mmcblk0p2 ext4
- $BUSYBOX mkdir -p /data/system/
- #restore batterystats.bin and remove the backup from the sdcard
- $BUSYBOX cp /sdcard/batterystats.bin /data/system/batterystats.bin
- $BUSYBOX rm -rf /sdcard/batterystats.bin
- fi
- $BUSYBOX umount -l /sdcard
- $BUSYBOX umount -l /data
- }
- rebootchecker()
- {
- #check if the device is MTD or not
- if [ $($BUSYBOX mount | $BUSYBOX grep "stl" | $BUSYBOX wc -l) -gt "0" ] ; then
- #the device is not MTD, so a reboot will be needed
- exit 0
- else
- #the device is MTD, so check if it is CM7 or not
- if $BUSYBOX test `$BUSYBOX cat /sys/class/mtd/mtd2/size` != 262144000 ; then
- #the device is CM7, so a reboot will be necesary
- exit 0
- fi
- fi
- exit 1
- }
- backup_efs()
- {
- if [ -e /sdcard/backup/efs ] ; then
- $BUSYBOX mv /sdcard/backup/efs /sdcard/backup/efs-$$
- fi
- $BUSYBOX rm -rf /sdcard/backup/efs
- $BUSYBOX mkdir -p /sdcard/backup/efs
- $BUSYBOX cp -a /efs/ /sdcard/backup
- }
- restore_efs()
- {
- $BUSYBOX umount -l /efs
- /tmp/erase_image efs
- mount_part efs mtdblock4 yaffs2
- $BUSYBOX cp -a /sdcard/backup/efs /
- $BUSYBOX chmod 0755 /efs
- $BUSYBOX umount -l /efs
- }
- reboot()
- {
- #check if the device is MTD or not
- if [ $($BUSYBOX mount | $BUSYBOX grep "stl" | $BUSYBOX wc -l) -gt "0" ] ; then
- #the device is not MTD, so a reboot will be needed
- #mount cache and clear recovery
- mount_part sdcard mmcblk0p1 vfat
- mount_part cache stl11 rfs
- if ! [ -d /cache/recovery ] ; then
- $BUSYBOX mkdir /cache/recovery
- else
- $BUSYBOX rm -rf /cache/recovery/extendedcommand
- fi
- #backup /efs
- mount_part efs stl3 rfs
- backup_efs
- $BUSYBOX rm -rf /sdcard/clockworkmod/.settings
- #reboot and restart flash
- if [ -n "$UPDATE_PACKAGE" ] ; then
- PACKAGE_LOCATION=${UPDATE_PACKAGE#/mnt}
- $BUSYBOX echo "$PACKAGE_LOCATION" > /sdcard/cyanogenmod.cfg
- fi
- #export tmp files to sdcard
- if [ -d /sdcard/icssgsinstall/tmpfiles ] ; then
- $BUSYBOX cp -a /tmp/icssgs-data/* /sdcard/icssgsinstall/tmpfiles/
- else
- $BUSYBOX mkdir -p /sdcard/icssgsinstall/tmpfiles
- $BUSYBOX cp -a /tmp/icssgs-data/* /sdcard/icssgsinstall/tmpfiles/
- fi
- $BUSYBOX touch /sdcard/icssgsinstall/tmpfiles/check.prop
- $BUSYBOX echo -e "continue_install=yes\n" > /sdcard/icssgsinstall/tmpfiles/check.prop
- $BUSYBOX touch /sdcard/icssgsinstall/continue_install
- $BUSYBOX sync
- $BUSYBOX reboot now
- else
- #the device is MTD, so check if it is CM7 or not
- if $BUSYBOX test `$BUSYBOX cat /sys/class/mtd/mtd2/size` != 262144000 ; then
- #the device is CM7, so a reboot will be necesary
- $BUSYBOX rm -rf /sdcard/clockworkmod/.settings
- #mount sdcard
- mount_part sdcard mmcblk0p1 vfat
- mount_part system mtdblock2 yaffs2
- $BUSYBOX rm -f /system/build.prop
- $BUSYBOX umount -l /system
- #reboot and restart flash
- if $BUSYBOX [ -n "$UPDATE_PACKAGE" ] ; then
- $BUSYBOX echo "$UPDATE_PACKAGE" > /sdcard/cyanogenmod.cfg
- fi
- $BUSYBOX sync
- /sbin/reboot now
- else
- #the device is not CM7, so cleanup and restore efs
- mount_part sdcard mmcblk0p1 vfat
- #prevent the device from looping
- $BUSYBOX rm -rf /sdcard/cyanogenmod.cfg
- #restore /efs
- restore_efs
- fi
- fi
- $BUSYBOX umount -l /sdcard
- }
- modem()
- {
- #check to make sure a modem exists to flash
- if [ -e /tmp/modem.bin ] ; then
- #format /radio
- $BUSYBOX umount -l /radio
- /tmp/erase_image radio
- #make sure /radio is mounted properly
- mount_part radio mtdblock5 yaffs2
- #copy new modem.bin
- $BUSYBOX cp /tmp/modem.bin /radio/modem.bin
- #set modem.bin permissions and owner
- $BUSYBOX chmod 0600 /radio/modem.bin
- $BUSYBOX chown radio.radio /radio/modem.bin
- fi
- }
- datarestore()
- {
- mount_part sdcard mmcblk0p1 vfat
- mount_part data mmcblk0p2 ext4
- #restore data backup
- if [ -d /data/data ] ; then
- if [ -d /sdcard/icssgsbackup/data ] ; then
- $BUSYBOX cp -a /sdcard/icssgsinstall/backup/data/* /data/data/
- fi
- else
- $BUSYBOX mkdir -p /data/data
- if [ -d /sdcard/icssgsbackup/data ] ; then
- $BUSYBOX cp -a /sdcard/icssgsinstall/backup/data/* /data/data/
- fi
- fi
- #restore app backup
- if [ -d /data/app ] ; then
- if [ -d /sdcard/icssgsbackup/data ] ; then
- $BUSYBOX cp -a /sdcard/icssgsinstall/backup/app/* /data/app/
- fi
- else
- $BUSYBOX mkdir -p /data/app
- if [ -d /sdcard/icssgsbackup/app ] ; then
- $BUSYBOX cp -a /sdcard/icssgsinstall/backup/app/* /data/app/
- fi
- fi
- }
- databackup()
- {
- if [ $($BUSYBOX mount | $BUSYBOX grep "stl" | $BUSYBOX wc -l) -gt "0" ] ; then
- #the device is BML, check if /data is rfs or ext4
- $BUSYBOX mount -t rfs /dev/block/mmcblk0p2 /data
- if [ $($BUSYBOX mount | $BUSYBOX grep "/dev/block/mmcblk0p2 on /data type rfs" | $BUSYBOX wc -l) -eq "1" ]; then
- echo "/data is successfully mounted as RFS"
- else
- $BUSYBOX mount -t ext4 /dev/block/mmcblk0p2 /data
- echo "/data is successfully mounted as EXT4"
- fi
- else
- #the device is MTD
- $BUSYBOX mount -t ext4 /dev/block/mmcblk0p2 /data
- fi
- mount_part sdcard mmcblk0p1 vfat
- DEL=$($BUSYBOX find /data/data/com.android*)
- $BUSYBOX rm -rf $DEL
- $BUSYBOX mkdir -p /sdcard/icssgsinstall/backup/app
- $BUSYBOX cp -a /data/app/* /sdcard/icssgsinstall/backup/app/
- $BUSYBOX mkdir -p /sdcard/icssgsinstall/backup/data
- $BUSYBOX cp -a /data/data/* /sdcard/icssgsinstall/backup/data/
- }
- checkdata()
- {
- #check if the device is MTD or not
- if ! [ $($BUSYBOX mount | $BUSYBOX grep "stl" | $BUSYBOX wc -l) -gt "0" ] ; then
- #the device is MTD
- #mount sdcard and system
- mount_part sdcard mmcblk0p1 vfat
- mount_part system mtdblock2 yaffs2
- #check to see if a data wipe is going to be neceasary
- if [ $($BUSYBOX cat /system/build.prop | $BUSYBOX grep "update.device.version=" | $BUSYBOX awk '{print $2}') -le 3 ] ; then
- exit 0
- else
- #a data wipe will not be needed, so go ahead and backup the batterystats.bin
- #mount sdcard and data
- mount_part sdcard mmcblk0p1 vfat
- mount_part data mmcblk0p2 ext4
- #save the batterystats.bin on the sdcard
- $BUSYBOX cp /data/system/batterystats.bin /sdcard/batterystats.bin
- fi
- else
- #the device is not MTD, so a data wipe will be needed
- #mount sdcard
- exit 0
- fi
- $BUSYBOX umount -l /sdcard/
- $BUSYBOX umount -l /system
- $BUSYBOX umount -l /data
- exit 1
- }
- checker()
- {
- mount_part sdcard mmcblk0p1 vfat
- if [ -e /sdcard/icssgsinstall/continue_install ] ; then
- #export tmp files back to /tmp
- $BUSYBOX mkdir -p /tmp/icssgs-data/
- $BUSYBOX cp -a /sdcard/icssgsinstall/tmpfiles/* /tmp/icssgs-data/
- else
- exit 1
- fi
- exit 0
- }
- nodatawipe()
- {
- echo "selected.0=1" > /tmp/icssgs-data/wipedatachoose.prop
- }
- mount_efs()
- {
- mount_part efs mtdblock4 yaffs2
- }
- mount_sdcard()
- {
- mount_part sdcard mmcblk0p1 vfat
- }
- backup()
- {
- if [ -e /tmp/icssgs-data/backup.prop ] ; then
- exit 0
- else
- exit 1
- fi
- }
- wipedatachoose()
- {
- if [ -e /tmp/icssgs-data/wipedatachoose.prop ] ; then
- YES=$($BUSYBOX cat /tmp/icssgs-data/wipedatachoose.prop | $BUSYBOX grep "selected.0=1" | $BUSYBOX wc -l)
- if [ $YES -eq 1 ] ; then
- exit 0
- else
- exit 1
- fi
- else
- exit 1
- fi
- }
- cleanup()
- {
- mount_part sdcard mmcblk0p1 vfat
- $BUSYBOX rm -rf /sdcard/icssgsinstall
- }
- $1
Add Comment
Please, Sign In to add comment