57 lines
1.6 KiB
Bash
Executable File
57 lines
1.6 KiB
Bash
Executable File
#!/system/bin/sh
|
|
|
|
cache_partition=`grep cache /proc/mtd | cut -d: -f1 | sed 's/mtd/mtdblock/'`
|
|
mountpoint=`mount | grep ${cache_partition} | awk '{print $3}'`
|
|
|
|
# make / writeable so that I can modifications
|
|
mount -o rw,remount /
|
|
|
|
if [ -h /cache ] ; then
|
|
# /cache is a symbolic link
|
|
mkdir /mnt/cache
|
|
mount -t yaffs2 -o rw /dev/block/$cache_partition /mnt/cache
|
|
if [ ! -d /mnt/cache/recovery ] ; then
|
|
mkdir /mnt/cache/recovery
|
|
mv /cache/recovery/* /mnt/cache/recovery/.
|
|
fi
|
|
rm -rf /cache/recovery
|
|
ln -s /mnt/cache/recovery /cache/recovery
|
|
elif [ -d /cache ] ; then
|
|
# /cache is a directory
|
|
if [ "$mountpoint" = "/cache" ] ; then
|
|
# /cache is mounted in the right place
|
|
# do nothing, other than permissions at the end of this script
|
|
else
|
|
# the block device is not mounted or, is mounted somewhere else
|
|
umount ${mountpoint}
|
|
mkdir /mnt/cache
|
|
mount -t yaffs2 -o rw /dev/block/$cache_partition /mnt/cache
|
|
if [ ! -d /mnt/cache/recovery ] ; then
|
|
mkdir /mnt/cache/recovery
|
|
mv /cache/recovery/* /mnt/cache/recovery/.
|
|
fi
|
|
rm -rf /cache/recovery
|
|
umount /mnt/cache
|
|
rmdir /mnt/cache
|
|
mount -t yaffs2 -o rw /dev/block/$cache_partition /cache
|
|
fi
|
|
elif [ ! -e /cache ] ; then
|
|
# the /cache doesn't exist
|
|
mkdir /cache
|
|
mount -t yaffs2 -o rw /dev/block/${cache_partition} /cache
|
|
fi
|
|
|
|
# change permission to 0.0 so market place can access /cache
|
|
chown 0.0 /cache
|
|
if [ ! -e /cache/recovery ] ; then
|
|
mkdir /cache/recovery
|
|
fi
|
|
|
|
# change permission for recovery directory so
|
|
# ROM Manager and CWM can access it
|
|
chown 1000.2001 /cache/recovery
|
|
chmod 0770 /cache/recovery
|
|
|
|
# back to read-only mode
|
|
mount -o ro,remount /
|