blob: 0e081f182d0d0eb13c5148fe504b37af9d701614 [file] [log] [blame]
Jared Duke0504e562022-02-02 15:25:22 -08001# TODO(b/210510433): Refine and optimize this configuration. Note that this
Jared Duke4514bdf2021-11-18 13:18:21 -08002# configuration is only used when `SOONG_CONFIG_ANDROID_SYSTEM_OPTIMIZE_JAVA=true`.
Jared Duke4514bdf2021-11-18 13:18:21 -08003
Jared Duke0504e562022-02-02 15:25:22 -08004# Preserve line number information for debugging stack traces.
5-keepattributes SourceFile,LineNumberTable
Jared Dukeedb13392021-12-14 11:10:20 -08006
7# Allows making private and protected methods/fields public as part of
8# optimization. This enables inlining of trivial getter/setter methods.
9-allowaccessmodification
10
Jared Duke0504e562022-02-02 15:25:22 -080011# Process entrypoint
12-keep class com.android.server.SystemServer {
13 public static void main(java.lang.String[]);
Jared Dukeedb13392021-12-14 11:10:20 -080014}
Jared Duke0504e562022-02-02 15:25:22 -080015
16# APIs referenced by dependent JAR files and modules
17-keep @interface android.annotation.SystemApi
18-keep @android.annotation.SystemApi class * {
19 public protected *;
20}
21-keepclasseswithmembers class * {
22 @android.annotation.SystemApi *;
23}
24
25# Derivatives of SystemService and other services created via reflection
26-keep,allowoptimization,allowaccessmodification class * extends com.android.server.SystemService {
27 public <methods>;
28}
29-keep,allowoptimization,allowaccessmodification class * extends com.android.server.devicepolicy.BaseIDevicePolicyManager {
30 public <init>(...);
31}
32-keep,allowoptimization,allowaccessmodification class com.android.server.wallpaper.WallpaperManagerService {
33 public <init>(...);
34}
35
36# Binder interfaces
37-keep,allowoptimization,allowaccessmodification class * extends android.os.IInterface
38-keep,allowoptimization,allowaccessmodification class * extends android.os.IHwInterface
39
40# Global entities normally kept through explicit Manifest entries
41# TODO(b/210510433): Revisit and consider generating from frameworks/base/core/res/AndroidManifest.xml,
42# by including that manifest with the library rule that triggers optimization.
43-keep,allowoptimization,allowaccessmodification class * extends android.app.backup.BackupAgent
44-keep,allowoptimization,allowaccessmodification class * extends android.content.BroadcastReceiver
45-keep,allowoptimization,allowaccessmodification class * extends android.content.ContentProvider
46
47# Various classes subclassed in or referenced via JNI in ethernet-service
48-keep public class android.net.** { *; }
49-keep,allowoptimization,allowaccessmodification class com.android.net.module.util.* { *; }
50-keep,allowoptimization,allowaccessmodification public class com.android.server.net.IpConfigStore { *; }
51-keep,allowoptimization,allowaccessmodification public class com.android.server.net.BaseNetworkObserver { *; }
52
53# Referenced via CarServiceHelperService in car-frameworks-service (avoid removing)
54-keep public class com.android.server.utils.Slogf { *; }
55
56# Notification extractors
57# TODO(b/210510433): Revisit and consider generating from frameworks/base/core/res/res/values/config.xml.
58-keep,allowoptimization,allowaccessmodification public class com.android.server.notification.** implements com.android.server.notification.NotificationSignalExtractor
59
60# JNI keep rules
61# TODO(b/210510433): Revisit and fix with @Keep, or consider auto-generating from
62# frameworks/base/services/core/jni/onload.cpp.
63-keep,allowoptimization,allowaccessmodification class com.android.server.broadcastradio.hal1.BroadcastRadioService { *; }
64-keep,allowoptimization,allowaccessmodification class com.android.server.broadcastradio.hal1.Convert { *; }
65-keep,allowoptimization,allowaccessmodification class com.android.server.broadcastradio.hal1.Tuner { *; }
66-keep,allowoptimization,allowaccessmodification class com.android.server.broadcastradio.hal1.TunerCallback { *; }
67-keep,allowoptimization,allowaccessmodification class com.android.server.location.gnss.GnssConfiguration$HalInterfaceVersion { *; }
68-keep,allowoptimization,allowaccessmodification class com.android.server.location.gnss.GnssPowerStats { *; }
69-keep,allowoptimization,allowaccessmodification class com.android.server.location.gnss.hal.GnssNative { *; }
70-keep,allowoptimization,allowaccessmodification class com.android.server.sensors.SensorManagerInternal$ProximityActiveListener { *; }
71-keep,allowoptimization,allowaccessmodification class com.android.server.sensors.SensorService { *; }
72-keep,allowoptimization,allowaccessmodification class com.android.server.soundtrigger_middleware.SoundTriggerMiddlewareImpl$AudioSessionProvider$AudioSession { *; }
73-keep,allowoptimization,allowaccessmodification class com.android.server.soundtrigger_middleware.ExternalCaptureStateTracker { *; }
74-keep,allowoptimization,allowaccessmodification class com.android.server.storage.AppFuseBridge { *; }
75-keep,allowoptimization,allowaccessmodification class com.android.server.tv.TvInputHal { *; }
76-keep,allowoptimization,allowaccessmodification class com.android.server.usb.UsbAlsaJackDetector { *; }
77-keep,allowoptimization,allowaccessmodification class com.android.server.usb.UsbMidiDevice { *; }
78-keep,allowoptimization,allowaccessmodification class com.android.server.vibrator.VibratorController$OnVibrationCompleteListener { *; }
79-keep,allowoptimization,allowaccessmodification class com.android.server.vibrator.VibratorManagerService$OnSyncedVibrationCompleteListener { *; }
80-keepclasseswithmembers,allowoptimization,allowaccessmodification class com.android.server.** {
81 *** *FromNative(...);
82}
83-keep,allowoptimization,allowaccessmodification class com.android.server.input.InputManagerService {
84 <methods>;
85}
86-keep,allowoptimization,allowaccessmodification class com.android.server.usb.UsbHostManager {
87 *** usbDeviceRemoved(...);
88 *** usbDeviceAdded(...);
89}
90-keep,allowoptimization,allowaccessmodification class **.*NativeWrapper* { *; }
91
92# Miscellaneous reflection keep rules
93# TODO(b/210510433): Revisit and fix with @Keep.
94-keep,allowoptimization,allowaccessmodification class com.android.server.usage.AppStandbyController {
95 public <init>(...);
96}
97-keep,allowoptimization,allowaccessmodification class android.hardware.usb.gadget.** { *; }
98
99# Needed when optimizations enabled
100# TODO(b/210510433): Revisit and fix with @Keep.
101-keep,allowoptimization,allowaccessmodification class com.android.server.SystemService { *; }
102-keep,allowoptimization,allowaccessmodification class com.android.server.SystemService$TargetUser { *; }
103-keep,allowoptimization,allowaccessmodification class com.android.server.usage.StorageStatsManagerLocal { *; }
104-keep,allowoptimization,allowaccessmodification class com.android.internal.util.** { *; }
105-keep,allowoptimization,allowaccessmodification class android.os.** { *; }