# Keep class's integer static field for MessageUtils to parsing their name. -keepclassmembers class com.android.server.**,android.net.**,com.android.networkstack.** { static final % POLICY_*; static final % NOTIFY_TYPE_*; static final % TRANSPORT_*; static final % CMD_*; static final % EVENT_*; } -keep class com.android.networkstack.tethering.util.BpfMap { native ; } -keep class com.android.networkstack.tethering.util.TcUtils { native ; } # Ensure runtime-visible field annotations are kept when using R8 full mode. -keepattributes RuntimeVisibleAnnotations,AnnotationDefault -keep interface com.android.networkstack.tethering.util.Struct$Field { *; } -keepclassmembers public class * extends com.android.networkstack.tethering.util.Struct { *; } # The lite proto runtime uses reflection to access fields based on the names in # the schema, keep all the fields. -keepclassmembers class * extends com.android.networkstack.tethering.protobuf.MessageLite { ; }