版权声明:本文为博主原创文章,欢迎转载,转载请注明出处,向分享精神致敬。 https://blog.csdn.net/qilvmilv/article/details/51374716
一.不借助adb uninstall,如何完全卸载应用
对于完全卸载android用户应用来讲,假设以youku.apk为例,需要卸载四个部分:
1./data/app/youku.apk
2./data/data/youku
3./data/app-lib/youku.so
4./data/system/packages.xml中与youku相关的签名信息
二.如何利用脚本在android设备启动时卸载应用
我们知道,android系统本身可以命令相对pc linux环境是裁剪过的,诸如常见awk、read等命令并不支持。
#删除apk签名信息
#确定apk信息起始位置
test=$(busybox grep -n 'cn.wz.niu' /data/system/packages.xml)#注意取值:$()
start=${test%:*}
nums=$(busybox grep -n '\/package>' /data/system/packages.xml)
#确定apk信息结束位置
for i in ${nums[*]}
do
ent=${i%:*}
#echo "$end"
if [ "$ent" -gt "$start" ];#比较大小,获取第一个比start值大数值,即为package结束行
then
echo "ent is: $ent"
break
#else
#echo "not found"
fi
done
echo "start is $start"
echo "end is: $ent"
chmod -R 777 /data/system/packages.xml
busybox sed "${start},${ent}d" /data/system/packages.xml > /data/system/temp.xml#注意给sed传递变量方法${}
rm /data/system/packages.xml
mv /data/system/temp.xml /data/system/packages.xml
chmod -R 660 /data/system/packages.xml
chown system:system /data/system/packages.xml
echo "delete sign info end"
#busybox sed "723,730d" /data/system/packages.xml > /data/system/test.xml
rm -rf /data/dalvik-cache/data@[email protected]*[email protected]
rm -rf /data/data/cn.wz.niugame
rm -rf /data/app-lib/cn.wz.niugame*
rm -rf /data/app/cn.wz.niugame*
echo "delete niugame data end"
执行过后,此时可以直接将apk拷贝到/data/app/目录下。
相关参考链接:
http://blog.csdn.net/a345017062/article/details/6236262
http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856901.html
http://www.cnblogs.com/kangyoung/p/3556173.html
http://blog.sina.com.cn/s/blog_6151984a0100emk3.html
http://www.cnblogs.com/peida/archive/2012/12/17/2821195.html
http://blog.chinaunix.net/uid-24904099-id-298600.html