随着Android的飞速发展,越来越多的开发人员认识到Android的优势,Android应用的数量也是急剧增加,已经突破10万大关,如此多的应用难免有些参差不齐,不少应用带有广告,还有很多应用申请了一些不必要的权限,增加了Android系统的运行负担和安全性。比如有得应用没必要使用接收短信的权限,却申请了短信接收权限,导致系统在手到短信时会自动启动该应用,占用资源,同时也会与系统本身的短信程序冲突,可能导致短信程序崩溃,短信接收不全或者丢失。此外,应用中带了短信权限就有暗自发短信的嫌疑。下面介绍自己动手去除不必要权限的方法。
操作分为四步(注意设置好JDK1.6的环境变量):
一.解包(注意把APK名字改成纯英文,不要有空格和各种符号,否则打包时会报错):
解包命令:java -jar apktool.jar d 文件名.apk 目录名
二.修改AndroidManifest.xml:
如果应用不需要编写和收发短信,删除以下内容:
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.SEND_SMS" />
如果应用不需要收彩信,删除以下内容:
<uses-permission android:name="android.permission.RECEIVE_MMS" />
如果应用不需要收WAP推送内容,删除以下:
<uses-permission android:name="android.permission.RECEIVE_WAP_PUSH" />
如果应用不需要打电话,删除以下内容:
<uses-permission android:name="android.permission.CALL_PHONE" />
如果应用没有上网必要,删除以下三项:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
别的不需要的权限也可一并删除。
三.打包:命令:java -jar apktool.jar b 目录名;
四.签名:命令:java -jar signapk.jar 私钥文件名 公钥文件名 源文件名.apk 目标文件名.apk。
JDK可以到oracle网站下载;
apktool.jar在http://download.csdn.net/detail/challengeclz/3919149下载;
signapk.jar在http://download.csdn.net/detail/challengeclz/3919155下载。