add export to c# button
This commit is contained in:
@@ -0,0 +1,263 @@
|
||||
#
|
||||
# This ProGuard configuration file illustrates how to process Android
|
||||
# applications.
|
||||
#
|
||||
# If you're using the Android SDK, the provided build systems with Gradle,
|
||||
# Android Studio, Eclipse, and Ant already take care of the proper settings.
|
||||
# You only need to enable ProGuard as explained in the Android documentation.
|
||||
# You can still add project-specific configuration in proguard-project.txt.
|
||||
#
|
||||
# This configuration file is for custom, stand-alone builds.
|
||||
# Usage:
|
||||
# java -jar proguard.jar @android.pro
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Input and output.
|
||||
###############################################################################
|
||||
|
||||
# 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-27/android.jar
|
||||
#-libraryjars /usr/local/java/android-sdk/extras/android/support/v4/android-support-v4.jar
|
||||
#-libraryjars /usr/local/java/android-sdk/add-ons/addon-google_apis-google-21/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
|
||||
|
||||
|
||||
###############################################################################
|
||||
# General settings.
|
||||
###############################################################################
|
||||
|
||||
-verbose
|
||||
|
||||
# We can debug the ProGuard configuration by instrumenting the code and
|
||||
# checking the log for feedback. Disable the option again for actual releases!
|
||||
|
||||
#-addconfigurationdebugging
|
||||
|
||||
# We can also disable the individual processing steps.
|
||||
|
||||
#-dontshrink
|
||||
#-dontoptimize
|
||||
#-dontobfuscate
|
||||
|
||||
# Specifically target Android.
|
||||
|
||||
-android
|
||||
|
||||
# The dex compiler ignores preverification information.
|
||||
|
||||
-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.
|
||||
|
||||
-renamesourcefileattribute SourceFile
|
||||
-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Settings to handle reflection in the code.
|
||||
###############################################################################
|
||||
|
||||
# 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 all possible onClick handlers.
|
||||
|
||||
-keepclassmembers class * extends android.content.Context {
|
||||
public void *(android.view.View);
|
||||
public void *(android.view.MenuItem);
|
||||
}
|
||||
|
||||
# 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 annotated Javascript interface methods.
|
||||
|
||||
-keepclassmembers class * {
|
||||
@android.webkit.JavascriptInterface <methods>;
|
||||
}
|
||||
|
||||
# Preserve annotated and generated classes for Dagger.
|
||||
|
||||
-keepclassmembers,allowobfuscation class * {
|
||||
@dagger.** *;
|
||||
}
|
||||
|
||||
-keep class **$$ModuleAdapter
|
||||
-keep class **$$InjectAdapter
|
||||
-keep class **$$StaticInjection
|
||||
|
||||
-if class **$$ModuleAdapter
|
||||
-keep class <1>
|
||||
|
||||
-if class **$$InjectAdapter
|
||||
-keep class <1>
|
||||
|
||||
-if class **$$StaticInjection
|
||||
-keep class <1>
|
||||
|
||||
-keepnames class dagger.Lazy
|
||||
|
||||
# Preserve annotated and generated classes for Butterknife.
|
||||
|
||||
-keep class **$$ViewBinder {
|
||||
public static void bind(...);
|
||||
public static void unbind(...);
|
||||
}
|
||||
|
||||
-if class **$$ViewBinder
|
||||
-keep class <1>
|
||||
|
||||
-keep class **_ViewBinding {
|
||||
<init>(<1>, android.view.View);
|
||||
}
|
||||
|
||||
-if class **_ViewBinding
|
||||
-keep class <1>
|
||||
|
||||
# Preserve fields that are serialized with GSON.
|
||||
|
||||
#-keepclassmembers class com.example.SerializedClass1,
|
||||
# com.example.SerializedClass2 {
|
||||
# <fields>;
|
||||
#}
|
||||
|
||||
-keepclassmembers,allowobfuscation class * {
|
||||
@com.google.gson.annotations.SerializedName <fields>;
|
||||
}
|
||||
|
||||
-keep,allowobfuscation @interface com.google.gson.annotations.**
|
||||
|
||||
|
||||
# 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,includedescriptorclasses class * {
|
||||
native <methods>;
|
||||
}
|
||||
|
||||
# Preserve the special static methods that are required in all enumeration
|
||||
# classes.
|
||||
|
||||
-keepclassmembers,allowoptimization 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 com.example.MyClass
|
||||
# -keep public interface com.example.MyInterface
|
||||
# -keep public class * implements com.example.MyInterface
|
||||
|
||||
|
||||
###############################################################################
|
||||
# Further optimizations.
|
||||
###############################################################################
|
||||
|
||||
# If you wish, you can let the optimization step remove Android logging calls.
|
||||
|
||||
#-assumenosideeffects class android.util.Log {
|
||||
# public static boolean isLoggable(java.lang.String, int);
|
||||
# public static int v(...);
|
||||
# public static int i(...);
|
||||
# public static int w(...);
|
||||
# public static int d(...);
|
||||
# public static int e(...);
|
||||
#}
|
||||
@@ -0,0 +1,76 @@
|
||||
#
|
||||
# This ProGuard configuration file illustrates how to process applets.
|
||||
# Usage:
|
||||
# java -jar proguard.jar @applets.pro
|
||||
#
|
||||
|
||||
-verbose
|
||||
|
||||
# Specify the input jars, output jars, and library jars.
|
||||
|
||||
-injars in.jar
|
||||
-outjars out.jar
|
||||
|
||||
# Before Java 9, the runtime classes were packaged in a single jar file.
|
||||
#-libraryjars <java.home>/lib/rt.jar
|
||||
|
||||
# As of Java 9, the runtime classes are packaged in modular jmod files.
|
||||
-libraryjars <java.home>/jmods/java.base.jmod (!**.jar;!module-info.class)
|
||||
-libraryjars <java.home>/jmods/java.desktop.jmod(!**.jar;!module-info.class)
|
||||
|
||||
# Save the obfuscation mapping to a file, so you can de-obfuscate any stack
|
||||
# traces later on. 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.
|
||||
|
||||
-printmapping out.map
|
||||
-renamesourcefileattribute SourceFile
|
||||
-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# Preserve all annotations.
|
||||
|
||||
-keepattributes *Annotation*
|
||||
|
||||
# You can print out the seeds that are matching the keep options below.
|
||||
|
||||
#-printseeds out.seeds
|
||||
|
||||
# Preserve all public applets.
|
||||
|
||||
-keep public class * extends java.applet.Applet
|
||||
|
||||
# Preserve all native method names and the names of their classes.
|
||||
|
||||
-keepclasseswithmembernames,includedescriptorclasses class * {
|
||||
native <methods>;
|
||||
}
|
||||
|
||||
# Preserve the special static methods that are required in all enumeration
|
||||
# classes.
|
||||
|
||||
-keepclassmembers,allowoptimization 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 library 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 com.example.MyClass
|
||||
# -keep public interface com.example.MyInterface
|
||||
# -keep public class * implements com.example.MyInterface
|
||||
@@ -0,0 +1,83 @@
|
||||
#
|
||||
# This ProGuard configuration file illustrates how to process applications.
|
||||
# Usage:
|
||||
# java -jar proguard.jar @applications.pro
|
||||
#
|
||||
|
||||
-verbose
|
||||
|
||||
# Specify the input jars, output jars, and library jars.
|
||||
|
||||
-injars in.jar
|
||||
-outjars out.jar
|
||||
|
||||
# Before Java 9, the runtime classes were packaged in a single jar file.
|
||||
#-libraryjars <java.home>/lib/rt.jar
|
||||
|
||||
# As of Java 9, the runtime classes are packaged in modular jmod files.
|
||||
-libraryjars <java.home>/jmods/java.base.jmod(!**.jar;!module-info.class)
|
||||
#-libraryjars <java.home>/jmods/.....
|
||||
|
||||
#-libraryjars junit.jar
|
||||
#-libraryjars servlet.jar
|
||||
#-libraryjars jai_core.jar
|
||||
#...
|
||||
|
||||
# Save the obfuscation mapping to a file, so you can de-obfuscate any stack
|
||||
# traces later on. 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.
|
||||
|
||||
-printmapping out.map
|
||||
-renamesourcefileattribute SourceFile
|
||||
-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# Preserve all annotations.
|
||||
|
||||
-keepattributes *Annotation*
|
||||
|
||||
# You can print out the seeds that are matching the keep options below.
|
||||
|
||||
#-printseeds out.seeds
|
||||
|
||||
# Preserve all public applications.
|
||||
|
||||
-keepclasseswithmembers public class * {
|
||||
public static void main(java.lang.String[]);
|
||||
}
|
||||
|
||||
# Preserve all native method names and the names of their classes.
|
||||
|
||||
-keepclasseswithmembernames,includedescriptorclasses class * {
|
||||
native <methods>;
|
||||
}
|
||||
|
||||
# Preserve the special static methods that are required in all enumeration
|
||||
# classes.
|
||||
|
||||
-keepclassmembers,allowoptimization 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 com.example.MyClass
|
||||
# -keep public interface com.example.MyInterface
|
||||
# -keep public class * implements com.example.MyInterface
|
||||
@@ -0,0 +1,87 @@
|
||||
#
|
||||
# This ProGuard configuration file illustrates how to process a program
|
||||
# library, such that it remains usable as a library.
|
||||
# Usage:
|
||||
# java -jar proguard.jar @library.pro
|
||||
#
|
||||
|
||||
-verbose
|
||||
|
||||
# Specify the input jars, output jars, and library jars.
|
||||
# In this case, the input jar is the program library that we want to process.
|
||||
|
||||
-injars in.jar
|
||||
-outjars out.jar
|
||||
|
||||
# Before Java 9, the runtime classes were packaged in a single jar file.
|
||||
#-libraryjars <java.home>/lib/rt.jar
|
||||
|
||||
# As of Java 9, the runtime classes are packaged in modular jmod files.
|
||||
-libraryjars <java.home>/jmods/java.base.jmod(!**.jar;!module-info.class)
|
||||
#-libraryjars <java.home>/jmods/.....
|
||||
|
||||
# Save the obfuscation mapping to a file, so we can de-obfuscate any stack
|
||||
# traces later on. 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.
|
||||
|
||||
-printmapping out.map
|
||||
-keepparameternames
|
||||
-renamesourcefileattribute SourceFile
|
||||
-keepattributes Signature,Exceptions,
|
||||
InnerClasses,PermittedSubclasses,EnclosingMethod,
|
||||
Deprecated,SourceFile,LineNumberTable
|
||||
|
||||
# Preserve all annotations.
|
||||
|
||||
-keepattributes *Annotation*
|
||||
|
||||
# Preserve all public classes, and their public and protected fields and
|
||||
# methods.
|
||||
|
||||
-keep public class * {
|
||||
public protected *;
|
||||
}
|
||||
|
||||
# Preserve all .class method names.
|
||||
|
||||
-keepclassmembernames class * {
|
||||
java.lang.Class class$(java.lang.String);
|
||||
java.lang.Class class$(java.lang.String, boolean);
|
||||
}
|
||||
|
||||
# Preserve all native method names and the names of their classes.
|
||||
|
||||
-keepclasseswithmembernames,includedescriptorclasses class * {
|
||||
native <methods>;
|
||||
}
|
||||
|
||||
# Preserve the special static methods that are required in all enumeration
|
||||
# classes.
|
||||
|
||||
-keepclassmembers,allowoptimization 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 library 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 library may contain more items that need to be preserved;
|
||||
# typically classes that are dynamically created using Class.forName:
|
||||
|
||||
# -keep public class com.example.MyClass
|
||||
# -keep public interface com.example.MyInterface
|
||||
# -keep public class * implements com.example.MyInterface
|
||||
@@ -0,0 +1,69 @@
|
||||
#
|
||||
# This ProGuard configuration file illustrates how to process J2ME midlets.
|
||||
# Usage:
|
||||
# java -jar proguard.jar @midlets.pro
|
||||
#
|
||||
|
||||
-verbose
|
||||
|
||||
# Specify the input jars, output jars, and library jars.
|
||||
|
||||
-injars in.jar
|
||||
-outjars out.jar
|
||||
|
||||
-libraryjars /usr/local/java/wtk2.5.2/lib/midpapi20.jar
|
||||
-libraryjars /usr/local/java/wtk2.5.2/lib/cldcapi11.jar
|
||||
|
||||
# Preverify the code suitably for Java Micro Edition.
|
||||
|
||||
-microedition
|
||||
|
||||
# Allow methods with the same signature, except for the return type,
|
||||
# to get the same obfuscation name.
|
||||
|
||||
-overloadaggressively
|
||||
|
||||
# Put all obfuscated classes into the nameless root package.
|
||||
|
||||
-repackageclasses ''
|
||||
|
||||
# Allow classes and class members to be made public.
|
||||
|
||||
-allowaccessmodification
|
||||
|
||||
# On Windows, you can't use mixed case class names,
|
||||
# should you still want to use the preverify tool.
|
||||
#
|
||||
# -dontusemixedcaseclassnames
|
||||
|
||||
# Save the obfuscation mapping to a file, so you can de-obfuscate any stack
|
||||
# traces later on.
|
||||
|
||||
-printmapping out.map
|
||||
|
||||
# You can keep a fixed source file attribute and all line number tables to
|
||||
# get stack traces with line numbers.
|
||||
|
||||
#-renamesourcefileattribute SourceFile
|
||||
#-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# You can print out the seeds that are matching the keep options below.
|
||||
|
||||
#-printseeds out.seeds
|
||||
|
||||
# Preserve all public midlets.
|
||||
|
||||
-keep public class * extends javax.microedition.midlet.MIDlet
|
||||
|
||||
# Preserve all native method names and the names of their classes.
|
||||
|
||||
-keepclasseswithmembernames,includedescriptorclasses class * {
|
||||
native <methods>;
|
||||
}
|
||||
|
||||
# Your midlet may contain more items that need to be preserved;
|
||||
# typically classes that are dynamically created using Class.forName:
|
||||
|
||||
# -keep public class com.example.MyClass
|
||||
# -keep public interface com.example.MyInterface
|
||||
# -keep public class * implements com.example.MyInterface
|
||||
+95
@@ -0,0 +1,95 @@
|
||||
#
|
||||
# This ProGuard configuration file illustrates how to process ProGuard itself.
|
||||
# Configuration files for typical applications will be very similar.
|
||||
# Usage:
|
||||
# java -jar proguard.jar @proguard.pro
|
||||
#
|
||||
|
||||
-verbose
|
||||
|
||||
# Specify the input jars, output jars, and library jars.
|
||||
|
||||
-injars ../../lib/proguard.jar
|
||||
-outjars proguard_out.jar
|
||||
|
||||
# Before Java 9, the runtime classes were packaged in a single jar file.
|
||||
#-libraryjars <java.home>/lib/rt.jar
|
||||
|
||||
# As of Java 9, the runtime classes are packaged in modular jmod files.
|
||||
-libraryjars <java.home>/jmods/java.base.jmod(!**.jar;!module-info.class)
|
||||
-libraryjars <java.home>/jmods/java.sql.jmod (!**.jar;!module-info.class)
|
||||
#-libraryjars <java.home>/jmods/.....
|
||||
|
||||
# Write out an obfuscation mapping file, for de-obfuscating any stack traces
|
||||
# later on, or for incremental obfuscation of extensions.
|
||||
|
||||
-printmapping proguard.map
|
||||
|
||||
# Don't print notes about reflection in GSON code, the Kotlin runtime, and
|
||||
# our own optionally injected code.
|
||||
|
||||
-dontnote kotlin.**
|
||||
-dontnote kotlinx.**
|
||||
-dontnote com.google.gson.**
|
||||
-dontnote proguard.configuration.ConfigurationLogger
|
||||
|
||||
# Preserve injected GSON utility classes and their members.
|
||||
|
||||
-keep,allowobfuscation class proguard.optimize.gson._*
|
||||
-keepclassmembers class proguard.optimize.gson._* {
|
||||
*;
|
||||
}
|
||||
|
||||
# Obfuscate class strings of injected GSON utility classes.
|
||||
|
||||
-adaptclassstrings proguard.optimize.gson.**
|
||||
|
||||
# Allow methods with the same signature, except for the return type,
|
||||
# to get the same obfuscation name.
|
||||
|
||||
-overloadaggressively
|
||||
|
||||
# Put all obfuscated classes into the nameless root package.
|
||||
|
||||
-repackageclasses ''
|
||||
|
||||
# Allow classes and class members to be made public.
|
||||
|
||||
-allowaccessmodification
|
||||
|
||||
# The entry point: ProGuard and its main method.
|
||||
|
||||
-keep public class proguard.ProGuard {
|
||||
public static void main(java.lang.String[]);
|
||||
}
|
||||
|
||||
# If you want to preserve the Ant task as well, you'll have to specify the
|
||||
# main ant.jar.
|
||||
|
||||
#-libraryjars /usr/local/java/ant/lib/ant.jar
|
||||
#-adaptresourcefilecontents proguard/ant/task.properties
|
||||
#
|
||||
#-keep,allowobfuscation class proguard.ant.*
|
||||
#-keepclassmembers public class proguard.ant.* {
|
||||
# <init>(org.apache.tools.ant.Project);
|
||||
# public void set*(***);
|
||||
# public void add*(***);
|
||||
#}
|
||||
|
||||
# If you want to preserve the Gradle task, you'll have to specify the Gradle
|
||||
# jars.
|
||||
|
||||
#-libraryjars /usr/local/java/gradle-4.2.1/lib/plugins/gradle-plugins-4.2.1.jar
|
||||
#-libraryjars /usr/local/java/gradle-4.2.1/lib/gradle-base-services-4.2.1.jar
|
||||
#-libraryjars /usr/local/java/gradle-4.2.1/lib/gradle-core-4.2.1.jar
|
||||
#-libraryjars /usr/local/java/gradle-4.2.1/lib/groovy-all-2.4.12.jar
|
||||
|
||||
#-keep public class proguard.gradle.* {
|
||||
# public *;
|
||||
#}
|
||||
|
||||
# If you want to preserve the WTK obfuscation plug-in, you'll have to specify
|
||||
# the kenv.zip file.
|
||||
|
||||
#-libraryjars /usr/local/java/wtk2.5.2/wtklib/kenv.zip
|
||||
#-keep public class proguard.wtk.ProGuardObfuscator
|
||||
@@ -0,0 +1,80 @@
|
||||
#
|
||||
# This ProGuard configuration file illustrates how to process the ProGuard GUI.
|
||||
# Configuration files for typical applications will be very similar.
|
||||
# Usage:
|
||||
# java -jar proguard.jar @proguardgui.pro
|
||||
#
|
||||
|
||||
-verbose
|
||||
|
||||
# Specify the input jars, output jars, and library jars.
|
||||
# The input jars will be merged in a single output jar.
|
||||
|
||||
-injars ../../lib/proguardgui.jar
|
||||
-outjars proguardgui_out.jar
|
||||
|
||||
# Before Java 9, the runtime classes were packaged in a single jar file.
|
||||
#-libraryjars <java.home>/lib/rt.jar
|
||||
|
||||
# As of Java 9, the runtime classes are packaged in modular jmod files.
|
||||
-libraryjars <java.home>/jmods/java.base.jmod (!**.jar;!module-info.class)
|
||||
-libraryjars <java.home>/jmods/java.sql.jmod (!**.jar;!module-info.class)
|
||||
-libraryjars <java.home>/jmods/java.desktop.jmod(!**.jar;!module-info.class)
|
||||
#-libraryjars <java.home>/jmods/.....
|
||||
|
||||
# Write out an obfuscation mapping file, for de-obfuscating any stack traces
|
||||
# later on, or for incremental obfuscation of extensions.
|
||||
|
||||
-printmapping proguardgui.map
|
||||
|
||||
# If we wanted to reuse the previously obfuscated proguard_out.jar, we could
|
||||
# perform incremental obfuscation based on its mapping file, and only keep the
|
||||
# additional GUI files instead of all files.
|
||||
|
||||
#-applymapping proguard.map
|
||||
#-injars ../../lib/proguardgui.jar
|
||||
#-outjars proguardgui_out.jar
|
||||
#-libraryjars ../../lib/proguard.jar(!proguard/ant/**,!proguard/wtk/**)
|
||||
#-libraryjars ../../lib/retrace.jar
|
||||
#-libraryjars <java.home>/jmods/java.base.jmod(!**.jar;!module-info.class)
|
||||
#-libraryjars <java.home>/jmods/java.desktop.jmod(!**.jar;!module-info.class)
|
||||
|
||||
# Don't print notes about reflection in GSON code, the Kotlin runtime, and
|
||||
# our own optionally injected code.
|
||||
|
||||
-dontnote kotlin.**
|
||||
-dontnote kotlinx.**
|
||||
-dontnote com.google.gson.**
|
||||
-dontnote proguard.configuration.ConfigurationLogger
|
||||
|
||||
# Preserve injected GSON utility classes and their members.
|
||||
|
||||
-keep,allowobfuscation class proguard.optimize.gson._*
|
||||
-keepclassmembers class proguard.optimize.gson._* {
|
||||
*;
|
||||
}
|
||||
|
||||
# Obfuscate class strings of injected GSON utility classes.
|
||||
|
||||
-adaptclassstrings proguard.optimize.gson.**
|
||||
|
||||
# Allow methods with the same signature, except for the return type,
|
||||
# to get the same obfuscation name.
|
||||
|
||||
-overloadaggressively
|
||||
|
||||
# Put all obfuscated classes into the nameless root package.
|
||||
|
||||
-repackageclasses ''
|
||||
|
||||
# Adapt the names of resource files, based on the corresponding obfuscated
|
||||
# class names. Notably, in this case, the GUI resource properties file will
|
||||
# have to be renamed.
|
||||
|
||||
-adaptresourcefilenames **.properties,**.gif,**.jpg
|
||||
|
||||
# The entry point: ProGuardGUI and its main method.
|
||||
|
||||
-keep public class proguard.gui.ProGuardGUI {
|
||||
public static void main(java.lang.String[]);
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
#
|
||||
# This ProGuard configuration file illustrates how to process the ReTrace tool.
|
||||
# Configuration files for typical applications will be very similar.
|
||||
# Usage:
|
||||
# java -jar proguard.jar @retrace.pro
|
||||
#
|
||||
|
||||
-verbose
|
||||
|
||||
# Specify the input jars, output jars, and library jars.
|
||||
# The input jars will be merged in a single output jar.
|
||||
|
||||
-injars ../../lib/retrace.jar
|
||||
-outjars retrace_out.jar
|
||||
|
||||
# Before Java 9, the runtime classes were packaged in a single jar file.
|
||||
#-libraryjars <java.home>/lib/rt.jar
|
||||
|
||||
# As of Java 9, the runtime classes are packaged in modular jmod files.
|
||||
-libraryjars <java.home>/jmods/java.base.jmod(!**.jar;!module-info.class)
|
||||
-libraryjars <java.home>/jmods/java.sql.jmod (!**.jar;!module-info.class)
|
||||
#-libraryjars <java.home>/jmods/.....
|
||||
|
||||
# Write out an obfuscation mapping file, for de-obfuscating any stack traces
|
||||
# later on, or for incremental obfuscation of extensions.
|
||||
|
||||
-printmapping retrace.map
|
||||
|
||||
# If we wanted to reuse the previously obfuscated proguard_out.jar, we could
|
||||
# perform incremental obfuscation based on its mapping file, and only keep the
|
||||
# additional ReTrace files instead of all files.
|
||||
|
||||
#-applymapping proguard.map
|
||||
#-outjars retrace_out.jar(proguard/retrace/**)
|
||||
|
||||
# Don't print notes about reflection in GSON code, the Kotlin runtime, and
|
||||
# our own optionally injected code.
|
||||
|
||||
-dontnote kotlin.**
|
||||
-dontnote kotlinx.**
|
||||
-dontnote com.google.gson.**
|
||||
-dontnote proguard.configuration.ConfigurationLogger
|
||||
|
||||
# Allow methods with the same signature, except for the return type,
|
||||
# to get the same obfuscation name.
|
||||
|
||||
-overloadaggressively
|
||||
|
||||
# Put all obfuscated classes into the nameless root package.
|
||||
|
||||
-repackageclasses ''
|
||||
|
||||
# Allow classes and class members to be made public.
|
||||
|
||||
-allowaccessmodification
|
||||
|
||||
# The entry point: ReTrace and its main method.
|
||||
|
||||
-keep public class proguard.retrace.ReTrace {
|
||||
public static void main(java.lang.String[]);
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
#
|
||||
# This ProGuard configuration file illustrates how to process Scala
|
||||
# applications, including the Scala runtime.
|
||||
# Usage:
|
||||
# java -jar proguard.jar @scala.pro
|
||||
#
|
||||
|
||||
-verbose
|
||||
|
||||
# Specify the input jars, output jars, and library jars.
|
||||
|
||||
-injars in.jar
|
||||
-injars /usr/local/java/scala-2.9.1/lib/scala-library.jar
|
||||
#-injars /usr/local/java/scala-2.9.1/lib/scala-compiler.jar(!META-INF/MANIFEST.MF)
|
||||
#-injars /usr/local/java/scala-2.9.1/lib/jline.jar(!META-INF/MANIFEST.MF)
|
||||
-outjars out.jar
|
||||
|
||||
# Before Java 9, the runtime classes were packaged in a single jar file.
|
||||
#-libraryjars <java.home>/lib/rt.jar
|
||||
|
||||
# As of Java 9, the runtime classes are packaged in modular jmod files.
|
||||
-libraryjars <java.home>/jmods/java.base.jmod(!**.jar;!module-info.class)
|
||||
#-libraryjars <java.home>/jmods/.....
|
||||
|
||||
#-libraryjars /usr/local/java/ant/lib/ant.jar
|
||||
#...
|
||||
|
||||
# Ignore some compiler artefacts.
|
||||
|
||||
-dontwarn scala.**
|
||||
|
||||
# Save the obfuscation mapping to a file, so you can de-obfuscate any stack
|
||||
# traces later on. 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.
|
||||
|
||||
-printmapping out.map
|
||||
-renamesourcefileattribute SourceFile
|
||||
-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# Preserve all annotations.
|
||||
|
||||
-keepattributes *Annotation*
|
||||
|
||||
# You can print out the seeds that are matching the keep options below.
|
||||
|
||||
#-printseeds out.seeds
|
||||
|
||||
# Preserve all public applications.
|
||||
|
||||
-keepclasseswithmembers public class * {
|
||||
public static void main(java.lang.String[]);
|
||||
}
|
||||
|
||||
# Preserve some classes and class members that are accessed by means of
|
||||
# introspection.
|
||||
|
||||
-keep class * implements org.xml.sax.EntityResolver
|
||||
|
||||
-keepclassmembers class * {
|
||||
** MODULE$;
|
||||
}
|
||||
|
||||
-keepclassmembernames class scala.concurrent.forkjoin.ForkJoinPool {
|
||||
long eventCount;
|
||||
int workerCounts;
|
||||
int runControl;
|
||||
scala.concurrent.forkjoin.ForkJoinPool$WaitQueueNode syncStack;
|
||||
scala.concurrent.forkjoin.ForkJoinPool$WaitQueueNode spareStack;
|
||||
}
|
||||
|
||||
-keepclassmembernames class scala.concurrent.forkjoin.ForkJoinWorkerThread {
|
||||
int base;
|
||||
int sp;
|
||||
int runState;
|
||||
}
|
||||
|
||||
-keepclassmembernames class scala.concurrent.forkjoin.ForkJoinTask {
|
||||
int status;
|
||||
}
|
||||
|
||||
-keepclassmembernames class scala.concurrent.forkjoin.LinkedTransferQueue {
|
||||
scala.concurrent.forkjoin.LinkedTransferQueue$PaddedAtomicReference head;
|
||||
scala.concurrent.forkjoin.LinkedTransferQueue$PaddedAtomicReference tail;
|
||||
scala.concurrent.forkjoin.LinkedTransferQueue$PaddedAtomicReference cleanMe;
|
||||
}
|
||||
|
||||
# Preserve some classes and class members that are accessed by means of
|
||||
# introspection in the Scala compiler library, if it is processed as well.
|
||||
|
||||
#-keep class * implements jline.Completor
|
||||
#-keep class * implements jline.Terminal
|
||||
|
||||
#-keep class scala.tools.nsc.Global
|
||||
|
||||
#-keepclasseswithmembers class * {
|
||||
# <init>(scala.tools.nsc.Global);
|
||||
#}
|
||||
|
||||
#-keepclassmembers class * {
|
||||
# *** scala_repl_value();
|
||||
# *** scala_repl_result();
|
||||
#}
|
||||
|
||||
# Preserve all native method names and the names of their classes.
|
||||
|
||||
-keepclasseswithmembernames,includedescriptorclasses class * {
|
||||
native <methods>;
|
||||
}
|
||||
|
||||
# Preserve the special static methods that are required in all enumeration
|
||||
# classes.
|
||||
|
||||
-keepclassmembers,allowoptimization 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 com.example.MyClass
|
||||
# -keep public interface com.example.MyInterface
|
||||
# -keep public class * implements com.example.MyInterface
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
#
|
||||
# This ProGuard configuration file illustrates how to process servlets.
|
||||
# Usage:
|
||||
# java -jar proguard.jar @servlets.pro
|
||||
#
|
||||
|
||||
-verbose
|
||||
|
||||
# Specify the input jars, output jars, and library jars.
|
||||
|
||||
-injars in.jar
|
||||
-outjars out.jar
|
||||
|
||||
# Before Java 9, the runtime classes were packaged in a single jar file.
|
||||
#-libraryjars <java.home>/lib/rt.jar
|
||||
|
||||
# As of Java 9, the runtime classes are packaged in modular jmod files.
|
||||
-libraryjars <java.home>/jmods/java.base.jmod(!**.jar;!module-info.class)
|
||||
|
||||
-libraryjars /usr/local/java/servlet/servlet.jar
|
||||
|
||||
# Save the obfuscation mapping to a file, so you can de-obfuscate any stack
|
||||
# traces later on. 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.
|
||||
|
||||
-printmapping out.map
|
||||
-renamesourcefileattribute SourceFile
|
||||
-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# Preserve all annotations.
|
||||
|
||||
-keepattributes *Annotation*
|
||||
|
||||
# You can print out the seeds that are matching the keep options below.
|
||||
|
||||
#-printseeds out.seeds
|
||||
|
||||
# Preserve all public servlets.
|
||||
|
||||
-keep public class * implements javax.servlet.Servlet
|
||||
|
||||
# Preserve all native method names and the names of their classes.
|
||||
|
||||
-keepclasseswithmembernames,includedescriptorclasses class * {
|
||||
native <methods>;
|
||||
}
|
||||
|
||||
# Preserve the special static methods that are required in all enumeration
|
||||
# classes.
|
||||
|
||||
-keepclassmembers,allowoptimization 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 library 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 com.example.MyClass
|
||||
# -keep public interface com.example.MyInterface
|
||||
# -keep public class * implements com.example.MyInterface
|
||||
Reference in New Issue
Block a user