现在的位置: 首页 > 综合 > 正文

生成签名和混淆代码进行打包

2018年05月25日 ⁄ 综合 ⁄ 共 1116字 ⁄ 字号 评论关闭

研究了一下android的apk的签名和代码的混淆打包,如果不混淆打包,那么apk可以直接被人反编译出来查看源码,混淆打包虽然还是能看懂,但是没有那么好懂了,至少要话费些时间如果不混淆,反编译后的代码如下:

基本上就是源码。
如果 混淆后,反编译后的代码如下:

代码中出现很多的a、b、c之类的变量命名,所以要读懂就具有一定的困难了!
下面先说一下apk的签名:
1.apk签名必须先弄一个key,如何生成key呢?那么就要运用jdk来生成。
首先必须把jdk在系统环境变量中配置好。这个就不多说了,这是使用java就必须配置好的。
2.生成keystore
运行cmd,然后使用cd 进入 C:\Program Files\Java\jdk1.6.0_10\bin>(也就是你C盘的安装jdk的位置)目录下,然后输入keytool -genkey -alias android.keystore -keyalg RSA -validity 50000 -keystore
-validity是证书的有效期,写50000天;android.keystore指的keystore的别名,一般为apk名称。
命令执行后会在C:\Program Files\Java\jdk1.6.0_10\bin>目录下生成android.keystore文件。如下图:

弄到apk后就可以打包了,并且带上自己的签名。
在打包前我们需要加点东西来混淆代码,是我们打包后再反编译后无法正常查看代码。
混淆代码其实灰常简单,在需要打包的项目下找到 project.properties这个文件,打开然后在最下面加上一句话就ok了,如下图:

低版本的adt不是这样写的,高版本就这样写就ok了,如果是低版本的话是写成 proguard.config=proguard.cfg。不过现在一般都用不上了,都是搞版本的,在高版本中这样写就会在打包的最后步骤上报错:报错的大概内容是:
invalid proguard configuration file path c:.../proguard.cfg dose not exist  or is not regular file
加完后就可以签名打包apk了;在apk包含了第三方jar包的时候,可能有些jar包是不需要混淆的,或者自己app的有些类不需要混淆,此时可以在proguard-project.txt中进行设置:

以上是app自身的类不被混淆。

这个是保持第三方jar包不被混淆。

下面介绍如何在eclipse中生成带签名的应用包,在Eclipse界面点击 File-》Export...

这样就完成签名的生成和代码的混淆,可以正式上线应用了。可能一个项目涉及到多个app应用,最好使用同一个签名。

抱歉!评论已关闭.