blob: af70692a88e5e26a57682106a8c7fe7517becebc [file] [log] [blame]
Bob Badour8a6a2bc2021-02-12 17:07:05 -08001package {
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
Anton Hanssone3d44e82021-04-12 18:14:30 +010010// Defaults for platform code that runs inside system_server
11java_defaults {
12 name: "platform_service_defaults",
13 plugins: ["error_prone_android_framework"],
14 errorprone: {
15 javacflags: [
16 // "-Xep:AndroidFrameworkBinderIdentity:ERROR",
17 "-Xep:AndroidFrameworkCompatChange:ERROR",
18 // "-Xep:AndroidFrameworkUid:ERROR",
19 // NOTE: only enable to generate local patchfiles
20 // "-XepPatchChecks:refaster:frameworks/base/errorprone/refaster/EfficientXml.java.refaster",
21 // "-XepPatchLocation:/tmp/refaster/",
22 ],
23 },
Azhara Assanovaa131ad92021-06-11 09:53:48 +000024 lint: {
25 extra_check_modules: ["AndroidFrameworkLintChecker"],
26 },
Anton Hanssone3d44e82021-04-12 18:14:30 +010027}
28
Jared Duke4514bdf2021-11-18 13:18:21 -080029// Opt-in config for optimizing and shrinking the services target using R8.
30// Enabled via `export SYSTEM_OPTIMIZE_JAVA=true`, or explicitly in Make via the
31// `SOONG_CONFIG_ANDROID_SYSTEM_OPTIMIZE_JAVA` variable.
32// TODO(b/196084106): Enable optimizations by default after stabilizing and
33// building out retrace infrastructure.
34soong_config_module_type {
35 name: "system_optimized_java_defaults",
36 module_type: "java_defaults",
37 config_namespace: "ANDROID",
38 bool_variables: ["SYSTEM_OPTIMIZE_JAVA"],
39 properties: ["optimize"],
40}
41
42system_optimized_java_defaults {
43 name: "services_java_defaults",
44 soong_config_variables: {
45 SYSTEM_OPTIMIZE_JAVA: {
46 optimize: {
47 enabled: true,
48 optimize: true,
49 shrink: true,
50 proguard_flags_files: ["proguard.flags"],
51 },
52 // Note: Optimizations are disabled by default if unspecified in
53 // the java_library rule.
54 conditions_default: {},
55 },
56 },
57}
58
Jiyong Parkbae2e902019-11-17 13:11:19 +090059filegroup {
60 name: "services-main-sources",
Colin Cross33b78ef2021-03-26 10:31:25 -070061 srcs: [
62 "java/**/*.java",
63 "java/**/package.html",
64 ],
Jiyong Parkbae2e902019-11-17 13:11:19 +090065 path: "java",
66 visibility: ["//visibility:private"],
67}
68
69filegroup {
Andrei Onea43114702021-02-10 20:53:12 +000070 name: "services-non-updatable-sources",
Jiyong Parkbae2e902019-11-17 13:11:19 +090071 srcs: [
72 ":services.core-sources",
Hongwei Wangcdcb68d2020-11-23 12:48:05 -080073 ":services.core-sources-am-wm",
Colin Cross33b78ef2021-03-26 10:31:25 -070074 "core/java/com/android/server/am/package.html",
Jiyong Parkbae2e902019-11-17 13:11:19 +090075 ":services.accessibility-sources",
76 ":services.appprediction-sources",
77 ":services.appwidget-sources",
78 ":services.autofill-sources",
79 ":services.backup-sources",
Roopa Sattiraju1745d752022-01-17 11:13:02 -080080 ":services.bluetooth-sources", // TODO(b/214988855) : Remove once apex/service-bluetooth jar is ready
Jiyong Parkabc72e42019-11-17 15:17:53 +090081 ":backuplib-sources",
Shashwat Razdanf898abc2022-01-21 16:39:46 -080082 ":services.cloudsearch-sources",
Jiyong Parkbae2e902019-11-17 13:11:19 +090083 ":services.companion-sources",
84 ":services.contentcapture-sources",
85 ":services.contentsuggestions-sources",
86 ":services.coverage-sources",
87 ":services.devicepolicy-sources",
88 ":services.midi-sources",
Nick Moukhinecf47bdd2020-08-19 16:29:18 +020089 ":services.musicsearch-sources",
Jiyong Parkbae2e902019-11-17 13:11:19 +090090 ":services.net-sources",
91 ":services.print-sources",
Yi Kong86f85932020-06-29 20:03:55 +080092 ":services.profcollect-sources",
Jiyong Parkbae2e902019-11-17 13:11:19 +090093 ":services.restrictions-sources",
Hyunyoung Song21e60a92020-11-20 20:27:54 -080094 ":services.searchui-sources",
Joanne Chung41c4a0a2021-11-15 23:51:37 +080095 ":services.selectiontoolbar-sources",
Shashwat Razdand33e8c32021-01-29 13:02:19 -080096 ":services.smartspace-sources",
Eugenio Marchioric3c0a1e2020-12-23 10:44:55 +000097 ":services.speech-sources",
Jiyong Parkbae2e902019-11-17 13:11:19 +090098 ":services.startop.iorap-sources",
99 ":services.systemcaptions-sources",
Adam He2653f232020-11-30 18:23:20 -0800100 ":services.translation-sources",
Alex Agranovich50c987f2021-02-18 09:19:33 +0000101 ":services.texttospeech-sources",
Jiyong Parkbae2e902019-11-17 13:11:19 +0900102 ":services.usage-sources",
103 ":services.usb-sources",
104 ":services.voiceinteraction-sources",
Roshan Piusea33fb92020-02-20 12:49:45 -0800105 ":services.wifi-sources",
Andrei Onea43114702021-02-10 20:53:12 +0000106 ],
107 visibility: ["//visibility:private"],
108}
109
Felipe Lemefec71a72021-04-01 23:32:53 -0700110java_library {
111 name: "Slogf",
112 srcs: ["core/java/com/android/server/utils/Slogf.java"],
113}
114
Colin Crosseb652a42017-12-05 09:46:29 -0800115// merge all required services into one jar
116// ============================================================
117java_library {
118 name: "services",
Jared Duke4514bdf2021-11-18 13:18:21 -0800119 defaults: ["services_java_defaults"],
Colin Crossa12c0f52018-06-27 11:00:11 -0700120 installable: true,
Colin Crosseb652a42017-12-05 09:46:29 -0800121
122 dex_preopt: {
123 app_image: true,
124 profile: "art-profile",
125 },
126
Jiyong Parkbae2e902019-11-17 13:11:19 +0900127 srcs: [":services-main-sources"],
Colin Crosseb652a42017-12-05 09:46:29 -0800128
129 // The convention is to name each service module 'services.$(module_name)'
130 static_libs: [
Colin Cross4c0b06b2017-12-12 19:43:04 -0800131 "services.core",
Colin Crosseb652a42017-12-05 09:46:29 -0800132 "services.accessibility",
Sunny Goyal54e91342018-11-14 11:59:02 -0800133 "services.appprediction",
Colin Crosseb652a42017-12-05 09:46:29 -0800134 "services.appwidget",
135 "services.autofill",
136 "services.backup",
Shashwat Razdanf898abc2022-01-21 16:39:46 -0800137 "services.cloudsearch",
Colin Crosseb652a42017-12-05 09:46:29 -0800138 "services.companion",
Felipe Leme749b8892018-12-03 16:30:30 -0800139 "services.contentcapture",
Winson Chung3fb0f252019-01-08 17:41:55 -0800140 "services.contentsuggestions",
Colin Crosseb652a42017-12-05 09:46:29 -0800141 "services.coverage",
142 "services.devicepolicy",
143 "services.midi",
Nick Moukhinecf47bdd2020-08-19 16:29:18 +0200144 "services.musicsearch",
Colin Crosseb652a42017-12-05 09:46:29 -0800145 "services.net",
Danning Chen20b32ed2019-12-18 16:52:03 -0800146 "services.people",
Colin Crosseb652a42017-12-05 09:46:29 -0800147 "services.print",
Yi Kong86f85932020-06-29 20:03:55 +0800148 "services.profcollect",
Colin Crosseb652a42017-12-05 09:46:29 -0800149 "services.restrictions",
Hyunyoung Song21e60a92020-11-20 20:27:54 -0800150 "services.searchui",
Joanne Chung41c4a0a2021-11-15 23:51:37 +0800151 "services.selectiontoolbar",
Shashwat Razdand33e8c32021-01-29 13:02:19 -0800152 "services.smartspace",
Eugenio Marchioric3c0a1e2020-12-23 10:44:55 +0000153 "services.speech",
Igor Murashkin4de1e162018-11-26 10:33:17 -0800154 "services.startop",
Robert Berrye14120e2019-03-18 16:33:42 -0400155 "services.systemcaptions",
Adam He2653f232020-11-30 18:23:20 -0800156 "services.translation",
Alex Agranovich50c987f2021-02-18 09:19:33 +0000157 "services.texttospeech",
Colin Crosseb652a42017-12-05 09:46:29 -0800158 "services.usage",
159 "services.usb",
160 "services.voiceinteraction",
Roshan Piusea33fb92020-02-20 12:49:45 -0800161 "services.wifi",
Dmitri Plotnikov4eaac3a2020-05-04 17:00:16 -0700162 "service-blobstore",
163 "service-jobscheduler",
Colin Crosseb652a42017-12-05 09:46:29 -0800164 "android.hidl.base-V1.0-java",
165 ],
166
167 libs: [
168 "android.hidl.manager-V1.0-java",
Paul Duffinabebc6a2020-05-31 11:35:50 +0100169 "framework-tethering.stubs.module_lib",
Chris Wailes09724a72021-02-08 10:00:13 -0800170 "service-art.stubs.system_server",
Colin Crosseb652a42017-12-05 09:46:29 -0800171 ],
172
173 // Uncomment to enable output of certain warnings (deprecated, unchecked)
174 //javacflags: ["-Xlint"],
Colin Crosseb652a42017-12-05 09:46:29 -0800175}
176
Colin Cross3a7d8992017-12-05 17:33:58 -0800177// native library
178// =============================================================
179
180cc_library_shared {
181 name: "libandroid_servers",
182 defaults: ["libservices.core-libs"],
183 whole_static_libs: ["libservices.core"],
markchieneaca9e92022-01-18 18:26:28 +0800184 required: [
185 // TODO: remove after NetworkStatsService is moved to the mainline module.
186 "libcom_android_net_module_util_jni",
187 ],
Colin Cross3a7d8992017-12-05 17:33:58 -0800188}
atrost86895aa2019-08-19 16:51:15 +0100189
190platform_compat_config {
191 name: "services-platform-compat-config",
atrost86895aa2019-08-19 16:51:15 +0100192 src: ":services",
193}
Ulya Trafimovich0d1b063d62019-12-03 11:59:51 +0000194
195filegroup {
196 name: "art-profile",
197 srcs: ["art-profile"],
198}
Jiyong Parkabc72e42019-11-17 15:17:53 +0900199
200// API stub
201// =============================================================
202
Andrei Onea43114702021-02-10 20:53:12 +0000203stubs_defaults {
204 name: "services-stubs-default",
Jiyong Parkabc72e42019-11-17 15:17:53 +0900205 installable: false,
Makoto Onukiaf97aef2020-02-03 10:32:52 -0800206 args: " --show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.SYSTEM_SERVER\\)" +
Jiyong Parkabc72e42019-11-17 15:17:53 +0900207 " --hide-annotation android.annotation.Hide" +
Anton Hanssonf74130f2020-02-19 18:29:12 +0000208 " --hide InternalClasses" + // com.android.* classes are okay in this interface
209 // TODO: remove the --hide options below
Jiyong Parkabc72e42019-11-17 15:17:53 +0900210 " --hide-package com.google.android.startop.iorap" +
Jiyong Parkabc72e42019-11-17 15:17:53 +0900211 " --hide DeprecationMismatch" +
212 " --hide HiddenTypedefConstant",
Andrei Oneafaa271a2021-03-17 13:32:51 +0000213 visibility: ["//frameworks/base:__subpackages__"],
Felipe Lemed3895b62021-03-24 16:55:27 -0700214 filter_packages: ["com.android."],
Andrei Onea43114702021-02-10 20:53:12 +0000215}
216
217droidstubs {
Andrei Oneafaa271a2021-03-17 13:32:51 +0000218 name: "services-non-updatable-stubs",
Andrei Onea43114702021-02-10 20:53:12 +0000219 srcs: [":services-non-updatable-sources"],
220 defaults: ["services-stubs-default"],
221 check_api: {
222 current: {
Andrei Onea8168dc22021-04-30 12:52:36 +0000223 api_file: "api/current.txt",
224 removed_api_file: "api/removed.txt",
Andrei Onea43114702021-02-10 20:53:12 +0000225 },
226 api_lint: {
227 enabled: true,
228 new_since: ":android-non-updatable.api.system-server.latest",
Andrei Onea8168dc22021-04-30 12:52:36 +0000229 baseline_file: "api/lint-baseline.txt",
Andrei Onea43114702021-02-10 20:53:12 +0000230 },
231 },
232 dists: [
233 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000234 targets: ["sdk"],
Andrei Onea43114702021-02-10 20:53:12 +0000235 dir: "apistubs/android/system-server/api",
236 dest: "android-non-updatable.txt",
Felipe Lemed3895b62021-03-24 16:55:27 -0700237 tag: ".api.txt",
Andrei Onea43114702021-02-10 20:53:12 +0000238 },
239 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000240 targets: ["sdk"],
Andrei Onea43114702021-02-10 20:53:12 +0000241 dir: "apistubs/android/system-server/api",
242 dest: "android-non-updatable-removed.txt",
243 tag: ".removed-api.txt",
244 },
Felipe Lemed3895b62021-03-24 16:55:27 -0700245 ],
246}