[tor-commits] [orbot/master] add proguard rules to optimize orbot binary

n8fr8 at torproject.org n8fr8 at torproject.org
Fri Oct 28 15:52:14 UTC 2016


commit dec3d9530dd43e1ac96cc7486fbade152b703501
Author: Nathan Freitas <nathan at freitas.net>
Date:   Mon Oct 24 21:55:01 2016 -0400

    add proguard rules to optimize orbot binary
---
 app/proguard-rules.txt          | 71 +++++++++++++++++++++++++++++++++++++++++
 orbotservice/proguard-rules.pro | 17 ----------
 proguard-project.txt            | 20 ------------
 3 files changed, 71 insertions(+), 37 deletions(-)

diff --git a/app/proguard-rules.txt b/app/proguard-rules.txt
new file mode 100644
index 0000000..126e1ff
--- /dev/null
+++ b/app/proguard-rules.txt
@@ -0,0 +1,71 @@
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in /home/n8fr8/dev/android/sdk/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the proguardFiles
+# directive in build.gradle.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+
+-optimizationpasses 5
+-dontusemixedcaseclassnames
+-dontskipnonpubliclibraryclasses
+-dontskipnonpubliclibraryclassmembers
+-dontpreverify
+-verbose
+-repackageclasses ''
+-allowaccessmodification
+-keepattributes *Annotation*
+
+-injars src/main/libs
+
+-outjars bin/classes-processed.jar
+
+-dontwarn javax.naming.**
+-dontwarn android.support.**
+
+
+####
+-keep class org.**  { *; }
+-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
+
+-keepclasseswithmembernames class * {
+    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 * {
+    public static **[] values();
+    public static ** valueOf(java.lang.String);
+}
+
+-keep class * implements android.os.Parcelable {
+  public static final android.os.Parcelable$Creator *;
+}
diff --git a/orbotservice/proguard-rules.pro b/orbotservice/proguard-rules.pro
index 48384c8..e69de29 100644
--- a/orbotservice/proguard-rules.pro
+++ b/orbotservice/proguard-rules.pro
@@ -1,17 +0,0 @@
-# Add project specific ProGuard rules here.
-# By default, the flags in this file are appended to flags specified
-# in /home/n8fr8/dev/android/sdk/tools/proguard/proguard-android.txt
-# You can edit the include path and order by changing the proguardFiles
-# directive in build.gradle.
-#
-# For more details, see
-#   http://developer.android.com/guide/developing/tools/proguard.html
-
-# Add any project specific keep options here:
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-#   public *;
-#}
diff --git a/proguard-project.txt b/proguard-project.txt
index f2fe155..e69de29 100644
--- a/proguard-project.txt
+++ b/proguard-project.txt
@@ -1,20 +0,0 @@
-# To enable ProGuard in your project, edit project.properties
-# to define the proguard.config property as described in that file.
-#
-# Add project specific ProGuard rules here.
-# By default, the flags in this file are appended to flags specified
-# in ${sdk.dir}/tools/proguard/proguard-android.txt
-# You can edit the include path and order by changing the ProGuard
-# include property in project.properties.
-#
-# For more details, see
-#   http://developer.android.com/guide/developing/tools/proguard.html
-
-# Add any project specific keep options here:
-
-# If your project uses WebView with JS, uncomment the following
-# and specify the fully qualified class name to the JavaScript interface
-# class:
-#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
-#   public *;
-#}





More information about the tor-commits mailing list