工具:
proguard
(当然还有很多,例如ANT,
apkprotect等)
过程:在android2.3之前,谷歌没有太重视反编译,所以没有对adt提供加密工具,2.3以后就提供比较普及的混淆加密工具,proguard工具,位置在SDK/tools/proguard,
1.
proguard:
当新建一个安卓项目时,默认生成Proguard-project.txt 和 project.proguard这两个文件。而project.proguard的作用是配置混淆加密的开关,Proguard-project.txt文件是配置部分加密的内容。(会有同学说怎么有部分资料说在
proguard.cfg里配置加密内容的,其实在adt后期就用Proguard-project.txt代替
proguard.cfg,两者作用是一样的)
1.1 打开混淆加密开关:
project.proguard
把project.proguard文件里的“#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt”前的“#”符号去了,然后在把整句放到“target=android-17”下面。项目在打包时会读取这个文件,并作出相应的操作。
2.
keystore:
keystore是就密钥,通过建密钥,然后给apk加密签名。具体介绍可以百度
2.1 首先打包一个
未签名的apk(后面加密需要使用)
工程->右键->AndroidTools->Export Unsigned Application Package->保存
2.2给未签名的apk签名
工程->右键->AndroidTools->Export Signed Application Package...
//新建密钥
Createnew keystore 创建一个新的私钥仓库文件
(Location:是写一个本地地址,后加mykeystore.keystore,项目会自动生成密钥文件)
使用未签名的apk(已经签名的,或eclipse运行所生成的apk会报错)
最后一个加密的apk生成并覆盖原来的apk
总结:虽然混淆加密的步骤不多,不过也花了我好几天查资料,这个内容的知识内容还是很多,建议同学把我搜集的文献看一次,了解更加深入,学习更多。
请尊重作者劳动成果,转发请注明作者地址:
http://blog.sina.com.cn/steven2947
参考文献:
安卓巴士混淆加密专题