diff options
| -rw-r--r-- | services/proguard.flags | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/services/proguard.flags b/services/proguard.flags index eb5c7144c967..4c2830e5c447 100644 --- a/services/proguard.flags +++ b/services/proguard.flags @@ -72,6 +72,13 @@ -keep,allowoptimization,allowaccessmodification class com.android.server.wm.** implements com.android.server.wm.DisplayAreaPolicy$Provider # JNI keep rules +# The global keep rule for native methods allows stripping of such methods if they're unreferenced +# in Java. However, because system_server explicitly registers these methods from native code, +# stripping them in Java can cause runtime issues. As such, conservatively keep all such methods in +# system_server subpackages as long as the containing class is also kept or referenced. +-keepclassmembers class com.android.server.** { + native <methods>; +} # TODO(b/210510433): Revisit and fix with @Keep, or consider auto-generating from # frameworks/base/services/core/jni/onload.cpp. -keep,allowoptimization,allowaccessmodification class com.android.server.broadcastradio.hal1.BroadcastRadioService { *; } |