开机copy 方式,内置apk

from:http://blog.chinaunix.net/uid-29535415-id-4168539.html

Android系统量产版本编译都是user版本或者叫release版本,放在system/app目录下的apk是不允许终端用户手动删除的。

要实现能够让手动删除,下面讨论一种方法就是先将预备安装的应用放/system目录下某一个目录中如preloadapp目录,

在首次开机的时候执行一个脚本如preloadapp.sh将该目录的应用拷贝到data/app目录即可

将要预安装的apk放入system/preloadapp目录,第一次开机的时候执行preloadapp.sh脚本

将preloadapp目录的apk拷贝到data/app目录中,然后再开始安装apk,这样安装的apk就能够被手动删除,恢复出厂设置

删除data/app目录的apk,而system/preloadapp目录的apk可以保留。

缺点:同一个apk占用系统两份空间,system/preloadapp和data/app

1>preload脚本

点击(此处)折叠或打开

=========================================================================

#!/system/xbin/busyboxsh

PRELOAD_DEST=/data/app

PRELOAD_FLAG=${PRELOAD_DEST}/.preloadapp

PRELOAD_SOURCE=/system/preloadapp

if[!-d${PRELOAD_DEST}]

then

mkdir-p${PRELOAD_DEST}

fi

if[!-f${PRELOAD_FLAG}]

then

cp-f${PRELOAD_SOURCE}/*${PRELOAD_DEST}

echo"abcd">${PRELOAD_FLAG}

fi

=========================================================================

2>首次开机的时候执行脚本

点击(此处)折叠或打开

device/xxx/xxxx/init.xxxx.rc中增加如下代码,让android系统启动的时候执行preloadapp.sh脚本

=========================================================================

servicepreloadapp/system/bin/logwrapper/system/xbin/preloadapp.sh

usersystem

classmain

disabled

oneshot

=========================================================================

3>需要做preload的apk编译安装路径设置

将所有需要做preload动作的apk可以指定放入system/preloadapp目录即可

相关推荐