
Former-commit-id: c2472d32726924a6f431c1fc5cf223e68e91045c Former-commit-id: 9afa79003e882347a41e1f187d13ef45c5113089
150 lines
4.9 KiB
Prolog
150 lines
4.9 KiB
Prolog
#
|
|
# This ProGuard configuration file illustrates how to process Android
|
|
# applications.
|
|
# Usage:
|
|
# java -jar proguard.jar @android.pro
|
|
#
|
|
# If you're using the Android SDK (version 2.3 or higher), the android tool
|
|
# already creates a file like this in your project, called proguard.cfg.
|
|
# It should contain the settings of this file, minus the input and output paths
|
|
# (-injars, -outjars, -libraryjars, -printmapping, and -printseeds).
|
|
# The generated Ant build file automatically sets these paths.
|
|
|
|
# Specify the input jars, output jars, and library jars.
|
|
# Note that ProGuard works with Java bytecode (.class),
|
|
# before the dex compiler converts it into Dalvik code (.dex).
|
|
|
|
-injars bin/classes
|
|
-injars libs
|
|
-outjars bin/classes-processed.jar
|
|
|
|
-libraryjars /usr/local/android-sdk/platforms/android-9/android.jar
|
|
#-libraryjars /usr/local/android-sdk/add-ons/google_apis-7_r01/libs/maps.jar
|
|
# ...
|
|
|
|
# Save the obfuscation mapping to a file, so you can de-obfuscate any stack
|
|
# traces later on.
|
|
|
|
-printmapping bin/classes-processed.map
|
|
|
|
# You can print out the seeds that are matching the keep options below.
|
|
|
|
#-printseeds bin/classes-processed.seeds
|
|
|
|
# Preverification is irrelevant for the dex compiler and the Dalvik VM.
|
|
|
|
-dontpreverify
|
|
|
|
# Reduce the size of the output some more.
|
|
|
|
-repackageclasses ''
|
|
-allowaccessmodification
|
|
|
|
# Switch off some optimizations that trip older versions of the Dalvik VM.
|
|
|
|
-optimizations !code/simplification/arithmetic
|
|
|
|
# Keep a fixed source file attribute and all line number tables to get line
|
|
# numbers in the stack traces.
|
|
# You can comment this out if you're not interested in stack traces.
|
|
|
|
-renamesourcefileattribute SourceFile
|
|
-keepattributes SourceFile,LineNumberTable
|
|
|
|
# RemoteViews might need annotations.
|
|
|
|
-keepattributes *Annotation*
|
|
|
|
# Preserve all fundamental application classes.
|
|
|
|
-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
|
|
|
|
# Preserve all View implementations, their special context constructors, and
|
|
# their setters.
|
|
|
|
-keep public class * extends android.view.View {
|
|
public <init>(android.content.Context);
|
|
public <init>(android.content.Context, android.util.AttributeSet);
|
|
public <init>(android.content.Context, android.util.AttributeSet, int);
|
|
public void set*(...);
|
|
}
|
|
|
|
# Preserve all classes that have special context constructors, and the
|
|
# constructors themselves.
|
|
|
|
-keepclasseswithmembers class * {
|
|
public <init>(android.content.Context, android.util.AttributeSet);
|
|
}
|
|
|
|
# Preserve all classes that have special context constructors, and the
|
|
# constructors themselves.
|
|
|
|
-keepclasseswithmembers class * {
|
|
public <init>(android.content.Context, android.util.AttributeSet, int);
|
|
}
|
|
|
|
# Preserve the special fields of all Parcelable implementations.
|
|
|
|
-keepclassmembers class * implements android.os.Parcelable {
|
|
static android.os.Parcelable$Creator CREATOR;
|
|
}
|
|
|
|
# Preserve static fields of inner classes of R classes that might be accessed
|
|
# through introspection.
|
|
|
|
-keepclassmembers class **.R$* {
|
|
public static <fields>;
|
|
}
|
|
|
|
# Preserve the required interface from the License Verification Library
|
|
# (but don't nag the developer if the library is not used at all).
|
|
|
|
-keep public interface com.android.vending.licensing.ILicensingService
|
|
|
|
-dontnote com.android.vending.licensing.ILicensingService
|
|
|
|
# The Android Compatibility library references some classes that may not be
|
|
# present in all versions of the API, but we know that's ok.
|
|
|
|
-dontwarn android.support.**
|
|
|
|
# Preserve all native method names and the names of their classes.
|
|
|
|
-keepclasseswithmembernames class * {
|
|
native <methods>;
|
|
}
|
|
|
|
# Preserve the special static methods that are required in all enumeration
|
|
# classes.
|
|
|
|
-keepclassmembers class * extends java.lang.Enum {
|
|
public static **[] values();
|
|
public static ** valueOf(java.lang.String);
|
|
}
|
|
|
|
# Explicitly preserve all serialization members. The Serializable interface
|
|
# is only a marker interface, so it wouldn't save them.
|
|
# You can comment this out if your application doesn't use serialization.
|
|
# If your code contains serializable classes that have to be backward
|
|
# compatible, please refer to the manual.
|
|
|
|
-keepclassmembers class * implements java.io.Serializable {
|
|
static final long serialVersionUID;
|
|
static final java.io.ObjectStreamField[] serialPersistentFields;
|
|
private void writeObject(java.io.ObjectOutputStream);
|
|
private void readObject(java.io.ObjectInputStream);
|
|
java.lang.Object writeReplace();
|
|
java.lang.Object readResolve();
|
|
}
|
|
|
|
# Your application may contain more items that need to be preserved;
|
|
# typically classes that are dynamically created using Class.forName:
|
|
|
|
# -keep public class mypackage.MyClass
|
|
# -keep public interface mypackage.MyInterface
|
|
# -keep public class * implements mypackage.MyInterface
|