#!system/bin/sh
#######################################################################
# Author: cuikai
# mail: cuikai@skyworth.com
# Created Time: 2013年03月26日 星期二 13时59分01秒
#######################################################################
function preistall(){
echo "do preinstall job"
if [ ! -d "/system/preinstall/" ]; then
mount -o rw,remount -t ext4 /system
mkdir /system/preinstall/
chmod 755 /system/preinstall/
mount -o ro,remount -t ext4 /system
fi
if [ ! -e /data/property/persist.sys.preinstalled ]; then
for d in $(busybox find /system/preinstall/ -maxdepth 2 -name "*.apk")
do
echo "$d"
/system/bin/sh /system/bin/pm install -r $d
done
echo "touch"
setprop persist.sys.preinstalled 1
fi
echo "preinstall ok"
}
function check_cache()
{
echo "check cache"
sleep 5
df | grep /cache >/dev/null 2>&1
res=$?
echo $res
log "cache="$res
if [ $res == 1 ]; then
log "cache--clr"
mke2fs -t ext4 -b 4096 -L data /dev/block/platform/ff0f0000.dwmmc/by-name/cache
sleep 1
reboot
fi
df | grep /data >/dev/null 2>&1
res=$?
echo $res
log "data="$res
if [ $res == 1 ]; then
log "data--clr"
mke2fs -t ext4 -b 4096 -L data /dev/block/platform/ff0f0000.dwmmc/by-name/userdata
sleep 1
reboot
fi
state=`getprop ro.crypto.state`
if [ "$state" == "encrypted" ]; then
busybox fuser -m -k -9 /data;umount /data
mke2fs -t ext4 -b 4096 -L data /dev/block/platform/ff0f0000.dwmmc/by-name/userdata
reboot
fi
}
cat_log()
{
st=`getprop persist.sys.abc_switch`
echo log===$st
if [ -z $st ] ; then
echo log--null
return
fi
if [ $st == 1 ]; then
echo log-en
start abc
fi
}
get_resource_path()
{
rebootFlag=0
line=`busybox find /mnt/media_rw/ -name resource.img`
echo $line
if [ -z $line ] ; then
echo "no file"
else
if [[ $line == */yx/resource.img* ]] ; then
echo "find a resource file"
cat $line >> /dev/block/platform/ff0f0000.dwmmc/by-name/resource
rebootFlag=1
fi
fi
line=`busybox find /mnt/media_rw/ -name kernel.img`
echo $line
if [ -z $line ] ; then
echo "no file"
else
if [[ $line == */yx/kernel.img* ]] ; then
echo "find a kernel file"
cat $line >> /dev/block/platform/ff0f0000.dwmmc/by-name/kernel
rebootFlag=1
fi
fi
line=`busybox find /mnt/media_rw/ -name boot.img`
echo $line
if [ -z $line ] ; then
echo "no file"
else
if [[ $line == */yx/boot.img* ]] ; then
echo "find a boot file"
cat $line >> /dev/block/platform/ff0f0000.dwmmc/by-name/boot
rebootFlag=1
fi
fi
echo "reboot === $rebootFlag"
if [ $rebootFlag == 1 ] ; then
echo "reboot "
sync
reboot
else
echo "normal"
fi
}
function preinstall()
{
echo "modify route table"
busybox ip rule add from all lookup main pref 9000
}
log start
rm /data/system/locksettings.db
rm /data/system/*.key
log start--go--
while [ true ];
do
boot_ok=`getprop sys.boot_completed`
echo bootok= $boot_ok
if [ $boot_ok == 1 ]; then
preistall
echo "=====get_resource_path============"
get_resource_path
sleep 2
else
preinstall
check_cache
cat_log
sleep 1
fi
done
评论0