您的位置:首页 > 移动开发 > Android开发

android packages.xml指定应用签名信息检索、编辑脚本

2016-05-11 16:03 786 查看
一.不借助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@app@cn.wz.niug*.apk@classes.dex
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息