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

一.不借助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


你可能感兴趣的:(封装工具)