From 1149dbb04b5a367c46bcfa5fcc0083dc2767a8eb Mon Sep 17 00:00:00 2001 From: Timothy Yiu Date: Tue, 19 Mar 2024 02:56:06 +0000 Subject: Refine system service proguard rules Refine proguard rules for system services to prepare for rolling out full system server R8 optimization. Added proguard rules to keep auto-generated Java aconfig flags to prevent Flag function from being inlined / removed since R8 do not have context on flags that are referenced outside of the module. Bug: 313546597 Change-Id: I184cd7a79acc7fa2d9db66438df1f0b50d951fd9 Test: Local build and boot with full system server optimization --- services/proguard.flags | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/services/proguard.flags b/services/proguard.flags index 88561b460b05..a01e7dc16147 100644 --- a/services/proguard.flags +++ b/services/proguard.flags @@ -54,7 +54,10 @@ -keep,allowoptimization,allowaccessmodification class android.app.admin.flags.FeatureFlagsImpl { *; } -keep,allowoptimization,allowaccessmodification class com.android.server.input.NativeInputManagerService$NativeImpl { *; } -keep,allowoptimization,allowaccessmodification class com.android.server.ThreadPriorityBooster { *; } --keep,allowaccessmodification class android.app.admin.flags.Flags { *; } + +# Keep all aconfig Flag class as they might be statically referenced by other packages +# An merge or inlining could lead to missing dependencies that cause run time errors +-keepclassmembernames class android.**.Flags, com.android.**.Flags { public *; } # Referenced via CarServiceHelperService in car-frameworks-service (avoid removing) -keep public class com.android.server.utils.Slogf { *; } -- cgit v1.2.3-59-g8ed1b