#!/system/bin/sh MNT_DEV="" MNT_PATH="/system/sd" MOUNT_DEV=0 export PATH="/usr/bin:/usr/sbin:/bin:$PATH" export TERM="xterm" export HOME="/root" export LANG="en_US.UTF-8" export LC_ALL="en_US.UTF-8" if [ $MOUNT_DEV -eq 1 ]; then MNT_PATH_DEV="$MNT_PATH/dev" else MNT_PATH_DEV="" fi CHK_MOUNT(){ awk '{if ($2=="'$1'") {exit 1;}}' /proc/mounts return $? } CLEAN_MNT(){ busybox umount $MNT_PATH/dev/shm $MNT_PATH/dev/pts $MNT_PATH_DEV $MNT_PATH/proc $MNT_PATH/sys $MNT_PATH/sdcard $MNT_PATH/android/system if [ $? -ne 0 ]; then busybox umount -fl $MNT_PATH/dev/shm $MNT_PATH/dev/pts $MNT_PATH_DEV $MNT_PATH/proc $MNT_PATH/sys $MNT_PATH/sdcard $MNT_PATH/android/system fi umount $MNT_PATH } #DEVS=`cd /sys/block; ls -d sd* 2>/dev/null` #DEV_PART="1" DEVS="mmcblk1" DEV_PART="p1" for i in $DEVS; do if [ -d "/sys/block/"$i"/"$i$DEV_PART ]; then MNT_DEV=$i$DEV_PART echo 8192 > /sys/block/$i/queue/read_ahead_kb break fi done if [ -z "$MNT_DEV" ]; then echo "No USB disk in system" exit 1 fi CHK_MOUNT $MNT_PATH if [ $? -eq 0 ]; then mount -t ext4 /dev/block/$MNT_DEV $MNT_PATH if [ $? -ne 0 ]; then echo "Mount USB disk $MNT_DEV failed" CLEAN_MNT exit 2 fi fi busybox rm -f $MNT_PATH/tmp/.X*-lock $MNT_PATH/tmp/.X11-unix/X* $MNT_PATH/var/log/Xorg.*.log* $MNT_PATH/var/run/dbus/* if [ "x$MNT_PATH_DEV" = "x" ]; then busybox cp -ra /dev/graphics/fb* $MNT_PATH/dev busybox rm -rf $MNT_PATH/dev/input busybox cp -ra /dev/input $MNT_PATH/dev chmod 777 $MNT_PATH/dev/fb* busybox chown 0:0 $MNT_PATH/dev/fb* chmod 777 $MNT_PATH/dev/input/* busybox chown 0:0 $MNT_PATH/dev/input/* else CHK_MOUNT $MNT_PATH_DEV if [ $? -eq 0 ]; then mount -o bind /dev $MNT_PATH_DEV fi fi CHK_MOUNT $MNT_PATH/dev/shm if [ $? -eq 0 ]; then if [ ! -d /dev/shm ]; then busybox mkdir -m 777 /dev/shm fi mount -o bind /dev/shm $MNT_PATH/dev/shm fi CHK_MOUNT $MNT_PATH/dev/pts if [ $? -eq 0 ]; then mount -t devpts devpts $MNT_PATH/dev/pts fi CHK_MOUNT $MNT_PATH/proc if [ $? -eq 0 ]; then mount -t proc proc $MNT_PATH/proc fi CHK_MOUNT $MNT_PATH/sys if [ $? -eq 0 ]; then mount -t sysfs sysfs $MNT_PATH/sys fi mount -o bind /mnt/sdcard $MNT_PATH/sdcard mount -o bind /system $MNT_PATH/android/system if [ ! -d /sys/module/udlfb ]; then insmod /system/lib/modules/udlfb.ko fi chroot $MNT_PATH /bin/bash CLEAN_MNT