xref: /aosp_15_r20/frameworks/base/services/core/Android.bp (revision d57664e9bc4670b3ecf6748a746a57c557b6bc9e)
1package {
2    // See: http://go/android-license-faq
3    // A large-scale-change added 'default_applicable_licenses' to import
4    // all of the 'license_kinds' from "frameworks_base_license"
5    // to get the below license kinds:
6    //   SPDX-license-identifier-Apache-2.0
7    default_applicable_licenses: ["frameworks_base_license"],
8}
9
10filegroup {
11    name: "services.core-sources-am-wm",
12    srcs: [
13        "java/com/android/server/am/**/*.java",
14        "java/com/android/server/wm/**/*.java",
15    ],
16    path: "java",
17    visibility: ["//frameworks/base/services"],
18}
19
20filegroup {
21    name: "services.core-sources",
22    srcs: ["java/**/*.java"],
23    exclude_srcs: [
24        ":services.core-sources-am-wm",
25    ],
26    path: "java",
27    visibility: [
28        "//frameworks/base/services",
29        "//frameworks/base/core/java/com/android/internal/protolog",
30    ],
31}
32
33filegroup {
34    name: "services.core-aidl-sources",
35    srcs: [
36        ":dumpstate_aidl",
37        ":framework_native_aidl",
38        ":gsiservice_aidl",
39        ":installd_aidl",
40        ":storaged_aidl",
41        ":vold_aidl",
42    ],
43}
44
45java_library_static {
46    name: "services-config-update",
47    srcs: [
48        "java/**/ConfigUpdateInstallReceiver.java",
49        "java/**/*.logtags",
50    ],
51}
52
53java_genrule {
54    name: "services.core.protologsrc",
55    srcs: [
56        ":protolog-impl",
57        ":protolog-groups",
58        ":services.core-sources-am-wm",
59    ],
60    tools: ["protologtool"],
61    cmd: "$(location protologtool) transform-protolog-calls " +
62        "--protolog-class com.android.internal.protolog.ProtoLog " +
63        "--loggroups-class com.android.internal.protolog.WmProtoLogGroups " +
64        "--loggroups-jar $(location :protolog-groups) " +
65        "--viewer-config-file-path /etc/core.protolog.pb " +
66        "--legacy-viewer-config-file-path /system/etc/protolog.conf.json.gz " +
67        "--legacy-output-file-path /data/misc/wmtrace/wm_log.winscope " +
68        "--output-srcjar $(out) " +
69        "$(locations :services.core-sources-am-wm)",
70    out: ["services.core.protolog.srcjar"],
71}
72
73java_genrule {
74    name: "generate-protolog.json",
75    srcs: [
76        ":protolog-groups",
77        ":services.core-sources-am-wm",
78    ],
79    tools: ["protologtool"],
80    cmd: "$(location protologtool) generate-viewer-config " +
81        "--protolog-class com.android.internal.protolog.ProtoLog " +
82        "--loggroups-class com.android.internal.protolog.WmProtoLogGroups " +
83        "--loggroups-jar $(location :protolog-groups) " +
84        "--viewer-config-type json " +
85        "--viewer-config $(out) " +
86        "$(locations :services.core-sources-am-wm)",
87    out: ["services.core.protolog.json"],
88}
89
90java_genrule {
91    name: "gen-core.protolog.pb",
92    srcs: [
93        ":protolog-groups",
94        ":services.core-sources-am-wm",
95    ],
96    tools: ["protologtool"],
97    cmd: "$(location protologtool) generate-viewer-config " +
98        "--protolog-class com.android.internal.protolog.ProtoLog " +
99        "--loggroups-class com.android.internal.protolog.WmProtoLogGroups " +
100        "--loggroups-jar $(location :protolog-groups) " +
101        "--viewer-config-type proto " +
102        "--viewer-config $(out) " +
103        "$(locations :services.core-sources-am-wm)",
104    out: ["core.protolog.pb"],
105}
106
107genrule {
108    name: "statslog-art-java-gen",
109    tools: ["stats-log-api-gen"],
110    cmd: "$(location stats-log-api-gen) --java $(out) --module art" +
111        " --javaPackage com.android.internal.art --javaClass ArtStatsLog --worksource",
112    out: ["com/android/internal/art/ArtStatsLog.java"],
113}
114
115genrule {
116    name: "statslog-contexthub-java-gen",
117    tools: ["stats-log-api-gen"],
118    cmd: "$(location stats-log-api-gen) --java $(out) --module contexthub" +
119        " --javaPackage com.android.server.location.contexthub --javaClass ContextHubStatsLog",
120    out: ["com/android/server/location/contexthub/ContextHubStatsLog.java"],
121}
122
123java_library_static {
124    name: "services.core.unboosted",
125    defaults: [
126        "platform_service_defaults",
127        "android.hardware.power-java_shared",
128        "latest_android_hardware_broadcastradio_java_static",
129        "services_crashrecovery_stubs_conditionally",
130        "ondeviceintelligence_conditionally",
131    ],
132    srcs: [
133        ":android.hardware.tv.hdmi.connection-V1-java-source",
134        ":android.hardware.tv.hdmi.earc-V1-java-source",
135        ":statslog-art-java-gen",
136        ":statslog-contexthub-java-gen",
137        ":services.core-aidl-sources",
138        ":services.core-sources",
139        ":services.core.protologsrc",
140        ":platform-compat-config",
141        ":platform-compat-overrides",
142        ":display-device-config",
143        ":display-layout-config",
144        ":device-state-config",
145        "java/com/android/server/EventLogTags.logtags",
146        "java/com/android/server/am/EventLogTags.logtags",
147        "java/com/android/server/wm/EventLogTags.logtags",
148        "java/com/android/server/policy/EventLogTags.logtags",
149
150        // Java/AIDL sources to be moved out to CrashRecovery module
151        ":services-crashrecovery-sources",
152    ],
153
154    libs: [
155        "services.net",
156        "android.frameworks.location.altitude-V2-java",
157        "android.hardware.common-V2-java",
158        "android.hardware.light-V2.0-java",
159        "android.hardware.gnss-V2-java",
160        "android.hardware.vibrator-V3-java",
161        "androidx.annotation_annotation",
162        "app-compat-annotations",
163        "framework-tethering.stubs.module_lib",
164        "keepanno-annotations",
165        "service-art.stubs.system_server",
166        "service-permission.stubs.system_server",
167        "service-rkp.stubs.system_server",
168        "service-sdksandbox.stubs.system_server",
169        "device_policy_aconfig_flags_lib",
170    ],
171    plugins: ["ImmutabilityAnnotationProcessor"],
172
173    required: [
174        "default_television.xml",
175        "gps_debug.conf",
176        "protolog.conf.json.gz",
177        "core.protolog.pb",
178    ],
179
180    static_libs: [
181        "android.frameworks.vibrator-V1-java", // AIDL
182        "android.frameworks.devicestate-V1-java", // AIDL
183        "android.hardware.authsecret-V1.0-java",
184        "android.hardware.authsecret-V1-java",
185        "android.hardware.boot-V1.0-java", // HIDL
186        "android.hardware.boot-V1.1-java", // HIDL
187        "android.hardware.boot-V1.2-java", // HIDL
188        "android.hardware.boot-V1-java", // AIDL
189        "android.hardware.broadcastradio-V2.0-java", // HIDL
190        "android.hardware.health-V1.0-java", // HIDL
191        "android.hardware.health-V2.0-java", // HIDL
192        "android.hardware.health-V2.1-java", // HIDL
193        "android.hardware.health-V4-java", // AIDL
194        "android.hardware.health-translate-java",
195        "android.hardware.light-V1-java",
196        "android.hardware.security.authgraph-V1-java",
197        "android.hardware.security.rkp-V3-java",
198        "android.hardware.security.secretkeeper-V1-java",
199        "android.hardware.tv.cec-V1.1-java",
200        "android.hardware.tv.hdmi.cec-V1-java",
201        "android.hardware.tv.hdmi.connection-V1-java",
202        "android.hardware.tv.hdmi.earc-V1-java",
203        "android.hardware.weaver-V1.0-java",
204        "android.hardware.weaver-V2-java",
205        "android.hardware.biometrics.face-V1.0-java",
206        "android.hardware.biometrics.fingerprint-V2.3-java",
207        "android.hardware.oemlock-V1.0-java",
208        "android.hardware.oemlock-V1-java",
209        "android.hardware.configstore-V1.1-java",
210        "android.hardware.ir-V1-java",
211        "android.hardware.rebootescrow-V1-java",
212        "android.hardware.power.stats-V2-java",
213        "android.hidl.manager-V1.2-java",
214        "cbor-java",
215        "com.android.media.audio-aconfig-java",
216        "icu4j_calendar_astronomer",
217        "android.security.aaid_aidl-java",
218        "netd-client",
219        "overlayable_policy_aidl-java",
220        "SurfaceFlingerProperties",
221        "com.android.sysprop.watchdog",
222        "securebox",
223        "apache-commons-math",
224        "battery_saver_flag_lib",
225        "guava",
226        "notification_flags_lib",
227        "power_hint_flags_lib",
228        "biometrics_flags_lib",
229        "am_flags_lib",
230        "updates_flags_lib",
231        "com_android_server_accessibility_flags_lib",
232        "//frameworks/libs/systemui:com_android_systemui_shared_flags_lib",
233        "com_android_launcher3_flags_lib",
234        "com_android_wm_shell_flags_lib",
235        "com.android.server.utils_aconfig-java",
236        "service-jobscheduler-deviceidle.flags-aconfig-java",
237        "policy_flags_lib",
238        "net_flags_lib",
239        "stats_flags_lib",
240        "core_os_flags_lib",
241        "connectivity_flags_lib",
242        "device_config_service_flags_java",
243        "dreams_flags_lib",
244        "aconfig_new_storage_flags_lib",
245        "powerstats_flags_lib",
246        "locksettings_flags_lib",
247        "profiling_flags_lib",
248        "android.adpf.sessionmanager_aidl-java",
249        "uprobestats_flags_java_lib",
250    ],
251    javac_shard_size: 50,
252    javacflags: [
253        "-J--add-modules=jdk.compiler",
254        "-J--add-exports=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED",
255        "-J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED",
256        "-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED",
257        "-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED",
258    ],
259    lint: {
260        baseline_filename: "lint-baseline.xml",
261        warning_checks: [
262            "FlaggedApi",
263        ],
264    },
265    jarjar_rules: ":services-jarjar-rules",
266    apex_available: ["//apex_available:platform"],
267}
268
269filegroup {
270    name: "services-jarjar-rules",
271    srcs: ["services-jarjar-rules.txt"],
272}
273
274java_genrule {
275    name: "services.core.priorityboosted",
276    srcs: [":services.core.unboosted"],
277    tools: ["lockedregioncodeinjection"],
278    cmd: "$(location lockedregioncodeinjection) " +
279        "  --targets \"Lcom/android/server/am/ActivityManagerService;,Lcom/android/server/am/ActivityManagerGlobalLock;,Lcom/android/server/wm/WindowManagerGlobalLock;,Lcom/android/server/pm/PackageManagerTracedLock;\" " +
280        "  --pre \"com/android/server/am/ActivityManagerService.boostPriorityForLockedSection,com/android/server/am/ActivityManagerService.boostPriorityForProcLockedSection,com/android/server/wm/WindowManagerService.boostPriorityForLockedSection,com/android/server/pm/PackageManagerService.boostPriorityForPackageManagerTracedLockedSection\" " +
281        "  --post \"com/android/server/am/ActivityManagerService.resetPriorityAfterLockedSection,com/android/server/am/ActivityManagerService.resetPriorityAfterProcLockedSection,com/android/server/wm/WindowManagerService.resetPriorityAfterLockedSection,com/android/server/pm/PackageManagerService.resetPriorityAfterPackageManagerTracedLockedSection\" " +
282        "  -o $(out) " +
283        "  -i $(in)",
284    out: ["services.core.priorityboosted.jar"],
285}
286
287java_library {
288    name: "services.core",
289    static_libs: ["services.core.priorityboosted"],
290}
291
292java_library_host {
293    name: "core_cts_test_resources",
294    srcs: ["java/com/android/server/notification/SmallHash.java"],
295}
296
297prebuilt_etc {
298    name: "gps_debug.conf",
299    src: "java/com/android/server/location/gnss/gps_debug.conf",
300}
301
302java_genrule {
303    name: "services.core.json.gz",
304    srcs: [":generate-protolog.json"],
305    out: ["services.core.protolog.json.gz"],
306    cmd: "gzip -c < $(in) > $(out)",
307}
308
309prebuilt_etc {
310    name: "protolog.conf.json.gz",
311    src: ":services.core.json.gz",
312}
313
314prebuilt_etc {
315    name: "core.protolog.pb",
316    src: ":gen-core.protolog.pb",
317}
318