| OLD | NEW |
| 1 # Don't rename anything, it makes stack traces unintelligible. We only allow the | 1 # Don't rename anything, it makes stack traces unintelligible. We only allow the |
| 2 # obfuscation pass to run so that we can discard attributes like local variable | 2 # obfuscation pass to run so that we can discard attributes like local variable |
| 3 # tables. However, we don't want to lose out on optimizations, so although they | 3 # tables. However, we don't want to lose out on optimizations, so although they |
| 4 # can occasionally make the stack trace a bit stranger with inlining, it won't | 4 # can occasionally make the stack trace a bit stranger with inlining, it won't |
| 5 # make a big difference for the users seeing the stacktraces. We can always use | 5 # make a big difference for the users seeing the stacktraces. We can always use |
| 6 # build/android/stacktrace/java_deobfuscate.py to fix the stacktrace up for us. | 6 # build/android/stacktrace/java_deobfuscate.py to fix the stacktrace up for us. |
| 7 -keepnames,allowoptimization class *** { *; } | 7 -keepnames,allowoptimization class *** { *; } |
| 8 | 8 |
| 9 # The following chart was created on Aug. 11, 2016, to decide on 3 optimization | |
| 10 # passes. | |
| 11 # optimization passes | time | .dex size | dirty memory | |
| 12 # ----------------------------------------------------------------- | |
| 13 # 1 | 0:13 | 1022588 | 97772 | |
| 14 # 2 | 0:17 | 1019200 | 97472 | |
| 15 # 3 | 0:18 | 1018472 | 97424 | |
| 16 # 4 | 0:21 | 1018392 | 97416 | |
| 17 # 5 | 0:26 | 1018360 | 97416 | |
| 18 -optimizationpasses 3 | |
| 19 | |
| 20 # Class merging messes up stacktraces beyond the point of them being | |
| 21 # deobfuscatable. If turned on, it would give us a 1% reduction in .dex size. | |
| 22 -optimizations !class/merging/* | |
| 23 | |
| 24 # Allowing Proguard to change modifiers. This change shrinks the .dex size by | |
| 25 # 3.7%. | |
| 26 -allowaccessmodification | |
| 27 | |
| 28 # Allows Proguard freedom in removing these log related calls. We ask for debug | |
| 29 # and verbose logs to be stripped out in base.Log, so we are just ensuring we | |
| 30 # get rid of all other debug/verbose logs. | |
| 31 -assumenosideeffects class android.util.Log { | |
| 32 static *** d(...); | |
| 33 static *** v(...); | |
| 34 static *** isLoggable(...); | |
| 35 } | |
| 36 | |
| 37 # Keep the factory and its public members; it's the main entry point used by the | 9 # Keep the factory and its public members; it's the main entry point used by the |
| 38 # framework. | 10 # framework. |
| 39 -keep class com.android.webview.chromium.WebViewChromiumFactoryProvider { | 11 -keep class com.android.webview.chromium.WebViewChromiumFactoryProvider { |
| 40 public *; | 12 public *; |
| 41 } | 13 } |
| 42 | 14 |
| 43 # This is the main entry point for APIs. It is kept to make developing with | 15 # This is the main entry point for APIs. It is kept to make developing with |
| 44 # unreleased Android easier. | 16 # unreleased Android easier. |
| 45 -keep class com.android.webview.chromium.WebViewChromium { | 17 -keep class com.android.webview.chromium.WebViewChromium { |
| 46 public *; | 18 public *; |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 81 # AwDebug is accessed by reflection. | 53 # AwDebug is accessed by reflection. |
| 82 -keep class org.chromium.android_webview.AwDebug { | 54 -keep class org.chromium.android_webview.AwDebug { |
| 83 public static boolean dumpWithoutCrashing(...); | 55 public static boolean dumpWithoutCrashing(...); |
| 84 } | 56 } |
| 85 | 57 |
| 86 #TODO(hush): remove after N release. crbug.com/546762 | 58 #TODO(hush): remove after N release. crbug.com/546762 |
| 87 -keep class com.android.webview.chromium.ContentSettingsAdapter { | 59 -keep class com.android.webview.chromium.ContentSettingsAdapter { |
| 88 public void setDisabledActionModeMenuItems(int); | 60 public void setDisabledActionModeMenuItems(int); |
| 89 public int getDisabledActionModeMenuItems(); | 61 public int getDisabledActionModeMenuItems(); |
| 90 } | 62 } |
| 91 | |
| 92 # Ignore notes and warnings about the support library, which uses reflection and | |
| 93 # may reference classes no longer in the SDK. | |
| 94 -dontnote android.support.** | |
| 95 -dontwarn android.support.** | |
| OLD | NEW |