blob: 3a0428e0a9f8188f5e203a34125959001812a043 [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: [
Anton Hanssone3d44e82021-04-12 18:14:30 +010016 "-Xep:AndroidFrameworkCompatChange:ERROR",
17 // "-Xep:AndroidFrameworkUid:ERROR",
Michael Wright010aa302022-02-04 17:12:47 +000018 "-Xep:SelfEquals:ERROR",
Michael Wright2e7197c2022-02-04 19:00:44 +000019 "-Xep:NullTernary:ERROR",
Michael Wright5c975952022-02-04 20:08:57 +000020 "-Xep:TryFailThrowable:ERROR",
Michael Wright400ea882022-02-04 20:45:04 +000021 "-Xep:HashtableContains:ERROR",
Michael Wrightc92adae2022-02-04 20:49:14 +000022 "-Xep:FormatString:ERROR",
Michael Wright16451b02022-02-04 20:59:26 +000023 "-Xep:ArrayHashCode:ERROR",
Michael Wright573d22a2022-02-04 21:02:33 +000024 "-Xep:SelfAssignment:ERROR",
Michael Wright3cc84d02022-02-04 21:05:45 +000025 "-Xep:ArrayEquals:ERROR",
Michael Wright684f5a52022-02-04 21:41:04 +000026 "-Xep:IdentityBinaryExpression:ERROR",
Anton Hanssone3d44e82021-04-12 18:14:30 +010027 // NOTE: only enable to generate local patchfiles
28 // "-XepPatchChecks:refaster:frameworks/base/errorprone/refaster/EfficientXml.java.refaster",
29 // "-XepPatchLocation:/tmp/refaster/",
30 ],
31 },
Azhara Assanovaa131ad92021-06-11 09:53:48 +000032 lint: {
33 extra_check_modules: ["AndroidFrameworkLintChecker"],
34 },
Anton Hanssone3d44e82021-04-12 18:14:30 +010035}
36
Jared Duke4514bdf2021-11-18 13:18:21 -080037// Opt-in config for optimizing and shrinking the services target using R8.
38// Enabled via `export SYSTEM_OPTIMIZE_JAVA=true`, or explicitly in Make via the
39// `SOONG_CONFIG_ANDROID_SYSTEM_OPTIMIZE_JAVA` variable.
40// TODO(b/196084106): Enable optimizations by default after stabilizing and
41// building out retrace infrastructure.
42soong_config_module_type {
43 name: "system_optimized_java_defaults",
44 module_type: "java_defaults",
45 config_namespace: "ANDROID",
46 bool_variables: ["SYSTEM_OPTIMIZE_JAVA"],
47 properties: ["optimize"],
48}
49
50system_optimized_java_defaults {
51 name: "services_java_defaults",
52 soong_config_variables: {
53 SYSTEM_OPTIMIZE_JAVA: {
54 optimize: {
55 enabled: true,
Jared Dukeea03d102022-02-15 13:57:06 -080056 // TODO(b/210510433): Enable optimizations after improving
57 // retracing infra.
58 optimize: false,
Jared Duke4514bdf2021-11-18 13:18:21 -080059 shrink: true,
Jared Duke06689ad2022-09-07 12:24:36 -070060 ignore_warnings: false,
Jared Duke6cf7fbd2023-05-19 20:21:36 +000061 proguard_flags_files: [
62 "proguard.flags",
63 // Ensure classes referenced in the framework-res manifest
64 // and implemented in system_server are kept.
65 ":framework-res{.aapt.proguardOptionsFile}",
66 ],
Jared Duke4514bdf2021-11-18 13:18:21 -080067 },
Hai Zhang3070d7c2022-11-11 21:48:44 -080068 conditions_default: {
69 optimize: {
70 enabled: true,
71 optimize: false,
72 shrink: true,
73 ignore_warnings: false,
74 // Note that this proguard config is very conservative, only shrinking the
75 // permission subpackage to prune unused jarjar'ed Kotlin dependencies.
76 proguard_flags_files: ["proguard_permission.flags"],
77 },
78 },
Jared Duke4514bdf2021-11-18 13:18:21 -080079 },
80 },
81}
82
Jiyong Parkbae2e902019-11-17 13:11:19 +090083filegroup {
84 name: "services-main-sources",
Colin Cross33b78ef2021-03-26 10:31:25 -070085 srcs: [
86 "java/**/*.java",
87 "java/**/package.html",
88 ],
Jiyong Parkbae2e902019-11-17 13:11:19 +090089 path: "java",
90 visibility: ["//visibility:private"],
91}
92
93filegroup {
Andrei Onea43114702021-02-10 20:53:12 +000094 name: "services-non-updatable-sources",
Jiyong Parkbae2e902019-11-17 13:11:19 +090095 srcs: [
96 ":services.core-sources",
Hongwei Wangcdcb68d2020-11-23 12:48:05 -080097 ":services.core-sources-am-wm",
Colin Cross33b78ef2021-03-26 10:31:25 -070098 "core/java/com/android/server/am/package.html",
Jiyong Parkbae2e902019-11-17 13:11:19 +090099 ":services.accessibility-sources",
100 ":services.appprediction-sources",
101 ":services.appwidget-sources",
102 ":services.autofill-sources",
103 ":services.backup-sources",
104 ":services.companion-sources",
105 ":services.contentcapture-sources",
106 ":services.contentsuggestions-sources",
107 ":services.coverage-sources",
Helen Qin20ff3552022-09-13 15:47:24 +0000108 ":services.credentials-sources",
Jiyong Parkbae2e902019-11-17 13:11:19 +0900109 ":services.devicepolicy-sources",
110 ":services.midi-sources",
Nick Moukhinecf47bdd2020-08-19 16:29:18 +0200111 ":services.musicsearch-sources",
Jiyong Parkbae2e902019-11-17 13:11:19 +0900112 ":services.net-sources",
Hai Zhang3070d7c2022-11-11 21:48:44 -0800113 ":services.permission-sources",
Jiyong Parkbae2e902019-11-17 13:11:19 +0900114 ":services.print-sources",
Yi Kong86f85932020-06-29 20:03:55 +0800115 ":services.profcollect-sources",
Jiyong Parkbae2e902019-11-17 13:11:19 +0900116 ":services.restrictions-sources",
Hyunyoung Song21e60a92020-11-20 20:27:54 -0800117 ":services.searchui-sources",
Joanne Chung41c4a0a2021-11-15 23:51:37 +0800118 ":services.selectiontoolbar-sources",
Shashwat Razdand33e8c32021-01-29 13:02:19 -0800119 ":services.smartspace-sources",
Atneya Nair0d4726f2023-04-07 15:36:29 -0700120 ":services.soundtrigger-sources",
Jiyong Parkbae2e902019-11-17 13:11:19 +0900121 ":services.systemcaptions-sources",
Adam He2653f232020-11-30 18:23:20 -0800122 ":services.translation-sources",
Alex Agranovich50c987f2021-02-18 09:19:33 +0000123 ":services.texttospeech-sources",
Jiyong Parkbae2e902019-11-17 13:11:19 +0900124 ":services.usage-sources",
125 ":services.usb-sources",
126 ":services.voiceinteraction-sources",
Sharon Sua5afd372022-02-01 22:09:36 +0000127 ":services.wallpapereffectsgeneration-sources",
Roshan Piusea33fb92020-02-20 12:49:45 -0800128 ":services.wifi-sources",
Andrei Onea43114702021-02-10 20:53:12 +0000129 ],
130 visibility: ["//visibility:private"],
131}
132
Felipe Lemefec71a72021-04-01 23:32:53 -0700133java_library {
134 name: "Slogf",
135 srcs: ["core/java/com/android/server/utils/Slogf.java"],
136}
137
Colin Crosseb652a42017-12-05 09:46:29 -0800138// merge all required services into one jar
139// ============================================================
140java_library {
141 name: "services",
Jared Duke4514bdf2021-11-18 13:18:21 -0800142 defaults: ["services_java_defaults"],
Colin Crossa12c0f52018-06-27 11:00:11 -0700143 installable: true,
Colin Crosseb652a42017-12-05 09:46:29 -0800144
145 dex_preopt: {
146 app_image: true,
147 profile: "art-profile",
148 },
Hai Zhang3070d7c2022-11-11 21:48:44 -0800149 exclude_kotlinc_generated_files: true,
Colin Crosseb652a42017-12-05 09:46:29 -0800150
Jiyong Parkbae2e902019-11-17 13:11:19 +0900151 srcs: [":services-main-sources"],
Colin Crosseb652a42017-12-05 09:46:29 -0800152
153 // The convention is to name each service module 'services.$(module_name)'
154 static_libs: [
Colin Cross4c0b06b2017-12-12 19:43:04 -0800155 "services.core",
Colin Crosseb652a42017-12-05 09:46:29 -0800156 "services.accessibility",
Sunny Goyal54e91342018-11-14 11:59:02 -0800157 "services.appprediction",
Colin Crosseb652a42017-12-05 09:46:29 -0800158 "services.appwidget",
159 "services.autofill",
160 "services.backup",
161 "services.companion",
Felipe Leme749b8892018-12-03 16:30:30 -0800162 "services.contentcapture",
Winson Chung3fb0f252019-01-08 17:41:55 -0800163 "services.contentsuggestions",
Colin Crosseb652a42017-12-05 09:46:29 -0800164 "services.coverage",
Helen Qin20ff3552022-09-13 15:47:24 +0000165 "services.credentials",
Colin Crosseb652a42017-12-05 09:46:29 -0800166 "services.devicepolicy",
167 "services.midi",
Nick Moukhinecf47bdd2020-08-19 16:29:18 +0200168 "services.musicsearch",
Colin Crosseb652a42017-12-05 09:46:29 -0800169 "services.net",
Danning Chen20b32ed2019-12-18 16:52:03 -0800170 "services.people",
Hai Zhang3070d7c2022-11-11 21:48:44 -0800171 "services.permission",
Colin Crosseb652a42017-12-05 09:46:29 -0800172 "services.print",
Yi Kong86f85932020-06-29 20:03:55 +0800173 "services.profcollect",
Colin Crosseb652a42017-12-05 09:46:29 -0800174 "services.restrictions",
Hyunyoung Song21e60a92020-11-20 20:27:54 -0800175 "services.searchui",
Joanne Chung41c4a0a2021-11-15 23:51:37 +0800176 "services.selectiontoolbar",
Shashwat Razdand33e8c32021-01-29 13:02:19 -0800177 "services.smartspace",
Atneya Nair0d4726f2023-04-07 15:36:29 -0700178 "services.soundtrigger",
Robert Berrye14120e2019-03-18 16:33:42 -0400179 "services.systemcaptions",
Adam He2653f232020-11-30 18:23:20 -0800180 "services.translation",
Alex Agranovich50c987f2021-02-18 09:19:33 +0000181 "services.texttospeech",
Colin Crosseb652a42017-12-05 09:46:29 -0800182 "services.usage",
183 "services.usb",
184 "services.voiceinteraction",
Sharon Sua5afd372022-02-01 22:09:36 +0000185 "services.wallpapereffectsgeneration",
Roshan Piusea33fb92020-02-20 12:49:45 -0800186 "services.wifi",
Dmitri Plotnikov4eaac3a2020-05-04 17:00:16 -0700187 "service-blobstore",
188 "service-jobscheduler",
Colin Crosseb652a42017-12-05 09:46:29 -0800189 "android.hidl.base-V1.0-java",
190 ],
191
192 libs: [
193 "android.hidl.manager-V1.0-java",
Paul Duffinabebc6a2020-05-31 11:35:50 +0100194 "framework-tethering.stubs.module_lib",
Chris Wailes09724a72021-02-08 10:00:13 -0800195 "service-art.stubs.system_server",
Jared Duke06689ad2022-09-07 12:24:36 -0700196 "service-permission.stubs.system_server",
Seth Moore0277b662022-10-20 14:14:39 -0700197 "service-rkp.stubs.system_server",
Jared Duke06689ad2022-09-07 12:24:36 -0700198 "service-sdksandbox.stubs.system_server",
Colin Crosseb652a42017-12-05 09:46:29 -0800199 ],
200
Brian Julianeba77a82023-02-01 14:13:45 +0000201 vintf_fragments: [
202 "manifest_services.xml",
203 ],
204
Raphael Kim82701132023-02-15 22:40:07 -0800205 required: [
206 "libukey2_jni_shared",
207 ],
208
Colin Crosseb652a42017-12-05 09:46:29 -0800209 // Uncomment to enable output of certain warnings (deprecated, unchecked)
210 //javacflags: ["-Xlint"],
Colin Crosseb652a42017-12-05 09:46:29 -0800211}
212
Colin Cross3a7d8992017-12-05 17:33:58 -0800213// native library
214// =============================================================
215
216cc_library_shared {
217 name: "libandroid_servers",
218 defaults: ["libservices.core-libs"],
219 whole_static_libs: ["libservices.core"],
220}
atrost86895aa2019-08-19 16:51:15 +0100221
222platform_compat_config {
223 name: "services-platform-compat-config",
atrost86895aa2019-08-19 16:51:15 +0100224 src: ":services",
225}
Ulya Trafimovich0d1b063d62019-12-03 11:59:51 +0000226
227filegroup {
228 name: "art-profile",
229 srcs: ["art-profile"],
230}
Jiyong Parkabc72e42019-11-17 15:17:53 +0900231
232// API stub
233// =============================================================
234
Andrei Onea43114702021-02-10 20:53:12 +0000235stubs_defaults {
236 name: "services-stubs-default",
Jiyong Parkabc72e42019-11-17 15:17:53 +0900237 installable: false,
Anton Hansson84a0e712023-10-23 09:17:45 +0000238 flags: [
239 "--show-annotation android.annotation.SystemApi\\(client=android.annotation.SystemApi.Client.SYSTEM_SERVER\\)",
240 "--hide-annotation android.annotation.Hide",
241 "--hide InternalClasses", // com.android.* classes are okay in this interface
Anton Hanssonf74130f2020-02-19 18:29:12 +0000242 // TODO: remove the --hide options below
Anton Hansson84a0e712023-10-23 09:17:45 +0000243 "--hide DeprecationMismatch",
244 "--hide HiddenTypedefConstant",
245 ],
Andrei Oneafaa271a2021-03-17 13:32:51 +0000246 visibility: ["//frameworks/base:__subpackages__"],
Felipe Lemed3895b62021-03-24 16:55:27 -0700247 filter_packages: ["com.android."],
Andrei Onea43114702021-02-10 20:53:12 +0000248}
249
250droidstubs {
Andrei Oneafaa271a2021-03-17 13:32:51 +0000251 name: "services-non-updatable-stubs",
Andrei Onea43114702021-02-10 20:53:12 +0000252 srcs: [":services-non-updatable-sources"],
253 defaults: ["services-stubs-default"],
254 check_api: {
255 current: {
Andrei Onea8168dc22021-04-30 12:52:36 +0000256 api_file: "api/current.txt",
257 removed_api_file: "api/removed.txt",
Andrei Onea43114702021-02-10 20:53:12 +0000258 },
259 api_lint: {
260 enabled: true,
261 new_since: ":android-non-updatable.api.system-server.latest",
Andrei Onea8168dc22021-04-30 12:52:36 +0000262 baseline_file: "api/lint-baseline.txt",
Andrei Onea43114702021-02-10 20:53:12 +0000263 },
264 },
265 dists: [
266 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000267 targets: ["sdk"],
Andrei Onea43114702021-02-10 20:53:12 +0000268 dir: "apistubs/android/system-server/api",
269 dest: "android-non-updatable.txt",
Felipe Lemed3895b62021-03-24 16:55:27 -0700270 tag: ".api.txt",
Andrei Onea43114702021-02-10 20:53:12 +0000271 },
272 {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000273 targets: ["sdk"],
Andrei Onea43114702021-02-10 20:53:12 +0000274 dir: "apistubs/android/system-server/api",
275 dest: "android-non-updatable-removed.txt",
276 tag: ".removed-api.txt",
277 },
Felipe Lemed3895b62021-03-24 16:55:27 -0700278 ],
Jihoon Kang866b9b7a2023-09-20 22:28:05 +0000279 api_surface: "system-server",
Felipe Lemed3895b62021-03-24 16:55:27 -0700280}