Androidコード混同防止反コンパイル
3701 ワード
コードが逆コンパイルされないようにするためには,混同を加える必要がある.混同はサードパーティによってapk混同されてもよいし、androidのproguardで混同されてもよい.
混同手順:
1、構成混同ファイル、名前は勝手に、ここでproguard-androidを使って、フォーマットはtxtです.
プロジェクトのプロジェクトでpropertiesファイルにproguardを追加します.config=proguard-android.txtは、上に書いてある混同ファイルです.
3、androidデフォルトの実行環境はdebugモードであり、コード混同を実行しない.そのため、プロジェクトに署名する必要があります.パッケージ中にエラーが発生した場合は、ファイルのどこに書いてあるかを混同して問題がある可能性があります.
リファレンス
http://blog.csdn.net/lovexjyong/article/details/24652085
混同手順:
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