最近工作中遇到将项目导出为xxx.jar,供合作方使用。jar文件无法通过加密提供给第三方使用,但是使用Eclipse–>export–>jar file的方式导出的xxx.jar是未做混淆处理的,直接给对方很容易被反编译,也显得自己很菜。于是就研究了xxx.jar的混淆方式。在网上各种浏览,借鉴。
下文将介绍如何使用ProGuard对xxx.jar进行可配置的混淆,proguard位于sdk的tools/progurad目录下,可通过tools/proguard/binproguardgui.bat启动可视化界面。
-
1.加载proguard.pro配置文件,使用项目中的混淆文件,请将文件copy一份并修改后缀名为.pro,点击下图中的红框将混淆文件导入
2.配置需要混淆的jar包,需要注意的是上部分是可以把多个jar包混淆输出成一个jar包,下半部分为混淆时所需的依赖jar包。
3.配置那些内容在混淆时忽略的,这里我选择了“Library”和“Enumeration”。
4.需要特别注意红框的选项
5.Optimization界面
6.红框1,正确选择target下拉框对应的jdk版本,否则可能出现异常错误。红框2,编译时如果遇到未找到定义的警告,那么在这里添加需要忽略的内容,详细看后面的步骤。*(这里请注意,不要选择jdk-target,否则混淆后的jar文件放到项目libs下,项目就报出Conversion to Dalvik format failed with error 1。选择指定jdk版本会有局限性)*
7.点击红框的按钮后,界面出现对上面一系列配置进行的汇总,此时最好进行保存(红框版本的按钮)。保存后的文件为.pro后缀,可以使用编辑软件进行对其作修改(必须按照proguard规范进行),再按照上述步骤进行重新加载。到这里一起工作已经就绪,那么点击“Process”开始混淆吧!(遇到警告或错误停止混淆,请使用“-dontwarn”进行屏蔽处理)。祝你好运,一切顺利,哈哈。
上述完成后,可根据混淆需求,修改保存的.pro文件,按第一步的方式导入然后执行第七步的Process,如此反复调试,知道混淆出自己满意的jar来。
今天在此做个笔记,也方便他人。