blob: 6ffd661636539f65252800032cb083ad7dc5a5b8 [file] [log] [blame]
Jared Duke629526d2022-02-08 11:28:34 -08001# Preserve line number information for debugging stack traces.
2-keepattributes SourceFile,LineNumberTable
3
Jared Duke084685542022-06-03 11:14:24 -07004# Preserve relationship information that can impact simple class naming.
5-keepattributes EnclosingMethod,InnerClasses
6
Yohei Yukawa25c61e42022-02-14 22:30:49 +00007-keep class com.android.systemui.recents.OverviewProxyRecentsImpl
8-keep class com.android.systemui.statusbar.car.CarStatusBar
Caitlin Cassidya3bcac52022-02-25 16:17:55 +00009-keep class com.android.systemui.statusbar.phone.CentralSurfaces
Yohei Yukawa25c61e42022-02-14 22:30:49 +000010-keep class com.android.systemui.statusbar.tv.TvStatusBar
Yao Chen634acb92016-04-13 16:17:47 -070011-keep class com.android.systemui.car.CarSystemUIFactory
Xiyuan Xia1b30f792016-01-06 08:50:30 -080012-keep class com.android.systemui.SystemUIFactory
Sergey Nikolaienkov7842bac2019-12-19 16:34:11 +010013-keep class com.android.systemui.tv.TvSystemUIFactory
Yohei Yukawa25c61e42022-02-14 22:30:49 +000014-keep class * extends com.android.systemui.CoreStartable
15-keep class * implements com.android.systemui.CoreStartable$Injector
Winsone6c90732015-09-24 16:06:29 -070016
Jason Monk87ccd552015-12-11 21:39:54 -050017-keepclasseswithmembers class * {
18 public <init>(android.content.Context, android.util.AttributeSet);
19}
20
Aurimas Liutikasfd52c142018-04-17 09:50:46 -070021-keep class ** extends androidx.preference.PreferenceFragment
Yohei Yukawa25c61e42022-02-14 22:30:49 +000022-keep class com.android.systemui.tuner.*
Jason Monk86bc3312016-08-16 13:17:56 -040023-keep class com.android.systemui.plugins.** {
Jason Monke6089af2018-07-31 14:38:11 -040024 *;
Jason Monk86bc3312016-08-16 13:17:56 -040025}
Jason Monk9424af72018-12-19 14:17:26 -050026-keep class com.android.systemui.fragments.FragmentService$FragmentCreator {
27 *;
28}
Aurimas Liutikasfd52c142018-04-17 09:50:46 -070029-keep class androidx.core.app.CoreComponentFactory
Dave Mankoffa5d8a392019-10-10 12:21:09 -040030
Yohei Yukawa25c61e42022-02-14 22:30:49 +000031-keep public class * extends com.android.systemui.CoreStartable {
32 public <init>(android.content.Context);
33}
34
Winson Chungb754f522020-08-03 22:17:08 -070035# Keep the wm shell lib
Dave Mankoff85528072020-08-06 10:32:25 -040036-keep class com.android.wm.shell.*
Winson Chungb754f522020-08-03 22:17:08 -070037# Keep the protolog group methods that are called by the generated code
38-keepclassmembers class com.android.wm.shell.protolog.ShellProtoLogGroup {
39 *;
40}
Dave Mankoff85528072020-08-06 10:32:25 -040041
Yohei Yukawa25c61e42022-02-14 22:30:49 +000042-keep,allowoptimization,allowaccessmodification class com.android.systemui.dagger.GlobalRootComponent { !synthetic *; }
43-keep,allowoptimization,allowaccessmodification class com.android.systemui.dagger.GlobalRootComponent$SysUIComponentImpl { !synthetic *; }
44-keep,allowoptimization,allowaccessmodification class com.android.systemui.dagger.Dagger** { !synthetic *; }
45-keep,allowoptimization,allowaccessmodification class com.android.systemui.tv.Dagger** { !synthetic *; }
46
Jared Duke83a28e62022-03-03 13:11:46 -080047# Prevent optimization or access modification of any referenced code that may
48# conflict with code in the bootclasspath.
49# TODO(b/222468116): Resolve such collisions in the build system.
50-keepnames class android.**.nano.** { *; }
51-keepnames class com.android.**.nano.** { *; }
52-keepnames class com.android.internal.protolog.** { *; }
53-keepnames class android.hardware.common.** { *; }
54
Jared Duke2fee7402021-10-18 14:35:04 -070055# Allows proguard to make private and protected methods and fields public as
56# part of optimization. This lets proguard inline trivial getter/setter methods.
57-allowaccessmodification
Jared Dukedc1646f2021-11-30 12:35:45 -080058
59# Removes runtime checks added through Kotlin to JVM code genereration to
60# avoid linear growth as more Kotlin code is converted / added to the codebase.
61# These checks are generally applied to Java platform types (values returned
62# from Java code that don't have nullness annotations), but we remove them to
63# avoid code size increases.
64#
65# See also https://kotlinlang.org/docs/reference/java-interop.html
66#
67# TODO(b/199941987): Consider standardizing these rules in a central place as
68# Kotlin gains adoption with other platform targets.
69-assumenosideeffects class kotlin.jvm.internal.Intrinsics {
70 # Remove check for method parameters being null
71 static void checkParameterIsNotNull(java.lang.Object, java.lang.String);
72
73 # When a Java platform type is returned and passed to Kotlin NonNull method,
74 # remove the null check
75 static void checkExpressionValueIsNotNull(java.lang.Object, java.lang.String);
76 static void checkNotNullExpressionValue(java.lang.Object, java.lang.String);
77
78 # Remove check that final value returned from method is null, if passing
79 # back Java platform type.
80 static void checkReturnedValueIsNotNull(java.lang.Object, java.lang.String, java.lang.String);
81 static void checkReturnedValueIsNotNull(java.lang.Object, java.lang.String);
82
83 # Null check for accessing a field from a parent class written in Java.
84 static void checkFieldIsNotNull(java.lang.Object, java.lang.String, java.lang.String);
85 static void checkFieldIsNotNull(java.lang.Object, java.lang.String);
86
87 # Removes code generated from !! operator which converts Nullable type to
88 # NonNull type. These would throw an NPE immediate after on access.
89 static void checkNotNull(java.lang.Object, java.lang.String);
90 static void checkNotNullParameter(java.lang.Object, java.lang.String);
91
92 # Removes lateinit var check being used before being set. Check is applied
93 # on every field access without this.
94 static void throwUninitializedPropertyAccessException(java.lang.String);
95}
Kevin Jeond79d0d72022-05-03 21:49:19 +000096# Strip verbose logs.
97-assumenosideeffects class android.util.Log {
98 static *** v(...);
99 static *** isLoggable(...);
100}
101-assumenosideeffects class android.util.Slog {
102 static *** v(...);
103}
104-maximumremovedandroidloglevel 2