Androidコード混同防止反コンパイル

3701 ワード

コードが逆コンパイルされないようにするためには,混同を加える必要がある.混同はサードパーティによってapk混同されてもよいし、androidのproguardで混同されてもよい.
混同手順:
1、構成混同ファイル、名前は勝手に、ここでproguard-androidを使って、フォーマットはtxtです.
-optimizationpasses 5                                                           #          

-dontusemixedcaseclassnames                                                     #          

-dontskipnonpubliclibraryclasses                                                #        jar

-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 class com.android.vending.licensing.ILicensingService              #          



-libraryjars libs/gson-2.0.jar                                                  #       jar    



-keepclasseswithmembernames class * {                                           #    native       

    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 * extends android.app.Activity {                        #             

   public void *(android.view.View);

}



-keepclassmembers enum * {                                                      #      enum      

    public static **[] values();

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

}



-keep class * implements android.os.Parcelable {                                #    Parcelable     

  public static final android.os.Parcelable$Creator *;

}



 

-keepclassmembers class **.R$* {                                                #   R      

    public static <fields>;

}

-keep class com.alipay.android.app.IAliPay{*;}                                  #             



-keep class com.android.app.view**{*;}                                          #               





-keep class com.android.app.CommonCallback{                                     #                           

	public protected <fields>;

    public protected <methods>;

}



-keep class com.android.app.Platform$*{                                         #          

	 *;

}

#-keep class  com.android.app.** implements  com.android.app.Platform$ICallback {*;}   #           



-dontwarn android.support.**
、導入
プロジェクトのプロジェクトでpropertiesファイルにproguardを追加します.config=proguard-android.txtは、上に書いてある混同ファイルです.
3、androidデフォルトの実行環境はdebugモードであり、コード混同を実行しない.そのため、プロジェクトに署名する必要があります.パッケージ中にエラーが発生した場合は、ファイルのどこに書いてあるかを混同して問題がある可能性があります.
リファレンス
http://blog.csdn.net/lovexjyong/article/details/24652085