Obfuscate Android Application(APK) file/ Обфускация Android APK – файла

Obfuscate Android Application(APK) file/ Обфускация Android APK – файла

Начнем с главного – выбор IDE никак не зависит на процесс обфускации, что в Android Studio, что в Eclipse. В случае с Eclipse, в файле project.properties указываем путь к файлу правил обфускации. Для Android studio все правила прописываются в файле proguard-rules.pro

-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontwarn android.support.**
-verbose

-dontoptimize
-dontpreverify

-keepattributes *Annotation*
-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.view.View

-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService
-keep public class * extends android.support.v4.app.Fragment
-keep public class * extends android.app.Fragment

-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
!static !transient <fields>;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}

-dontwarn com.google.android.glass.**
-dontwarn org.codehaus.jackson.map.**
-dontwarn com.google.android.gms.**
-dontwarn com.google.common.annotations.**
-dontwarn com.google.common.cache.**
-dontwarn com.google.common.primitives.**
-dontwarn android.content.**
-dontwarn android.graphics.drawable.**
-dontwarn android.util.Xml.**
-dontwarn android.view.LayoutInflater.**
-dontwarn org.xmlpull.v1.**

-keepclasseswithmembernames class * {
native <methods>;
}

-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}

-keepclassmembers public class * extends android.view.View {
void set*(***);
*** get*();
}

-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}

-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}

-keepclassmembers class **.R$* {
public static <fields>;
}

 

И напоследок не забываем, что обфускация применима к генерации/экспорту подписанного APK файла. Для сборки APK-debug релиза правила не применяются

Leave a Reply

Please disable your adblocker or whitelist this site!