blob: a949ff5a331b0310004ccc23b14424b79c3ffddf [file] [log] [blame]
Jiyong Park7fb4b182019-12-20 14:35:43 +09001// Copyright (C) 2019 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// How stubs are generated:
16//
17// raw source files --(metalava)--> stub source files --(javac)--> stub jar files
18//
Anton Hansson2feb3f12020-11-13 11:44:32 +000019// - The metalava conversion is done by droidstub modules
20// - The javac compilation is done by java_library modules
21//
Jiyong Park7fb4b182019-12-20 14:35:43 +090022// The metalava conversion is also responsible for creating API signature files
Anton Hansson2feb3f12020-11-13 11:44:32 +000023// and comparing them against the checked in API signature, and also checking compatibility
24// with the latest frozen API signature.
Jiyong Park7fb4b182019-12-20 14:35:43 +090025
26/////////////////////////////////////////////////////////////////////
Anton Hansson51861e72020-11-13 09:55:29 +000027// These modules provide source files for the stub libraries
Jiyong Park7fb4b182019-12-20 14:35:43 +090028/////////////////////////////////////////////////////////////////////
29
Jihoon Kang2d295ae2024-03-21 23:57:14 +000030soong_config_module_type_import {
31 from: "frameworks/base/api/Android.bp",
32 module_types: ["non_updatable_exportable_droidstubs"],
33}
34
35non_updatable_exportable_droidstubs {
Anton Hansson76d3db42020-04-09 14:16:37 +010036 name: "api-stubs-docs-non-updatable",
Anton Hansson9dce8322022-01-24 14:14:33 +000037 defaults: [
38 "android-non-updatable-stubs-defaults",
39 "module-classpath-stubs-defaults",
40 ],
Paul Duffina2c4cd72024-06-18 18:49:48 +010041 // Use full Android API not just the non-updatable API as the latter is incomplete
42 // and can result in incorrect behavior.
43 previous_api: ":android.api.combined.public.latest",
Anton Hansson76d3db42020-04-09 14:16:37 +010044 check_api: {
45 current: {
Anton Hanssonb7cda922023-03-03 15:38:28 +000046 api_file: ":non-updatable-current.txt",
47 removed_api_file: ":non-updatable-removed.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +010048 },
Anton Hansson37e102e2020-10-05 16:42:40 +010049 last_released: {
Paul Duffinf75e9102024-05-20 16:20:39 +010050 api_file: ":android-non-updatable.api.combined.public.latest",
51 removed_api_file: ":android-non-updatable-removed.api.combined.public.latest",
Anton Hansson7f3393d2021-04-12 11:56:53 +010052 baseline_file: ":android-non-updatable-incompatibilities.api.public.latest",
Anton Hansson37e102e2020-10-05 16:42:40 +010053 },
Anton Hansson76d3db42020-04-09 14:16:37 +010054 api_lint: {
55 enabled: true,
Paul Duffin98bc0112024-05-17 14:21:44 +010056 new_since: ":android.api.combined.public.latest",
Adrian Roos440f3cf2023-09-20 10:03:31 +000057 baseline_file: ":non-updatable-lint-baseline.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +010058 },
59 },
Jihoon Kang2d295ae2024-03-21 23:57:14 +000060 soong_config_variables: {
61 release_hidden_api_exportable_stubs: {
62 dists: [
63 {
Jihoon Kang00f480e2024-04-10 18:55:36 +000064 targets: ["sdk"],
65 dir: "apistubs/android/public/api",
66 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +000067 tag: ".exportable.api.txt",
68 },
69 {
Jihoon Kang00f480e2024-04-10 18:55:36 +000070 targets: ["sdk"],
71 dir: "apistubs/android/public/api",
72 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +000073 tag: ".exportable.removed-api.txt",
74 },
75 ],
76 conditions_default: {
77 dists: [
78 {
Jihoon Kang00f480e2024-04-10 18:55:36 +000079 targets: ["sdk"],
80 dir: "apistubs/android/public/api",
81 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +000082 tag: ".api.txt",
83 },
84 {
Jihoon Kang00f480e2024-04-10 18:55:36 +000085 targets: ["sdk"],
86 dir: "apistubs/android/public/api",
87 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +000088 tag: ".removed-api.txt",
89 },
90 ],
91 },
92 },
93 },
Jihoon Kang866b9b7a2023-09-20 22:28:05 +000094 api_surface: "public",
Anton Hansson76d3db42020-04-09 14:16:37 +010095}
96
Anton Hansson84a0e712023-10-23 09:17:45 +000097priv_apps = [
98 "--show-annotation android.annotation.SystemApi\\(" +
99 "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS" +
100 "\\)",
101]
Anton Hansson2feb3f12020-11-13 11:44:32 +0000102
Anton Hansson84a0e712023-10-23 09:17:45 +0000103priv_apps_in_stubs = [
104 "--show-for-stub-purposes-annotation android.annotation.SystemApi\\(" +
105 "client=android.annotation.SystemApi.Client.PRIVILEGED_APPS" +
106 "\\)",
107]
Anton Hansson2feb3f12020-11-13 11:44:32 +0000108
Anton Hansson84a0e712023-10-23 09:17:45 +0000109test = ["--show-annotation android.annotation.TestApi"]
Anton Hansson2feb3f12020-11-13 11:44:32 +0000110
Anton Hansson84a0e712023-10-23 09:17:45 +0000111module_libs = [
112 "--show-annotation android.annotation.SystemApi\\(" +
113 "client=android.annotation.SystemApi.Client.MODULE_LIBRARIES" +
114 "\\)",
115]
Anton Hansson81969c22020-02-03 20:45:56 +0000116
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000117non_updatable_exportable_droidstubs {
Anton Hansson76d3db42020-04-09 14:16:37 +0100118 name: "system-api-stubs-docs-non-updatable",
Anton Hansson9dce8322022-01-24 14:14:33 +0000119 defaults: [
120 "android-non-updatable-stubs-defaults",
121 "module-classpath-stubs-defaults",
122 ],
Anton Hansson84a0e712023-10-23 09:17:45 +0000123 flags: priv_apps,
Paul Duffina2c4cd72024-06-18 18:49:48 +0100124 // Use full Android API not just the non-updatable API as the latter is incomplete
125 // and can result in incorrect behavior.
126 previous_api: ":android.api.combined.system.latest",
Anton Hansson76d3db42020-04-09 14:16:37 +0100127 check_api: {
128 current: {
Anton Hanssonb7cda922023-03-03 15:38:28 +0000129 api_file: ":non-updatable-system-current.txt",
130 removed_api_file: ":non-updatable-system-removed.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +0100131 },
Anton Hansson37e102e2020-10-05 16:42:40 +0100132 last_released: {
Paul Duffinf75e9102024-05-20 16:20:39 +0100133 api_file: ":android-non-updatable.api.combined.system.latest",
134 removed_api_file: ":android-non-updatable-removed.api.combined.system.latest",
Anton Hansson240ee482021-04-14 12:52:00 +0100135 baseline_file: ":android-non-updatable-incompatibilities.api.system.latest",
Anton Hansson37e102e2020-10-05 16:42:40 +0100136 },
Anton Hansson76d3db42020-04-09 14:16:37 +0100137 api_lint: {
138 enabled: true,
Paul Duffin98bc0112024-05-17 14:21:44 +0100139 new_since: ":android.api.combined.system.latest",
Anton Hanssonb7cda922023-03-03 15:38:28 +0000140 baseline_file: ":non-updatable-system-lint-baseline.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +0100141 },
142 },
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000143 soong_config_variables: {
144 release_hidden_api_exportable_stubs: {
145 dists: [
146 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000147 targets: ["sdk"],
148 dir: "apistubs/android/system/api",
149 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000150 tag: ".exportable.api.txt",
151 },
152 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000153 targets: ["sdk"],
154 dir: "apistubs/android/system/api",
155 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000156 tag: ".exportable.removed-api.txt",
157 },
158 ],
159 conditions_default: {
160 dists: [
161 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000162 targets: ["sdk"],
163 dir: "apistubs/android/system/api",
164 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000165 tag: ".api.txt",
166 },
167 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000168 targets: ["sdk"],
169 dir: "apistubs/android/system/api",
170 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000171 tag: ".removed-api.txt",
172 },
173 ],
174 },
175 },
176 },
Jihoon Kang866b9b7a2023-09-20 22:28:05 +0000177 api_surface: "system",
Anton Hansson76d3db42020-04-09 14:16:37 +0100178}
179
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000180non_updatable_exportable_droidstubs {
Anton Hansson022aac52020-11-05 10:45:13 +0000181 name: "test-api-stubs-docs-non-updatable",
Anton Hansson9dce8322022-01-24 14:14:33 +0000182 defaults: [
183 "android-non-updatable-stubs-defaults",
184 "module-classpath-stubs-defaults",
185 ],
Anton Hansson84a0e712023-10-23 09:17:45 +0000186 flags: test + priv_apps_in_stubs,
Paul Duffina2c4cd72024-06-18 18:49:48 +0100187 // Use full Android API not just the non-updatable API as the latter is incomplete
188 // and can result in incorrect behavior.
189 previous_api: ":android.api.combined.test.latest",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900190 check_api: {
191 current: {
Anton Hanssonb7cda922023-03-03 15:38:28 +0000192 api_file: ":non-updatable-test-current.txt",
193 removed_api_file: ":non-updatable-test-removed.txt",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900194 },
195 api_lint: {
196 enabled: true,
Paul Duffin98bc0112024-05-17 14:21:44 +0100197 new_since: ":android.api.combined.test.latest",
Anton Hanssonb7cda922023-03-03 15:38:28 +0000198 baseline_file: ":non-updatable-test-lint-baseline.txt",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900199 },
200 },
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000201 soong_config_variables: {
202 release_hidden_api_exportable_stubs: {
203 dists: [
204 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000205 targets: ["sdk"],
206 dir: "apistubs/android/test/api",
207 dest: "android.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000208 tag: ".exportable.api.txt",
209 },
210 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000211 targets: ["sdk"],
212 dir: "apistubs/android/test/api",
213 dest: "removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000214 tag: ".exportable.removed-api.txt",
215 },
216 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000217 targets: ["sdk"],
218 dir: "apistubs/android/test/api",
219 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000220 tag: ".exportable.api.txt",
221 },
222 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000223 targets: ["sdk"],
224 dir: "apistubs/android/test/api",
225 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000226 tag: ".exportable.removed-api.txt",
227 },
228 ],
229 conditions_default: {
230 dists: [
231 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000232 targets: ["sdk"],
233 dir: "apistubs/android/test/api",
234 dest: "android.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000235 tag: ".api.txt",
236 },
237 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000238 targets: ["sdk"],
239 dir: "apistubs/android/test/api",
240 dest: "removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000241 tag: ".removed-api.txt",
242 },
243 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000244 targets: ["sdk"],
245 dir: "apistubs/android/test/api",
246 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000247 tag: ".api.txt",
248 },
249 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000250 targets: ["sdk"],
251 dir: "apistubs/android/test/api",
252 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000253 tag: ".removed-api.txt",
254 },
255 ],
256 },
257 },
258 },
Jihoon Kang866b9b7a2023-09-20 22:28:05 +0000259 api_surface: "test",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900260}
261
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000262non_updatable_exportable_droidstubs {
Anton Hansson76d3db42020-04-09 14:16:37 +0100263 name: "module-lib-api-stubs-docs-non-updatable",
Anton Hansson9dce8322022-01-24 14:14:33 +0000264 defaults: [
265 "android-non-updatable-stubs-defaults",
266 "module-classpath-stubs-defaults",
267 ],
Anton Hansson84a0e712023-10-23 09:17:45 +0000268 flags: priv_apps_in_stubs + module_libs,
Paul Duffina2c4cd72024-06-18 18:49:48 +0100269 // Use full Android API not just the non-updatable API as the latter is incomplete
270 // and can result in incorrect behavior.
271 previous_api: ":android.api.combined.module-lib.latest",
Anton Hansson76d3db42020-04-09 14:16:37 +0100272 check_api: {
273 current: {
Anton Hanssonb7cda922023-03-03 15:38:28 +0000274 api_file: ":non-updatable-module-lib-current.txt",
275 removed_api_file: ":non-updatable-module-lib-removed.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +0100276 },
Anton Hanssonc3ef1f562020-10-07 14:55:36 +0100277 last_released: {
Paul Duffinf75e9102024-05-20 16:20:39 +0100278 api_file: ":android-non-updatable.api.combined.module-lib.latest",
279 removed_api_file: ":android-non-updatable-removed.api.combined.module-lib.latest",
Junyu Lai2dbb1772022-01-12 17:38:02 +0000280 baseline_file: ":android-non-updatable-incompatibilities.api.module-lib.latest",
Anton Hanssonc3ef1f562020-10-07 14:55:36 +0100281 },
Anton Hansson76d3db42020-04-09 14:16:37 +0100282 api_lint: {
283 enabled: true,
Paul Duffin98bc0112024-05-17 14:21:44 +0100284 new_since: ":android.api.combined.module-lib.latest",
Anton Hanssonb7cda922023-03-03 15:38:28 +0000285 baseline_file: ":non-updatable-module-lib-lint-baseline.txt",
Anton Hansson76d3db42020-04-09 14:16:37 +0100286 },
287 },
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000288 soong_config_variables: {
289 release_hidden_api_exportable_stubs: {
290 dists: [
291 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000292 targets: ["sdk"],
293 dir: "apistubs/android/module-lib/api",
294 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000295 tag: ".exportable.api.txt",
296 },
297 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000298 targets: ["sdk"],
299 dir: "apistubs/android/module-lib/api",
300 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000301 tag: ".exportable.removed-api.txt",
302 },
303 ],
304 conditions_default: {
305 dists: [
306 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000307 targets: ["sdk"],
308 dir: "apistubs/android/module-lib/api",
309 dest: "android-non-updatable.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000310 tag: ".api.txt",
311 },
312 {
Jihoon Kang00f480e2024-04-10 18:55:36 +0000313 targets: ["sdk"],
314 dir: "apistubs/android/module-lib/api",
315 dest: "android-non-updatable-removed.txt",
Jihoon Kang2d295ae2024-03-21 23:57:14 +0000316 tag: ".removed-api.txt",
317 },
318 ],
319 },
320 },
321 },
Jihoon Kang866b9b7a2023-09-20 22:28:05 +0000322 api_surface: "module-lib",
Anton Hansson76d3db42020-04-09 14:16:37 +0100323}
Anton Hansson81969c22020-02-03 20:45:56 +0000324
Jiyong Parke3095162019-12-20 15:30:28 +0900325/////////////////////////////////////////////////////////////////////
Jiyong Park7fb4b182019-12-20 14:35:43 +0900326// android_*_stubs_current modules are the stubs libraries compiled
Anton Hansson2feb3f12020-11-13 11:44:32 +0000327// from stub sources
Jiyong Park7fb4b182019-12-20 14:35:43 +0900328/////////////////////////////////////////////////////////////////////
329
330java_defaults {
Anton Hanssonc43a66b2022-03-03 15:14:04 +0000331 name: "android.jar_defaults",
332 sdk_version: "none",
333 system_modules: "none",
334 java_version: "1.8",
335 compile_dex: true,
Anton Hanssonc43a66b2022-03-03 15:14:04 +0000336 visibility: ["//visibility:public"],
Jihoon Kanga7073b52024-02-12 23:18:52 +0000337 is_stubs_module: true,
Anton Hanssonc43a66b2022-03-03 15:14:04 +0000338}
339
340java_defaults {
Jihoon Kang491c7082023-06-15 18:37:01 +0000341 name: "android-non-updatable_defaults",
Anton Hanssonfbd32f32020-04-09 14:16:37 +0100342 sdk_version: "none",
Jiyong Park7fb4b182019-12-20 14:35:43 +0900343 system_modules: "none",
344 java_version: "1.8",
345 compile_dex: true,
Jihoon Kanga7073b52024-02-12 23:18:52 +0000346 is_stubs_module: true,
Jihoon Kang491c7082023-06-15 18:37:01 +0000347}
348
349java_defaults {
350 name: "android-non-updatable_from_source_defaults",
351 libs: ["stub-annotations"],
352 static_libs: ["framework-res-package-jar"], // Export package of framework-res
Jihoon Kang059b9492023-12-29 00:40:34 +0000353}
354
355java_defaults {
356 name: "android-non-updatable_exportable_from_source_defaults",
Anton Hanssona4108912021-04-09 13:40:11 +0100357 dist: {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000358 targets: ["sdk"],
Anton Hanssona4108912021-04-09 13:40:11 +0100359 tag: ".jar",
360 dest: "android-non-updatable.jar",
Anton Hansson240ee482021-04-14 12:52:00 +0100361 },
Jiyong Park7fb4b182019-12-20 14:35:43 +0900362}
363
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100364java_library {
Anton Hanssona4748cd2021-04-09 10:16:19 +0100365 name: "android-non-updatable.stubs",
Jihoon Kang491c7082023-06-15 18:37:01 +0000366 defaults: ["android-non-updatable_defaults"],
Jihoon Kang319ffa72024-09-30 18:32:30 +0000367 static_libs: select(product_variable("build_from_text_stub"), {
368 true: [
369 "android-non-updatable.stubs.from-text",
370 ],
371 default: [
372 "android-non-updatable.stubs.from-source",
373 ],
374 }),
Jihoon Kang491c7082023-06-15 18:37:01 +0000375}
376
377java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000378 name: "android-non-updatable.stubs.exportable",
379 defaults: ["android-non-updatable_defaults"],
380 static_libs: [
381 "android-non-updatable.stubs.exportable.from-source",
382 ],
383}
384
385java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000386 name: "android-non-updatable.stubs.system",
387 defaults: ["android-non-updatable_defaults"],
Jihoon Kang319ffa72024-09-30 18:32:30 +0000388 static_libs: select(product_variable("build_from_text_stub"), {
389 true: [
390 "android-non-updatable.stubs.system.from-text",
391 ],
392 default: [
393 "android-non-updatable.stubs.system.from-source",
394 ],
395 }),
Jihoon Kang491c7082023-06-15 18:37:01 +0000396}
397
398java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000399 name: "android-non-updatable.stubs.exportable.system",
400 defaults: ["android-non-updatable_defaults"],
401 static_libs: [
402 "android-non-updatable.stubs.exportable.system.from-source",
403 ],
404}
405
406java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000407 name: "android-non-updatable.stubs.module_lib",
408 defaults: ["android-non-updatable_defaults"],
Jihoon Kang319ffa72024-09-30 18:32:30 +0000409 static_libs: select(product_variable("build_from_text_stub"), {
410 true: [
411 "android-non-updatable.stubs.module_lib.from-text",
412 ],
413 default: [
414 "android-non-updatable.stubs.module_lib.from-source",
415 ],
416 }),
Jihoon Kang491c7082023-06-15 18:37:01 +0000417}
418
419java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000420 name: "android-non-updatable.stubs.exportable.module_lib",
421 defaults: ["android-non-updatable_defaults"],
422 static_libs: [
423 "android-non-updatable.stubs.exportable.module_lib.from-source",
424 ],
425}
426
427java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000428 name: "android-non-updatable.stubs.test",
429 defaults: ["android-non-updatable_defaults"],
Jihoon Kang319ffa72024-09-30 18:32:30 +0000430 static_libs: select(product_variable("build_from_text_stub"), {
431 true: [
432 "android-non-updatable.stubs.test.from-text",
433 ],
434 default: [
435 "android-non-updatable.stubs.test.from-source",
436 ],
437 }),
Jihoon Kang491c7082023-06-15 18:37:01 +0000438}
439
440java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000441 name: "android-non-updatable.stubs.exportable.test",
442 defaults: ["android-non-updatable_defaults"],
443 static_libs: [
444 "android-non-updatable.stubs.exportable.test.from-source",
445 ],
446}
447
448java_library {
Jihoon Kang341e942c2024-09-18 18:50:11 +0000449 name: "android-non-updatable.stubs.system_server",
450 defaults: ["android-non-updatable_defaults"],
Jihoon Kang319ffa72024-09-30 18:32:30 +0000451 static_libs: select(product_variable("build_from_text_stub"), {
452 true: [
453 "android-non-updatable.stubs.system_server.from-text",
454 ],
455 default: [
456 "android-non-updatable.stubs.system_server.from-source",
457 ],
458 }),
Jihoon Kang341e942c2024-09-18 18:50:11 +0000459}
460
461java_library {
462 name: "android-non-updatable.stubs.exportable.system_server",
463 defaults: ["android-non-updatable_defaults"],
464 static_libs: [
465 "android-non-updatable.stubs.exportable.system_server.from-source",
466 ],
467}
468
469java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000470 name: "android-non-updatable.stubs.from-source",
471 defaults: [
472 "android-non-updatable_defaults",
473 "android-non-updatable_from_source_defaults",
474 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100475 srcs: [":api-stubs-docs-non-updatable"],
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000476 libs: ["all-modules-public-stubs"],
Jihoon Kang059b9492023-12-29 00:40:34 +0000477}
478
479java_library {
480 name: "android-non-updatable.stubs.exportable.from-source",
481 defaults: [
482 "android-non-updatable_defaults",
483 "android-non-updatable_from_source_defaults",
484 "android-non-updatable_exportable_from_source_defaults",
485 ],
486 srcs: [":api-stubs-docs-non-updatable{.exportable}"],
487 libs: ["all-modules-public-stubs"],
Anton Hanssona4108912021-04-09 13:40:11 +0100488 dist: {
489 dir: "apistubs/android/public",
490 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100491}
492
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100493java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000494 name: "android-non-updatable.stubs.system.from-source",
495 defaults: [
496 "android-non-updatable_defaults",
497 "android-non-updatable_from_source_defaults",
498 ],
Anton Hansson240ee482021-04-14 12:52:00 +0100499 srcs: [":system-api-stubs-docs-non-updatable"],
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000500 libs: ["all-modules-system-stubs"],
Jihoon Kang059b9492023-12-29 00:40:34 +0000501}
502
503java_library {
504 name: "android-non-updatable.stubs.exportable.system.from-source",
505 defaults: [
506 "android-non-updatable_defaults",
507 "android-non-updatable_from_source_defaults",
508 "android-non-updatable_exportable_from_source_defaults",
509 ],
510 srcs: [":system-api-stubs-docs-non-updatable{.exportable}"],
511 libs: ["all-modules-system-stubs"],
Anton Hanssona4108912021-04-09 13:40:11 +0100512 dist: {
513 dir: "apistubs/android/system",
514 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100515}
516
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100517java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000518 name: "android-non-updatable.stubs.module_lib.from-source",
519 defaults: [
520 "android-non-updatable_defaults",
521 "android-non-updatable_from_source_defaults",
522 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100523 srcs: [":module-lib-api-stubs-docs-non-updatable"],
Anton Hansson648b0db2023-11-06 19:24:42 +0000524 libs: non_updatable_api_deps_on_modules,
Jihoon Kang059b9492023-12-29 00:40:34 +0000525}
526
527java_library {
528 name: "android-non-updatable.stubs.exportable.module_lib.from-source",
529 defaults: [
530 "android-non-updatable_defaults",
531 "android-non-updatable_from_source_defaults",
532 "android-non-updatable_exportable_from_source_defaults",
533 ],
534 srcs: [":module-lib-api-stubs-docs-non-updatable{.exportable}"],
535 libs: non_updatable_api_deps_on_modules,
Anton Hanssona4108912021-04-09 13:40:11 +0100536 dist: {
537 dir: "apistubs/android/module-lib",
538 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100539}
540
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100541java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000542 name: "android-non-updatable.stubs.test.from-source",
543 defaults: [
544 "android-non-updatable_defaults",
545 "android-non-updatable_from_source_defaults",
546 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100547 srcs: [":test-api-stubs-docs-non-updatable"],
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000548 libs: ["all-modules-system-stubs"],
Jihoon Kang059b9492023-12-29 00:40:34 +0000549}
550
551java_library {
552 name: "android-non-updatable.stubs.exportable.test.from-source",
553 defaults: [
554 "android-non-updatable_defaults",
555 "android-non-updatable_from_source_defaults",
556 "android-non-updatable_exportable_from_source_defaults",
557 ],
558 srcs: [":test-api-stubs-docs-non-updatable{.exportable}"],
559 libs: ["all-modules-system-stubs"],
Anton Hanssona4108912021-04-09 13:40:11 +0100560 dist: {
561 dir: "apistubs/android/test",
562 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100563}
564
Jihoon Kang341e942c2024-09-18 18:50:11 +0000565java_library {
566 name: "android-non-updatable.stubs.system_server.from-source",
567 defaults: [
568 "android-non-updatable_defaults",
569 "android-non-updatable_from_source_defaults",
570 ],
571 srcs: [":services-non-updatable-stubs"],
572 libs: non_updatable_api_deps_on_modules,
573}
574
575java_library {
576 name: "android-non-updatable.stubs.exportable.system_server.from-source",
577 defaults: [
578 "android-non-updatable_defaults",
579 "android-non-updatable_from_source_defaults",
580 "android-non-updatable_exportable_from_source_defaults",
581 ],
582 srcs: [":services-non-updatable-stubs{.exportable}"],
583 libs: non_updatable_api_deps_on_modules,
584 dist: {
585 dir: "apistubs/android/system-server",
586 },
587}
588
Anton Hanssona4748cd2021-04-09 10:16:19 +0100589java_defaults {
Jihoon Kang491c7082023-06-15 18:37:01 +0000590 name: "android-non-updatable_from_text_defaults",
Jihoon Kangdc16c222024-08-06 00:15:25 +0000591 defaults: ["android-non-updatable-stubs-libs-defaults"],
Jihoon Kang0c101db2023-03-14 07:03:46 +0000592 static_libs: ["framework-res-package-jar"],
593 libs: ["stub-annotations"],
Jihoon Kangdc16c222024-08-06 00:15:25 +0000594 sdk_version: "none",
595 system_modules: "none",
596 previous_api: ":android.api.public.latest",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000597}
598
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000599java_defaults {
600 name: "android-non-updatable_everything_from_text_defaults",
601 defaults: [
602 "android-non-updatable_from_text_defaults",
603 ],
604 stubs_type: "everything",
605}
606
Jihoon Kang0c101db2023-03-14 07:03:46 +0000607java_api_library {
608 name: "android-non-updatable.stubs.from-text",
609 api_surface: "public",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000610 api_contributions: [
611 "api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000612 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000613 defaults: ["android-non-updatable_everything_from_text_defaults"],
Paul Duffina2c4cd72024-06-18 18:49:48 +0100614 // Use full Android API not just the non-updatable API as the latter is incomplete
615 // and can result in incorrect behavior.
616 previous_api: ":android.api.combined.public.latest",
Jihoon Kangdc16c222024-08-06 00:15:25 +0000617 libs: ["all-modules-public-stubs"],
Jihoon Kang0c101db2023-03-14 07:03:46 +0000618}
619
620java_api_library {
621 name: "android-non-updatable.stubs.system.from-text",
622 api_surface: "system",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000623 api_contributions: [
624 "api-stubs-docs-non-updatable.api.contribution",
625 "system-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000626 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000627 defaults: ["android-non-updatable_everything_from_text_defaults"],
Paul Duffina2c4cd72024-06-18 18:49:48 +0100628 // Use full Android API not just the non-updatable API as the latter is incomplete
629 // and can result in incorrect behavior.
630 previous_api: ":android.api.combined.system.latest",
Jihoon Kangdc16c222024-08-06 00:15:25 +0000631 libs: ["all-modules-system-stubs"],
Jihoon Kang0c101db2023-03-14 07:03:46 +0000632}
633
634java_api_library {
635 name: "android-non-updatable.stubs.test.from-text",
636 api_surface: "test",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000637 api_contributions: [
638 "api-stubs-docs-non-updatable.api.contribution",
639 "system-api-stubs-docs-non-updatable.api.contribution",
640 "test-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000641 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000642 defaults: ["android-non-updatable_everything_from_text_defaults"],
Paul Duffina2c4cd72024-06-18 18:49:48 +0100643 // Use full Android API not just the non-updatable API as the latter is incomplete
644 // and can result in incorrect behavior.
645 previous_api: ":android.api.combined.test.latest",
Jihoon Kangdc16c222024-08-06 00:15:25 +0000646 libs: ["all-modules-system-stubs"],
Jihoon Kang0c101db2023-03-14 07:03:46 +0000647}
648
649java_api_library {
650 name: "android-non-updatable.stubs.module_lib.from-text",
651 api_surface: "module_lib",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000652 api_contributions: [
653 "api-stubs-docs-non-updatable.api.contribution",
654 "system-api-stubs-docs-non-updatable.api.contribution",
655 "module-lib-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000656 ],
Jihoon Kangdc16c222024-08-06 00:15:25 +0000657 defaults: [
658 "module-classpath-java-defaults",
659 "android-non-updatable_everything_from_text_defaults",
660 ],
Paul Duffina2c4cd72024-06-18 18:49:48 +0100661 // Use full Android API not just the non-updatable API as the latter is incomplete
662 // and can result in incorrect behavior.
663 previous_api: ":android.api.combined.module-lib.latest",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000664}
665
Jihoon Kang4683b142023-10-05 23:42:51 +0000666// This module generates a stub jar that is a union of the test and module lib
667// non-updatable api contributions. Modules should not depend on the stub jar
668// generated from this module, as this module is strictly used for hiddenapi only.
669java_api_library {
670 name: "android-non-updatable.stubs.test_module_lib",
671 api_surface: "module_lib",
672 api_contributions: [
673 "api-stubs-docs-non-updatable.api.contribution",
674 "system-api-stubs-docs-non-updatable.api.contribution",
675 "test-api-stubs-docs-non-updatable.api.contribution",
676 "module-lib-api-stubs-docs-non-updatable.api.contribution",
677 ],
Jihoon Kangdc16c222024-08-06 00:15:25 +0000678 defaults: [
679 "module-classpath-java-defaults",
680 "android-non-updatable_everything_from_text_defaults",
681 ],
Jihoon Kang4683b142023-10-05 23:42:51 +0000682
Paul Duffina2c4cd72024-06-18 18:49:48 +0100683 // No need to specify previous_api as this is not used for compiling against.
Jihoon Kang4683b142023-10-05 23:42:51 +0000684 // This module is only used for hiddenapi, and other modules should not
685 // depend on this module.
686 visibility: ["//visibility:private"],
Jihoon Kangdc16c222024-08-06 00:15:25 +0000687 libs: ["all-modules-system-stubs"],
Jihoon Kang4683b142023-10-05 23:42:51 +0000688}
689
Jihoon Kang341e942c2024-09-18 18:50:11 +0000690java_api_library {
691 name: "android-non-updatable.stubs.system_server.from-text",
692 api_surface: "system_server",
693 api_contributions: [
694 "api-stubs-docs-non-updatable.api.contribution",
695 "system-api-stubs-docs-non-updatable.api.contribution",
696 "module-lib-api-stubs-docs-non-updatable.api.contribution",
697 "services-non-updatable-stubs.api.contribution",
698 ],
699 defaults: [
700 "module-classpath-java-defaults",
701 "android-non-updatable_everything_from_text_defaults",
702 ],
703
704 // Use full Android API not just the non-updatable API as the latter is incomplete
705 // and can result in incorrect behavior.
706 previous_api: ":android.api.combined.system-server.latest",
707}
708
Jihoon Kang0c101db2023-03-14 07:03:46 +0000709java_defaults {
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000710 name: "android_stubs_dists_default",
711 dist: {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000712 targets: ["sdk"],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000713 tag: ".jar",
714 dest: "android.jar",
715 },
Anton Hansson86925682021-04-14 14:54:43 +0100716 defaults_visibility: ["//frameworks/base/services"],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000717}
718
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100719java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000720 name: "android_stubs_current",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000721 static_libs: [
722 "all-modules-public-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100723 "android-non-updatable.stubs",
Anton Hanssonbf63f942020-05-20 12:06:23 +0100724 "private-stub-annotations-jar",
Anton Hansson76d3db42020-04-09 14:16:37 +0100725 ],
Anton Hansson65057af2021-04-14 18:52:08 +0100726 defaults: ["android.jar_defaults"],
Jiyong Park7fb4b182019-12-20 14:35:43 +0900727}
728
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100729java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000730 name: "android_stubs_current_exportable",
Jihoon Kang059b9492023-12-29 00:40:34 +0000731 static_libs: [
732 "all-modules-public-stubs-exportable",
733 "android-non-updatable.stubs.exportable",
734 "private-stub-annotations-jar",
735 ],
736 defaults: ["android.jar_defaults"],
737}
738
739java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000740 name: "android_system_stubs_current",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000741 static_libs: [
742 "all-modules-system-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100743 "android-non-updatable.stubs.system",
Anton Hanssonbf63f942020-05-20 12:06:23 +0100744 "private-stub-annotations-jar",
Anton Hansson76d3db42020-04-09 14:16:37 +0100745 ],
Anton Hanssonc3002e52020-11-18 18:23:55 +0000746 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100747 "android.jar_defaults",
Jihoon Kang059b9492023-12-29 00:40:34 +0000748 ],
749 visibility: ["//frameworks/base/services"],
750}
751
752java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000753 name: "android_system_stubs_current_exportable",
Jihoon Kang059b9492023-12-29 00:40:34 +0000754 static_libs: [
755 "all-modules-system-stubs-exportable",
756 "android-non-updatable.stubs.exportable.system",
757 "private-stub-annotations-jar",
758 ],
759 defaults: [
760 "android.jar_defaults",
Anton Hanssonc3002e52020-11-18 18:23:55 +0000761 "android_stubs_dists_default",
762 ],
763 dist: {
764 dir: "apistubs/android/system",
765 },
766 dists: [
767 {
768 // Legacy dist path
Anton Hanssondd8ef672022-01-04 08:53:19 +0000769 targets: ["sdk"],
Anton Hanssonc3002e52020-11-18 18:23:55 +0000770 tag: ".jar",
771 dest: "android_system.jar",
772 },
773 ],
Anton Hansson76d3db42020-04-09 14:16:37 +0100774}
775
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100776java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000777 name: "android_test_stubs_current",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000778 static_libs: [
Nikita Ioffe5593fbb2022-12-01 14:52:34 +0000779 // Updatable modules do not have test APIs, but we want to include their SystemApis, like we
780 // include the SystemApi of framework-non-updatable-sources.
781 "all-updatable-modules-system-stubs",
782 // Non-updatable modules on the other hand can have test APIs, so include their test-stubs.
783 "all-non-updatable-modules-test-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100784 "android-non-updatable.stubs.test",
Anton Hansson7ce31c12020-10-15 18:38:49 +0100785 "private-stub-annotations-jar",
786 ],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000787 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100788 "android.jar_defaults",
Jihoon Kang059b9492023-12-29 00:40:34 +0000789 ],
790 visibility: ["//frameworks/base/services"],
791}
792
793java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000794 name: "android_test_stubs_current_exportable",
Jihoon Kang059b9492023-12-29 00:40:34 +0000795 static_libs: [
796 // Updatable modules do not have test APIs, but we want to include their SystemApis, like we
797 // include the SystemApi of framework-non-updatable-sources.
798 "all-updatable-modules-system-stubs-exportable",
799 // Non-updatable modules on the other hand can have test APIs, so include their test-stubs.
800 "all-non-updatable-modules-test-stubs-exportable",
801 "android-non-updatable.stubs.exportable.test",
802 "private-stub-annotations-jar",
803 ],
804 defaults: [
805 "android.jar_defaults",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000806 "android_stubs_dists_default",
807 ],
808 dist: {
809 dir: "apistubs/android/test",
810 },
Jiyong Parke3095162019-12-20 15:30:28 +0900811}
812
Jihoon Kang059b9492023-12-29 00:40:34 +0000813// This module does not need to be copied to dist
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100814java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000815 name: "android_test_frameworks_core_stubs_current",
Mark Whitee35b1382023-08-12 01:31:26 +0000816 static_libs: [
817 "all-updatable-modules-system-stubs",
818 "android-non-updatable.stubs.test",
Mark Whitee35b1382023-08-12 01:31:26 +0000819 ],
820 defaults: [
821 "android.jar_defaults",
Mark Whitee35b1382023-08-12 01:31:26 +0000822 ],
Jihoon Kang059b9492023-12-29 00:40:34 +0000823 visibility: ["//frameworks/base/services"],
Mark Whitee35b1382023-08-12 01:31:26 +0000824}
825
826java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000827 name: "android_module_lib_stubs_current",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000828 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100829 "android.jar_defaults",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000830 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100831 static_libs: [
832 "android-non-updatable.stubs.module_lib",
Victor Chang6b107a92021-06-17 23:49:42 +0100833 "art.module.public.api.stubs.module_lib",
Giulio Fiscella68a04112021-11-30 16:32:44 +0000834 "i18n.module.public.api.stubs",
Anton Hanssonb7d532e2021-02-05 11:40:25 +0000835 ],
Jihoon Kang059b9492023-12-29 00:40:34 +0000836 visibility: ["//frameworks/base/services"],
837}
838
839java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000840 name: "android_module_lib_stubs_current_exportable",
Jihoon Kang059b9492023-12-29 00:40:34 +0000841 defaults: [
842 "android.jar_defaults",
843 "android_stubs_dists_default",
844 ],
845 static_libs: [
846 "android-non-updatable.stubs.exportable.module_lib",
847 "art.module.public.api.stubs.exportable.module_lib",
848 "i18n.module.public.api.stubs.exportable",
849 ],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000850 dist: {
851 dir: "apistubs/android/module-lib",
852 },
Jiyong Park7fb4b182019-12-20 14:35:43 +0900853}
854
Andrei Oneafaa271a2021-03-17 13:32:51 +0000855java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000856 name: "android_system_server_stubs_current",
Anton Hansson21fb1082023-03-03 16:22:42 +0000857 defaults: [
858 "android.jar_defaults",
Anton Hansson21fb1082023-03-03 16:22:42 +0000859 ],
Andrei Oneafaa271a2021-03-17 13:32:51 +0000860 installable: false,
861 static_libs: [
Jihoon Kang341e942c2024-09-18 18:50:11 +0000862 "android-non-updatable.stubs.system_server",
Jihoon Kangdc16c222024-08-06 00:15:25 +0000863 "android_module_lib_stubs_current",
Andrei Oneafaa271a2021-03-17 13:32:51 +0000864 ],
Jihoon Kang059b9492023-12-29 00:40:34 +0000865 visibility: ["//frameworks/base/services"],
866}
867
868java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000869 name: "android_system_server_stubs_current_exportable",
Jihoon Kang059b9492023-12-29 00:40:34 +0000870 defaults: [
871 "android.jar_defaults",
872 "android_stubs_dists_default",
873 ],
Jihoon Kang059b9492023-12-29 00:40:34 +0000874 installable: false,
875 static_libs: [
Jihoon Kang341e942c2024-09-18 18:50:11 +0000876 "android-non-updatable.stubs.exportable.system_server",
Jihoon Kangdc16c222024-08-06 00:15:25 +0000877 "android_module_lib_stubs_current_exportable",
Jihoon Kang059b9492023-12-29 00:40:34 +0000878 ],
Andrei Oneafaa271a2021-03-17 13:32:51 +0000879 dist: {
880 dir: "apistubs/android/system-server",
881 },
882}
883
Colin Crosscf87a572022-10-20 14:06:53 -0700884java_library {
885 name: "android_stubs_private_jar",
886 defaults: ["android.jar_defaults"],
887 visibility: [
888 "//visibility:override",
889 "//visibility:private",
890 ],
891 static_libs: [
892 "stable.core.platform.api.stubs",
893 "core-lambda-stubs-for-system-modules",
894 "core-generated-annotation-stubs",
895 "framework",
896 "ext",
897 "framework-res-package-jar",
898 // The order of this matters, it has to be last to provide a
899 // package-private androidx.annotation.RecentlyNonNull without
900 // overriding the public android.annotation.Nullable in framework.jar
901 // with its own package-private android.annotation.Nullable.
902 "private-stub-annotations-jar",
903 ],
Jihoon Kanga7073b52024-02-12 23:18:52 +0000904 is_stubs_module: true,
Colin Crosscf87a572022-10-20 14:06:53 -0700905}
906
907java_genrule {
908 name: "android_stubs_private_hjar",
Colin Crosscf87a572022-10-20 14:06:53 -0700909 srcs: [":android_stubs_private_jar{.hjar}"],
910 out: ["android_stubs_private.jar"],
911 cmd: "cp $(in) $(out)",
912}
913
914java_library {
915 name: "android_stubs_private",
916 defaults: ["android_stubs_dists_default"],
Colin Crosscf87a572022-10-20 14:06:53 -0700917 sdk_version: "none",
918 system_modules: "none",
919 static_libs: ["android_stubs_private_hjar"],
920 dist: {
Peter Kalauskascf9acc62024-02-12 21:13:03 +0000921 // Add to private_api_stubs dist target for easier packaging by scripts. This module is
922 // useful for creating a platform SDK, which can be packaged in ANDROID_HOME and used from
923 // Gradle, allowing for development of platform apps that make use of hidden APIs.
924 targets: ["private_api_stubs"],
Colin Crosscf87a572022-10-20 14:06:53 -0700925 dir: "apistubs/android/private",
926 },
927}
928
929java_genrule {
930 name: "android_stubs_private_framework_aidl",
Colin Crosscf87a572022-10-20 14:06:53 -0700931 tools: ["sdkparcelables"],
932 srcs: [":android_stubs_private"],
933 out: ["framework.aidl"],
934 cmd: "rm -f $(genDir)/framework.aidl.merged && " +
935 "for i in $(in); do " +
936 " rm -f $(genDir)/framework.aidl.tmp && " +
Steven Moreland07b69ec2024-08-13 18:28:56 +0000937 " $(location sdkparcelables) $$i $(genDir)/framework.aidl.tmp --guarantee_stable && " +
Colin Crosscf87a572022-10-20 14:06:53 -0700938 " cat $(genDir)/framework.aidl.tmp >> $(genDir)/framework.aidl.merged; " +
939 "done && " +
940 "sort -u $(genDir)/framework.aidl.merged > $(out)",
941 dist: {
Peter Kalauskascf9acc62024-02-12 21:13:03 +0000942 targets: [
943 "sdk",
944 // Add to private_api_stubs dist target for easier packaging by scripts.
945 // See explanation in the "android_stubs_private" module above.
946 "private_api_stubs",
947 ],
Colin Crosscf87a572022-10-20 14:06:53 -0700948 dir: "apistubs/android/private",
949 },
950}
951
Anton Hansson36bc27c2021-09-14 15:45:13 +0100952////////////////////////////////////////////////////////////////////////
953// api-versions.xml generation, for public and system. This API database
954// also contains the android.test.* APIs.
955////////////////////////////////////////////////////////////////////////
956
957java_library {
958 name: "android_stubs_current_with_test_libs",
959 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +0000960 "android_stubs_current_exportable",
Anton Hansson36bc27c2021-09-14 15:45:13 +0100961 "android.test.base.stubs",
962 "android.test.mock.stubs",
963 "android.test.runner.stubs",
964 ],
965 defaults: ["android.jar_defaults"],
966 visibility: [
967 "//visibility:override",
968 "//visibility:private",
969 ],
970}
971
972java_library {
973 name: "android_system_stubs_current_with_test_libs",
974 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +0000975 "android_system_stubs_current_exportable",
Anton Hansson36bc27c2021-09-14 15:45:13 +0100976 "android.test.base.stubs.system",
977 "android.test.mock.stubs.system",
978 "android.test.runner.stubs.system",
979 ],
980 defaults: ["android.jar_defaults"],
981 visibility: [
982 "//visibility:override",
983 "//visibility:private",
984 ],
985}
986
Cole Faustdcda3702022-10-04 14:46:35 -0700987java_library {
988 name: "android_module_stubs_current_with_test_libs",
989 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +0000990 "android_module_lib_stubs_current_exportable",
Cole Faustdcda3702022-10-04 14:46:35 -0700991 "android.test.base.stubs",
992 "android.test.mock.stubs",
993 "android.test.runner.stubs",
994 ],
995 defaults: ["android.jar_defaults"],
996 visibility: [
997 "//visibility:override",
998 "//visibility:private",
999 ],
1000}
1001
1002java_library {
1003 name: "android_system_server_stubs_current_with_test_libs",
1004 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +00001005 "android_system_server_stubs_current_exportable",
Cole Faustdcda3702022-10-04 14:46:35 -07001006 "android.test.base.stubs.system",
1007 "android.test.mock.stubs.system",
1008 "android.test.runner.stubs.system",
1009 ],
1010 defaults: ["android.jar_defaults"],
1011 visibility: [
1012 "//visibility:override",
1013 "//visibility:private",
1014 ],
1015}
1016
Paul Duffin0834ea72024-05-02 12:09:51 +01001017// Defaults for `droidstubs` modules that generate `api-versions.xml` files for
1018// the various API surfaces.
1019stubs_defaults {
1020 name: "api_versions_base_defaults",
1021 defaults_visibility: ["//visibility:private"],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001022 generate_stubs: false,
1023 api_levels_annotations_enabled: true,
1024 api_levels_annotations_dirs: [
1025 "sdk-dir",
1026 "api-versions-jars-dir",
1027 ],
Paul Duffin0834ea72024-05-02 12:09:51 +01001028}
1029
1030// Defaults for `droidstubs` modules that generate complete `api-versions.xml`
1031// files, i.e. include SDK extensions.
1032stubs_defaults {
1033 name: "api_versions_complete_defaults",
1034 defaults_visibility: ["//visibility:private"],
1035 defaults: ["api_versions_base_defaults"],
MÃ¥rten Kongstad54845332022-09-06 15:50:37 +02001036 extensions_info_file: ":sdk-extensions-info",
Paul Duffin0834ea72024-05-02 12:09:51 +01001037}
1038
1039// Produces an `api-versions.xml` file that includes up-to-date information
1040// about all the public APIs, both updatable and non-updatable and historic
1041// information about all previous dessert and SDK extension releases.
1042droidstubs {
1043 name: "api_versions_public",
1044 defaults: ["api_versions_complete_defaults"],
1045 srcs: [":android_stubs_current_with_test_libs{.jar}"],
1046 api_levels_sdk_type: "public",
Anton Hanssonca6e67a2023-03-03 17:55:09 +00001047 visibility: ["//frameworks/base"],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001048}
1049
Paul Duffin0834ea72024-05-02 12:09:51 +01001050// Produces an `api-versions.xml` file that includes up-to-date information
1051// about all the system APIs, both updatable and non-updatable and historic
1052// information about all previous dessert and SDK extension releases.
Anton Hansson36bc27c2021-09-14 15:45:13 +01001053droidstubs {
1054 name: "api_versions_system",
Paul Duffin0834ea72024-05-02 12:09:51 +01001055 defaults: ["api_versions_complete_defaults"],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001056 srcs: [":android_system_stubs_current_with_test_libs{.jar}"],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001057 api_levels_sdk_type: "system",
Paul Duffin75f63602024-01-05 18:15:59 +00001058 dists: [
1059 // Make the api-versions.xml file for the system API available in the
1060 // sdk build target.
1061 {
1062 targets: ["sdk"],
1063 dest: "api-versions_system.xml",
1064 tag: ".api_versions.xml",
1065 },
1066 ],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001067}
1068
Paul Duffin0834ea72024-05-02 12:09:51 +01001069// Defaults for `droidstubs` modules that generate `api-versions.xml` files that
1070// only include non-updatable code, i.e. for platform API only, not SDK
1071// extensions.
1072stubs_defaults {
1073 name: "api_versions_non_updatable_defaults",
1074 defaults_visibility: ["//visibility:private"],
1075 defaults: ["api_versions_base_defaults"],
Cole Faustbf4ce752023-02-08 12:46:06 -08001076 // this only has the non-updatable portions of the module lib sdk,
1077 // which can reference classes from updatable apexes, so remove references to them
1078 // from this api_versions file.
1079 flags: ["--remove-missing-class-references-in-api-levels"],
Cole Faust1deced12023-02-15 13:24:18 -08001080 // extensions_info_file is purposefully omitted, because this module should just be
1081 // the non-updatable portions of the sdk, and extension sdks are updatable.
Cole Faustdcda3702022-10-04 14:46:35 -07001082}
1083
Paul Duffin0834ea72024-05-02 12:09:51 +01001084// Produces an `api-versions.xml` file that includes up-to-date information
1085// about only the non-updatable module-lib APIs and historic information about
1086// all previous dessert and SDK extension releases. That historic information
1087// may include information about APIs that were previously not-updatable which
1088// have since become updatable.
1089droidstubs {
1090 name: "api_versions_module_lib",
1091 defaults: ["api_versions_non_updatable_defaults"],
1092 srcs: [":android_module_stubs_current_with_test_libs{.jar}"],
1093 api_levels_sdk_type: "module-lib",
1094}
1095
Paul Duffinfb5e07d2024-05-02 14:51:41 +01001096// Create a single jar containing the whole module-lib API surface.
1097// This is needed because Metalava only consumes the first jar file it is given
1098// and ignores the rest.
1099java_library {
1100 name: "android_module_stubs_complete_current_with_test_libs",
1101 static_libs: [
1102 "android_module_stubs_current_with_test_libs",
1103 "framework-updatable-stubs-module_libs_api-exportable",
1104 ],
1105 defaults: ["android.jar_defaults"],
1106 visibility: [
1107 "//visibility:override",
1108 "//visibility:private",
1109 ],
1110}
1111
1112// Produces an `api-versions.xml` file that includes up-to-date information
1113// about all the module-lib APIs, both updatable and non-updatable and historic
1114// information about all previous dessert and SDK extension releases.
1115droidstubs {
1116 name: "api_versions_module_lib_complete",
1117 defaults: ["api_versions_complete_defaults"],
1118 srcs: [":android_module_stubs_complete_current_with_test_libs{.jar}"],
1119 api_levels_sdk_type: "module-lib",
1120}
1121
Paul Duffin0834ea72024-05-02 12:09:51 +01001122// Produces an `api-versions.xml` file that includes up-to-date information
1123// about only the non-updatable system-server APIs and historic information
1124// about all previous dessert and SDK extension releases. That historic
1125// information may include information about APIs that were previously
1126// not-updatable which have since become updatable.
Cole Faustdcda3702022-10-04 14:46:35 -07001127droidstubs {
1128 name: "api_versions_system_server",
Paul Duffin0834ea72024-05-02 12:09:51 +01001129 defaults: ["api_versions_non_updatable_defaults"],
Cole Faustdcda3702022-10-04 14:46:35 -07001130 srcs: [":android_system_server_stubs_current_with_test_libs{.jar}"],
Cole Faustdcda3702022-10-04 14:46:35 -07001131 api_levels_sdk_type: "system-server",
Cole Faustdcda3702022-10-04 14:46:35 -07001132}
1133
Paul Duffinfb5e07d2024-05-02 14:51:41 +01001134// Create a single jar containing the whole system-server API surface.
1135// This is needed because Metalava only consumes the first jar file it is given
1136// and ignores the rest.
1137java_library {
1138 name: "android_system_server_stubs_complete_current_with_test_libs",
1139 static_libs: [
1140 "android_system_server_stubs_current_with_test_libs",
1141 // system-server extends module-lib but libraries which only service-*
1142 // libraries provided system-server APIs, so include module-lib APIs for
1143 // the others, e.g. framework-* libraries.
1144 "framework-updatable-stubs-module_libs_api-exportable",
1145 "framework-updatable-stubs-system_server_api-exportable",
1146 ],
1147 defaults: ["android.jar_defaults"],
1148 visibility: [
1149 "//visibility:override",
1150 "//visibility:private",
1151 ],
1152}
1153
1154// Produces an `api-versions.xml` file that includes up-to-date information
1155// about all the system-server APIs, both updatable and non-updatable and
1156// historic information about all previous dessert and SDK extension releases.
1157droidstubs {
1158 name: "api_versions_system_server_complete",
1159 defaults: ["api_versions_complete_defaults"],
1160 srcs: [":android_system_server_stubs_complete_current_with_test_libs{.jar}"],
1161 api_levels_sdk_type: "system-server",
1162}
1163
Jiyong Park7fb4b182019-12-20 14:35:43 +09001164/////////////////////////////////////////////////////////////////////
1165// hwbinder.stubs provides APIs required for building HIDL Java
1166// libraries.
1167/////////////////////////////////////////////////////////////////////
1168
1169droidstubs {
1170 name: "hwbinder-stubs-docs",
Anton Hansson23f319f2023-03-03 16:04:02 +00001171 srcs: [":hwbinder-stubs-srcs"],
Colin Cross037d7fb2021-03-25 17:01:55 -07001172 libs: ["framework-annotations-lib"],
Jiyong Park7fb4b182019-12-20 14:35:43 +09001173 installable: false,
1174 sdk_version: "core_platform",
1175 annotations_enabled: true,
Anton Hansson48ee95e2020-05-02 17:49:26 +01001176 previous_api: ":android.api.public.latest",
Jiyong Park7fb4b182019-12-20 14:35:43 +09001177 merge_annotations_dirs: [
1178 "metalava-manual",
1179 ],
Anton Hansson84a0e712023-10-23 09:17:45 +00001180 flags: priv_apps,
Jiyong Park7fb4b182019-12-20 14:35:43 +09001181}
1182
Anton Hanssonbbdd64b2021-04-26 18:47:39 +01001183java_library {
Jiyong Park7fb4b182019-12-20 14:35:43 +09001184 name: "hwbinder.stubs",
1185 sdk_version: "core_current",
Colin Cross037d7fb2021-03-25 17:01:55 -07001186 libs: ["framework-annotations-lib"],
Jiyong Park7fb4b182019-12-20 14:35:43 +09001187 srcs: [
1188 ":hwbinder-stubs-docs",
1189 ],
Anton Hansson86925682021-04-14 14:54:43 +01001190 visibility: ["//visibility:public"],
Jihoon Kanga85551e2024-07-11 18:05:21 +00001191 is_stubs_module: true,
Jiyong Park7fb4b182019-12-20 14:35:43 +09001192}