diff options
-rw-r--r-- | Android.bp | 3 | ||||
-rw-r--r-- | jarjar-rules-shared.txt | 1 | ||||
-rw-r--r-- | proguard.flags | 7 |
3 files changed, 11 insertions, 0 deletions
@@ -91,6 +91,7 @@ java_defaults { "netlink-client", "networkstack-client", "net-utils-framework-common", + // See note on statsprotos when adding/updating proto build rules "datastallprotosnano", "statsprotos", "captiveportal-lib", @@ -293,6 +294,8 @@ android_app { required: ["NetworkPermissionConfig"], } +// When adding or modifying protos, the jarjar rules and possibly proguard rules need +// to be updated: proto libraries may pull additional static libraries. java_library_static { name: "statsprotos", proto: { diff --git a/jarjar-rules-shared.txt b/jarjar-rules-shared.txt index c4f4602..438fc61 100644 --- a/jarjar-rules-shared.txt +++ b/jarjar-rules-shared.txt @@ -2,6 +2,7 @@ rule com.android.net.module.util.** com.android.networkstack.util.@1 rule com.android.internal.util.** android.net.networkstack.util.@1 +rule com.google.protobuf.** com.android.networkstack.protobuf.@1 # Classes from net-utils-framework-common rule com.android.net.module.util.** com.android.networkstack.util.@1 diff --git a/proguard.flags b/proguard.flags index c60f6c3..af4262a 100644 --- a/proguard.flags +++ b/proguard.flags @@ -7,3 +7,10 @@ static final int CMD_*; static final int EVENT_*; } + +# The lite proto runtime uses reflection to access fields based on the names in +# the schema, keep all the fields. +# This replicates the base proguard rule used by the build by default +# (proguard_basic_keeps.flags), but needs to be specified here because the +# com.google.protobuf package is jarjared to the below package. +-keepclassmembers class * extends com.android.networkstack.protobuf.MessageLite { <fields>; } |