使用ANT、Proguard混淆、发布与反编译Android应用


FirstStep:下载ANT

1、 下载后解压到D:\Program Files\apache-ant-1.9.1

2、 新建ANT_HOME环境变量(D:\Program Files\apache-ant-1.9.1)

3、 将ANT加入到path 路径(%ANT_HOME%\bin)

第二步:拷入proguard.cfg到android项目,与标准版多了-dontwarnandroid.support.**   

-keep class android.support.**{*;}两句,如果运行不出错,可用标准版

-optimizationpasses 5

-dontusemixedcaseclassnames

-dontskipnonpubliclibraryclasses

-dontpreverify

-verbose

-optimizations!code/simplification/arithmetic,!field/*,!class/merging/*

-keep public class* extends android.app.Activity

-keep public class* extends android.app.Application

-keep public class* extends android.app.Service

-keep public class* extends android.content.BroadcastReceiver

-keep public class* extends android.content.ContentProvider

-keep public class* extends android.app.backup.BackupAgentHelper

-keep public class* extends android.preference.Preference

-keep public classcom.android.vending.licensing.ILicensingService

 

-keep classandroid.support.** {*;}

 

-keepclasseswithmembernames class * {

    native <methods>;

}

-keepclasseswithmembers class * {

    public <init>(android.content.Context,android.util.AttributeSet);

}

-keepclasseswithmembers class * {

    public <init>(android.content.Context,android.util.AttributeSet, int);

}

-keepclassmembers class * extendsandroid.app.Activity {

   public void *(android.view.View);

}

-keepclassmembers enum* {

    public static **[] values();

    public static ** valueOf(java.lang.String);

}

-keep class *implements android.os.Parcelable {

  public static finalandroid.os.Parcelable$Creator *;

}

 

 -dontwarnandroid.support.**

第三步:项目操作

1、 除主函数外建A、B两java类

2、 进入workspace 输出android update project --name c -t 14 -p c更新项目,其中c为项目名,14为版本号 在项目中新增了build.xml、local.properties两文件

第四步:申请keystore 请用管理员身份打开命令提示符

 

 

第五步:将生成的android.keystore拷入项目key目录,新建ant.properties文件,输入proguard.config=proguard.cfg

 

key.store=key/android.keystore

key.alias=android.keystore

 

key.store.password=xxxxxx

key.alias.password=xxxxxx

 

 

第六步:用命令提示符进入该项目下输入ant release (若最后出现Build succesfull及bin目录下生成有apk,则成功)

 

第七步:下载反编译所需要的文件dex2jar、jd-gui,将之前生成的c-release.apk改名为c-release.zip,解压后取出其中的classes.dex,将之拷入dex2jar目录下,用命令提示符进入dex2jar目录并输入dex2jar.bat classes.dex,成功后将生成classes_dex2jar.jar,之后用jd-gui打开classes_dex2jar.jar即可看见其源文件(若混淆后的则悲剧了)

 

原文地址:https://www.cnblogs.com/dyllove98/p/3123032.html