# setting enviroment
SCRIPTVER="MT6577_a4_v2c.info"
STARTTIME="`date +%H:%M:%S`"
DEFSTORAGE="/mnt/sdcard"
BACKUPPATH="$DEFSTORAGE/backup_v2"
TIMESTAMP="`date +%Y%m%d-%H%M`"
TIMESTAMPCWM="`date +%Y-%m-%d.%H.%M.%M`"
DESTDIR="$BACKUPPATH/$TIMESTAMP"
NANDDIR="$DESTDIR/BDRS-$TIMESTAMPCWM"
OVERDIR="$DESTDIR/over"
MISKDIR="$DESTDIR/misk"
TMPDIR="$DESTDIR/tmp"
BKTOOLPATH="/cache/bktool"
# create dirs
mkdir $BACKUPPATH
mkdir $DESTDIR
mkdir $NANDDIR
mkdir $OVERDIR
mkdir $MISKDIR
# mkdir $TMPDIR
mkdir $BKTOOLPATH
cd $DESTDIR
echo $SCRIPTVER > $DESTDIR/$SCRIPTVER
# prepare
echo "0% Starting!"
busybox rm -r -f $BKTOOLPATH
mkdir $BKTOOLPATH
cat /mnt/sdcard/gscript/bin/busybox > $BKTOOLPATH/busybox
chmod 6755 $BKTOOLPATH/busybox
cat /mnt/sdcard/gscript/bin/make_ext4fs > $BKTOOLPATH/make_ext4fs
chmod 6755 $BKTOOLPATH/make_ext4fs
cat /mnt/sdcard/gscript/bin/ext2simg > $BKTOOLPATH/ext2simg
chmod 6755 $BKTOOLPATH/ext2simg
$BKTOOLPATH/busybox mount -o remount,rw -t emmc /emmc@android /system
$BKTOOLPATH/busybox mount -o remount,rw -t emmc /emmc@usrdata /data
$BKTOOLPATH/busybox mount -o remount,rw -t emmc /emmc@cache /cache
echo "1% Collecting device information."
dd if=/proc/dumchar_info of=$DESTDIR/firmware.info 2>/dev/null
echo "firmware.info"
#===============Build info==============
$BKTOOLPATH/busybox grep "ro.build.*" /system/build.prop | $BKTOOLPATH/busybox grep -v "# *" > $MISKDIR/config.info
echo "config.info"
#===============cmd line info===========
cat /proc/cmdline > $MISKDIR/cmdline.info
echo "cmdline.info"
#===============CPU info================
cat /proc/cpuinfo > $MISKDIR/cpu.info
echo "cpu.info"
#===============ROM info================
$BKTOOLPATH/busybox df > $MISKDIR/rom.info
echo "rom.info"
#===============RAM info================
$BKTOOLPATH/busybox free > $MISKDIR/ram.info
echo "ram.info"
echo "2% Create images!"
# preloader section=========================================== =============================
dd if=/dev/preloader of=$OVERDIR/full_preloader_part.raw bs=512c 2>/dev/null
dd if=/dev/preloader of=$DESTDIR/preloader.img bs=512c count=256 skip=4 2>/dev/null
echo "preloader"
dd if=/dev/preloader of=$OVERDIR/unknown.raw bs=512c count=64 skip=324 2>/dev/null
# dsp_bl section=========================================== ================================
dd if=/dev/preloader of=$DESTDIR/dsp_bl.img bs=512c count=64 skip=260 2>/dev/null
echo "dsp_bl"
# MBR section=========================================== ===================================
dd if=/dev/mbr of=$DESTDIR/mbr.img bs=512c count=1 2>/dev/null
echo "mbr"
# EBR1 section=========================================== ==================================
dd if=/dev/ebr1 of=$DESTDIR/ebr1.img bs=512c count=1 2>/dev/null
echo "ebr1"
# pmt section=========================================== ==================================
dd if=/dev/pmt of=$OVERDIR/pmt.raw bs=512c count=16 2>/dev/null
echo "pmt"
# nvram in both formats
dd if=/dev/nvram of=$MISKDIR/nvram.img bs=5242880c count=1 2>/dev/null
$BKTOOLPATH/busybox tar -cf $MISKDIR/nvram.tar /data/nvram 2>/dev/null
echo "nvram"
# ower section=========================================== ==================================
dd if=/dev/seccfg of=$OVERDIR/seccfg.raw bs=512c count=256 2>/dev/null
echo "seccfg"
dd if=/dev/uboot of=$DESTDIR/uboot.img bs=393216c count=1 2>/dev/null
echo "uboot"
dd if=/dev/bootimg of=$DESTDIR/boot.img bs=6291456c count=1 2>/dev/null
dd if=/dev/bootimg of=$NANDDIR/boot.img bs=6291456c count=1 2>/dev/null
echo "boot"
dd if=/dev/recovery of=$DESTDIR/recovery.img bs=6291456c count=1 2>/dev/null
dd if=/dev/recovery of=$NANDDIR/recovery.img bs=6291456c count=1 2>/dev/null
echo "recovery"
dd if=/dev/sec_ro of=$OVERDIR/sec_ro.raw bs=6291456c count=1 2>/dev/null
echo "sec_ro.raw"
dd if=/dev/misc of=$OVERDIR/misc.raw bs=393216c count=1 2>/dev/null
echo "misc"
dd if=/dev/logo of=$DESTDIR/logo.img bs=3145728c count=1 2>/dev/null
echo "logo"
dd if=/dev/expdb of=$OVERDIR/expdb.raw bs=655360c count=1 2>/dev/null
echo "expdb"
echo "20% Dell trash."
$BKTOOLPATH/busybox rm -r -f /system/lost+found
$BKTOOLPATH/busybox rm -r -f /data/core
$BKTOOLPATH/busybox rm -r -f /data/misc/sensors
$BKTOOLPATH/busybox rm -r -f /data/lost+found
echo "Create image of system partition."
export SYSTEM_SIZE=$($BKTOOLPATH/busybox df -m | $BKTOOLPATH/busybox grep emmc@android | $BKTOOLPATH/busybox awk '{print $2}')
$BKTOOLPATH/make_ext4fs -s -l "$SYSTEM_SIZE"M -L system $DESTDIR/system.img /system > /dev/null
$BKTOOLPATH/busybox tar -cf $NANDDIR/system.ext4.tar /system 2>/dev/null
echo "45% Complete system!"
echo "Create image of cache partition."
export CACHE_SIZE=$($BKTOOLPATH/busybox df -m | $BKTOOLPATH/busybox grep emmc@cache | $BKTOOLPATH/busybox awk '{print $2}')
$BKTOOLPATH/make_ext4fs -s -l "$CACHE_SIZE"M -L cache $MISKDIR/cache.img /cache > /dev/null
$BKTOOLPATH/busybox tar -cf $NANDDIR/cache.ext4.tar /cache 2>/dev/null
echo "50% Complete cache!"
echo "Create image of data partition."
$BKTOOLPATH/ext2simg -v /dev/block/mmcblk0p3 $DESTDIR/data.img > /dev/null
$BKTOOLPATH/busybox tar -cf $NANDDIR/data.ext4.tar /data 2>/dev/null
echo "90% Complete data!"
cd $NANDDIR
$BKTOOLPATH/busybox md5sum *.* > nandroid.md5
cd $DESTDIR
$BKTOOLPATH/busybox ls -lhR >> $SCRIPTVER
echo "98% md5 sum for generated, OK"
echo "100% Backup complite!!!"
echo "Saved to $DESTDIR"
echo "Start Time:$STARTTIME; End Time:`date +%H:%M:%S`."