blob: 162d8aebfc62561dde73ceb4a7d8d61170dc3206 [file] [log] [blame]
Yifei Zhangcedd4522023-10-31 11:21:32 -07001-include proguard_kotlin.flags
Dave Mankoff99416592022-11-10 22:57:43 +00002-keep class com.android.systemui.VendorServices
3
Dave Mankoff99416592022-11-10 22:57:43 +00004# Needed to ensure callback field references are kept in their respective
5# owning classes when the downstream callback registrars only store weak refs.
Jared Duke8e741232023-09-19 22:51:05 +00006# Note that we restrict this to SysUISingleton classes, as other registering
7# classes should either *always* unregister or *never* register from their
8# constructor. We also keep callback class names for easier debugging.
9-keepnames @com.android.systemui.util.annotations.WeaklyReferencedCallback class *
10-keepnames class * extends @com.android.systemui.util.annotations.WeaklyReferencedCallback **
11-if @com.android.systemui.util.annotations.WeaklyReferencedCallback class *
12-keepclassmembers,allowaccessmodification @com.android.systemui.dagger.SysUISingleton class * {
Dave Mankoff99416592022-11-10 22:57:43 +000013 <1> *;
14}
Jared Duke8e741232023-09-19 22:51:05 +000015-if class * extends @com.android.systemui.util.annotations.WeaklyReferencedCallback **
16-keepclassmembers,allowaccessmodification @com.android.systemui.dagger.SysUISingleton class * {
Dave Mankoff99416592022-11-10 22:57:43 +000017 <1> *;
18}
19
Dave Mankoff99416592022-11-10 22:57:43 +000020-keep class androidx.core.app.CoreComponentFactory
21
22# Keep the wm shell lib
23-keep class com.android.wm.shell.*
24# Keep the protolog group methods that are called by the generated code
25-keepclassmembers class com.android.wm.shell.protolog.ShellProtoLogGroup {
26 *;
27}
28
29# Prevent optimization or access modification of any referenced code that may
30# conflict with code in the bootclasspath.
31# TODO(b/222468116): Resolve such collisions in the build system.
32-keepnames class android.**.nano.** { *; }
33-keepnames class com.android.**.nano.** { *; }
34-keepnames class com.android.internal.protolog.** { *; }
35-keepnames class android.hardware.common.** { *; }
36
Johannes Gallmann3c6a6d72023-12-13 12:43:38 +000037# TODO(b/316553881): Statically linking flags into SystemUI and bootclasspath might not be a
38# good idea in the first place
39-keepnames class com.android.window.flags.Flags { public *; }
40
41
Dave Mankoff99416592022-11-10 22:57:43 +000042# Allows proguard to make private and protected methods and fields public as
43# part of optimization. This lets proguard inline trivial getter/setter methods.
44-allowaccessmodification
45
Dave Mankoff99416592022-11-10 22:57:43 +000046# Strip verbose logs.
47-assumenosideeffects class android.util.Log {
48 static *** v(...);
49 static *** isLoggable(...);
50}
51-assumenosideeffects class android.util.Slog {
52 static *** v(...);
53}
54-maximumremovedandroidloglevel 2