blob: d1aa23c8ea5fce9f30fef8a544cd019426b8a6c1 [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"],
367 static_libs: [
368 "android-non-updatable.stubs.from-source",
369 ],
370 product_variables: {
371 build_from_text_stub: {
372 static_libs: [
373 "android-non-updatable.stubs.from-text",
374 ],
375 exclude_static_libs: [
376 "android-non-updatable.stubs.from-source",
377 ],
378 },
379 },
380}
381
382java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000383 name: "android-non-updatable.stubs.exportable",
384 defaults: ["android-non-updatable_defaults"],
385 static_libs: [
386 "android-non-updatable.stubs.exportable.from-source",
387 ],
388}
389
390java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000391 name: "android-non-updatable.stubs.system",
392 defaults: ["android-non-updatable_defaults"],
393 static_libs: [
394 "android-non-updatable.stubs.system.from-source",
395 ],
396 product_variables: {
397 build_from_text_stub: {
398 static_libs: [
399 "android-non-updatable.stubs.system.from-text",
400 ],
401 exclude_static_libs: [
402 "android-non-updatable.stubs.system.from-source",
403 ],
404 },
405 },
406}
407
408java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000409 name: "android-non-updatable.stubs.exportable.system",
410 defaults: ["android-non-updatable_defaults"],
411 static_libs: [
412 "android-non-updatable.stubs.exportable.system.from-source",
413 ],
414}
415
416java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000417 name: "android-non-updatable.stubs.module_lib",
418 defaults: ["android-non-updatable_defaults"],
419 static_libs: [
420 "android-non-updatable.stubs.module_lib.from-source",
421 ],
422 product_variables: {
423 build_from_text_stub: {
424 static_libs: [
425 "android-non-updatable.stubs.module_lib.from-text",
426 ],
427 exclude_static_libs: [
428 "android-non-updatable.stubs.module_lib.from-source",
429 ],
430 },
431 },
432}
433
434java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000435 name: "android-non-updatable.stubs.exportable.module_lib",
436 defaults: ["android-non-updatable_defaults"],
437 static_libs: [
438 "android-non-updatable.stubs.exportable.module_lib.from-source",
439 ],
440}
441
442java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000443 name: "android-non-updatable.stubs.test",
444 defaults: ["android-non-updatable_defaults"],
445 static_libs: [
446 "android-non-updatable.stubs.test.from-source",
447 ],
448 product_variables: {
449 build_from_text_stub: {
450 static_libs: [
451 "android-non-updatable.stubs.test.from-text",
452 ],
453 exclude_static_libs: [
454 "android-non-updatable.stubs.test.from-source",
455 ],
456 },
457 },
458}
459
460java_library {
Jihoon Kang059b9492023-12-29 00:40:34 +0000461 name: "android-non-updatable.stubs.exportable.test",
462 defaults: ["android-non-updatable_defaults"],
463 static_libs: [
464 "android-non-updatable.stubs.exportable.test.from-source",
465 ],
466}
467
468java_library {
Jihoon Kang341e942c2024-09-18 18:50:11 +0000469 name: "android-non-updatable.stubs.system_server",
470 defaults: ["android-non-updatable_defaults"],
471 static_libs: [
472 "android-non-updatable.stubs.system_server.from-source",
473 ],
474 product_variables: {
475 build_from_text_stub: {
476 static_libs: [
477 "android-non-updatable.stubs.system_server.from-text",
478 ],
479 exclude_static_libs: [
480 "android-non-updatable.stubs.system_server.from-source",
481 ],
482 },
483 },
484}
485
486java_library {
487 name: "android-non-updatable.stubs.exportable.system_server",
488 defaults: ["android-non-updatable_defaults"],
489 static_libs: [
490 "android-non-updatable.stubs.exportable.system_server.from-source",
491 ],
492}
493
494java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000495 name: "android-non-updatable.stubs.from-source",
496 defaults: [
497 "android-non-updatable_defaults",
498 "android-non-updatable_from_source_defaults",
499 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100500 srcs: [":api-stubs-docs-non-updatable"],
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000501 libs: ["all-modules-public-stubs"],
Jihoon Kang059b9492023-12-29 00:40:34 +0000502}
503
504java_library {
505 name: "android-non-updatable.stubs.exportable.from-source",
506 defaults: [
507 "android-non-updatable_defaults",
508 "android-non-updatable_from_source_defaults",
509 "android-non-updatable_exportable_from_source_defaults",
510 ],
511 srcs: [":api-stubs-docs-non-updatable{.exportable}"],
512 libs: ["all-modules-public-stubs"],
Anton Hanssona4108912021-04-09 13:40:11 +0100513 dist: {
514 dir: "apistubs/android/public",
515 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100516}
517
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100518java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000519 name: "android-non-updatable.stubs.system.from-source",
520 defaults: [
521 "android-non-updatable_defaults",
522 "android-non-updatable_from_source_defaults",
523 ],
Anton Hansson240ee482021-04-14 12:52:00 +0100524 srcs: [":system-api-stubs-docs-non-updatable"],
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000525 libs: ["all-modules-system-stubs"],
Jihoon Kang059b9492023-12-29 00:40:34 +0000526}
527
528java_library {
529 name: "android-non-updatable.stubs.exportable.system.from-source",
530 defaults: [
531 "android-non-updatable_defaults",
532 "android-non-updatable_from_source_defaults",
533 "android-non-updatable_exportable_from_source_defaults",
534 ],
535 srcs: [":system-api-stubs-docs-non-updatable{.exportable}"],
536 libs: ["all-modules-system-stubs"],
Anton Hanssona4108912021-04-09 13:40:11 +0100537 dist: {
538 dir: "apistubs/android/system",
539 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100540}
541
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100542java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000543 name: "android-non-updatable.stubs.module_lib.from-source",
544 defaults: [
545 "android-non-updatable_defaults",
546 "android-non-updatable_from_source_defaults",
547 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100548 srcs: [":module-lib-api-stubs-docs-non-updatable"],
Anton Hansson648b0db2023-11-06 19:24:42 +0000549 libs: non_updatable_api_deps_on_modules,
Jihoon Kang059b9492023-12-29 00:40:34 +0000550}
551
552java_library {
553 name: "android-non-updatable.stubs.exportable.module_lib.from-source",
554 defaults: [
555 "android-non-updatable_defaults",
556 "android-non-updatable_from_source_defaults",
557 "android-non-updatable_exportable_from_source_defaults",
558 ],
559 srcs: [":module-lib-api-stubs-docs-non-updatable{.exportable}"],
560 libs: non_updatable_api_deps_on_modules,
Anton Hanssona4108912021-04-09 13:40:11 +0100561 dist: {
562 dir: "apistubs/android/module-lib",
563 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100564}
565
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100566java_library {
Jihoon Kang491c7082023-06-15 18:37:01 +0000567 name: "android-non-updatable.stubs.test.from-source",
568 defaults: [
569 "android-non-updatable_defaults",
570 "android-non-updatable_from_source_defaults",
571 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100572 srcs: [":test-api-stubs-docs-non-updatable"],
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000573 libs: ["all-modules-system-stubs"],
Jihoon Kang059b9492023-12-29 00:40:34 +0000574}
575
576java_library {
577 name: "android-non-updatable.stubs.exportable.test.from-source",
578 defaults: [
579 "android-non-updatable_defaults",
580 "android-non-updatable_from_source_defaults",
581 "android-non-updatable_exportable_from_source_defaults",
582 ],
583 srcs: [":test-api-stubs-docs-non-updatable{.exportable}"],
584 libs: ["all-modules-system-stubs"],
Anton Hanssona4108912021-04-09 13:40:11 +0100585 dist: {
586 dir: "apistubs/android/test",
587 },
Anton Hanssona4748cd2021-04-09 10:16:19 +0100588}
589
Jihoon Kang341e942c2024-09-18 18:50:11 +0000590java_library {
591 name: "android-non-updatable.stubs.system_server.from-source",
592 defaults: [
593 "android-non-updatable_defaults",
594 "android-non-updatable_from_source_defaults",
595 ],
596 srcs: [":services-non-updatable-stubs"],
597 libs: non_updatable_api_deps_on_modules,
598}
599
600java_library {
601 name: "android-non-updatable.stubs.exportable.system_server.from-source",
602 defaults: [
603 "android-non-updatable_defaults",
604 "android-non-updatable_from_source_defaults",
605 "android-non-updatable_exportable_from_source_defaults",
606 ],
607 srcs: [":services-non-updatable-stubs{.exportable}"],
608 libs: non_updatable_api_deps_on_modules,
609 dist: {
610 dir: "apistubs/android/system-server",
611 },
612}
613
Anton Hanssona4748cd2021-04-09 10:16:19 +0100614java_defaults {
Jihoon Kang491c7082023-06-15 18:37:01 +0000615 name: "android-non-updatable_from_text_defaults",
Jihoon Kangdc16c222024-08-06 00:15:25 +0000616 defaults: ["android-non-updatable-stubs-libs-defaults"],
Jihoon Kang0c101db2023-03-14 07:03:46 +0000617 static_libs: ["framework-res-package-jar"],
618 libs: ["stub-annotations"],
Jihoon Kangdc16c222024-08-06 00:15:25 +0000619 sdk_version: "none",
620 system_modules: "none",
621 previous_api: ":android.api.public.latest",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000622}
623
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000624java_defaults {
625 name: "android-non-updatable_everything_from_text_defaults",
626 defaults: [
627 "android-non-updatable_from_text_defaults",
628 ],
629 stubs_type: "everything",
630}
631
Jihoon Kang0c101db2023-03-14 07:03:46 +0000632java_api_library {
633 name: "android-non-updatable.stubs.from-text",
634 api_surface: "public",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000635 api_contributions: [
636 "api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000637 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000638 defaults: ["android-non-updatable_everything_from_text_defaults"],
Paul Duffina2c4cd72024-06-18 18:49:48 +0100639 // Use full Android API not just the non-updatable API as the latter is incomplete
640 // and can result in incorrect behavior.
641 previous_api: ":android.api.combined.public.latest",
Jihoon Kangdc16c222024-08-06 00:15:25 +0000642 libs: ["all-modules-public-stubs"],
Jihoon Kang0c101db2023-03-14 07:03:46 +0000643}
644
645java_api_library {
646 name: "android-non-updatable.stubs.system.from-text",
647 api_surface: "system",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000648 api_contributions: [
649 "api-stubs-docs-non-updatable.api.contribution",
650 "system-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000651 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000652 defaults: ["android-non-updatable_everything_from_text_defaults"],
Paul Duffina2c4cd72024-06-18 18:49:48 +0100653 // Use full Android API not just the non-updatable API as the latter is incomplete
654 // and can result in incorrect behavior.
655 previous_api: ":android.api.combined.system.latest",
Jihoon Kangdc16c222024-08-06 00:15:25 +0000656 libs: ["all-modules-system-stubs"],
Jihoon Kang0c101db2023-03-14 07:03:46 +0000657}
658
659java_api_library {
660 name: "android-non-updatable.stubs.test.from-text",
661 api_surface: "test",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000662 api_contributions: [
663 "api-stubs-docs-non-updatable.api.contribution",
664 "system-api-stubs-docs-non-updatable.api.contribution",
665 "test-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000666 ],
Jihoon Kang0d639bf2024-02-28 00:54:13 +0000667 defaults: ["android-non-updatable_everything_from_text_defaults"],
Paul Duffina2c4cd72024-06-18 18:49:48 +0100668 // Use full Android API not just the non-updatable API as the latter is incomplete
669 // and can result in incorrect behavior.
670 previous_api: ":android.api.combined.test.latest",
Jihoon Kangdc16c222024-08-06 00:15:25 +0000671 libs: ["all-modules-system-stubs"],
Jihoon Kang0c101db2023-03-14 07:03:46 +0000672}
673
674java_api_library {
675 name: "android-non-updatable.stubs.module_lib.from-text",
676 api_surface: "module_lib",
Jihoon Kang25b6ced2023-09-20 21:48:09 +0000677 api_contributions: [
678 "api-stubs-docs-non-updatable.api.contribution",
679 "system-api-stubs-docs-non-updatable.api.contribution",
680 "module-lib-api-stubs-docs-non-updatable.api.contribution",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000681 ],
Jihoon Kangdc16c222024-08-06 00:15:25 +0000682 defaults: [
683 "module-classpath-java-defaults",
684 "android-non-updatable_everything_from_text_defaults",
685 ],
Paul Duffina2c4cd72024-06-18 18:49:48 +0100686 // Use full Android API not just the non-updatable API as the latter is incomplete
687 // and can result in incorrect behavior.
688 previous_api: ":android.api.combined.module-lib.latest",
Jihoon Kang0c101db2023-03-14 07:03:46 +0000689}
690
Jihoon Kang4683b142023-10-05 23:42:51 +0000691// This module generates a stub jar that is a union of the test and module lib
692// non-updatable api contributions. Modules should not depend on the stub jar
693// generated from this module, as this module is strictly used for hiddenapi only.
694java_api_library {
695 name: "android-non-updatable.stubs.test_module_lib",
696 api_surface: "module_lib",
697 api_contributions: [
698 "api-stubs-docs-non-updatable.api.contribution",
699 "system-api-stubs-docs-non-updatable.api.contribution",
700 "test-api-stubs-docs-non-updatable.api.contribution",
701 "module-lib-api-stubs-docs-non-updatable.api.contribution",
702 ],
Jihoon Kangdc16c222024-08-06 00:15:25 +0000703 defaults: [
704 "module-classpath-java-defaults",
705 "android-non-updatable_everything_from_text_defaults",
706 ],
Jihoon Kang4683b142023-10-05 23:42:51 +0000707
Paul Duffina2c4cd72024-06-18 18:49:48 +0100708 // No need to specify previous_api as this is not used for compiling against.
Jihoon Kang4683b142023-10-05 23:42:51 +0000709 // This module is only used for hiddenapi, and other modules should not
710 // depend on this module.
711 visibility: ["//visibility:private"],
Jihoon Kangdc16c222024-08-06 00:15:25 +0000712 libs: ["all-modules-system-stubs"],
Jihoon Kang4683b142023-10-05 23:42:51 +0000713}
714
Jihoon Kang341e942c2024-09-18 18:50:11 +0000715java_api_library {
716 name: "android-non-updatable.stubs.system_server.from-text",
717 api_surface: "system_server",
718 api_contributions: [
719 "api-stubs-docs-non-updatable.api.contribution",
720 "system-api-stubs-docs-non-updatable.api.contribution",
721 "module-lib-api-stubs-docs-non-updatable.api.contribution",
722 "services-non-updatable-stubs.api.contribution",
723 ],
724 defaults: [
725 "module-classpath-java-defaults",
726 "android-non-updatable_everything_from_text_defaults",
727 ],
728
729 // Use full Android API not just the non-updatable API as the latter is incomplete
730 // and can result in incorrect behavior.
731 previous_api: ":android.api.combined.system-server.latest",
732}
733
Jihoon Kang0c101db2023-03-14 07:03:46 +0000734java_defaults {
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000735 name: "android_stubs_dists_default",
736 dist: {
Anton Hanssondd8ef672022-01-04 08:53:19 +0000737 targets: ["sdk"],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000738 tag: ".jar",
739 dest: "android.jar",
740 },
Anton Hansson86925682021-04-14 14:54:43 +0100741 defaults_visibility: ["//frameworks/base/services"],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000742}
743
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100744java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000745 name: "android_stubs_current",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000746 static_libs: [
747 "all-modules-public-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100748 "android-non-updatable.stubs",
Anton Hanssonbf63f942020-05-20 12:06:23 +0100749 "private-stub-annotations-jar",
Anton Hansson76d3db42020-04-09 14:16:37 +0100750 ],
Anton Hansson65057af2021-04-14 18:52:08 +0100751 defaults: ["android.jar_defaults"],
Jiyong Park7fb4b182019-12-20 14:35:43 +0900752}
753
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100754java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000755 name: "android_stubs_current_exportable",
Jihoon Kang059b9492023-12-29 00:40:34 +0000756 static_libs: [
757 "all-modules-public-stubs-exportable",
758 "android-non-updatable.stubs.exportable",
759 "private-stub-annotations-jar",
760 ],
761 defaults: ["android.jar_defaults"],
762}
763
764java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000765 name: "android_system_stubs_current",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000766 static_libs: [
767 "all-modules-system-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100768 "android-non-updatable.stubs.system",
Anton Hanssonbf63f942020-05-20 12:06:23 +0100769 "private-stub-annotations-jar",
Anton Hansson76d3db42020-04-09 14:16:37 +0100770 ],
Anton Hanssonc3002e52020-11-18 18:23:55 +0000771 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100772 "android.jar_defaults",
Jihoon Kang059b9492023-12-29 00:40:34 +0000773 ],
774 visibility: ["//frameworks/base/services"],
775}
776
777java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000778 name: "android_system_stubs_current_exportable",
Jihoon Kang059b9492023-12-29 00:40:34 +0000779 static_libs: [
780 "all-modules-system-stubs-exportable",
781 "android-non-updatable.stubs.exportable.system",
782 "private-stub-annotations-jar",
783 ],
784 defaults: [
785 "android.jar_defaults",
Anton Hanssonc3002e52020-11-18 18:23:55 +0000786 "android_stubs_dists_default",
787 ],
788 dist: {
789 dir: "apistubs/android/system",
790 },
791 dists: [
792 {
793 // Legacy dist path
Anton Hanssondd8ef672022-01-04 08:53:19 +0000794 targets: ["sdk"],
Anton Hanssonc3002e52020-11-18 18:23:55 +0000795 tag: ".jar",
796 dest: "android_system.jar",
797 },
798 ],
Anton Hansson76d3db42020-04-09 14:16:37 +0100799}
800
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100801java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000802 name: "android_test_stubs_current",
Anton Hanssonc6e9d2f2022-01-25 15:53:43 +0000803 static_libs: [
Nikita Ioffe5593fbb2022-12-01 14:52:34 +0000804 // Updatable modules do not have test APIs, but we want to include their SystemApis, like we
805 // include the SystemApi of framework-non-updatable-sources.
806 "all-updatable-modules-system-stubs",
807 // Non-updatable modules on the other hand can have test APIs, so include their test-stubs.
808 "all-non-updatable-modules-test-stubs",
Anton Hanssona4748cd2021-04-09 10:16:19 +0100809 "android-non-updatable.stubs.test",
Anton Hansson7ce31c12020-10-15 18:38:49 +0100810 "private-stub-annotations-jar",
811 ],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000812 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100813 "android.jar_defaults",
Jihoon Kang059b9492023-12-29 00:40:34 +0000814 ],
815 visibility: ["//frameworks/base/services"],
816}
817
818java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000819 name: "android_test_stubs_current_exportable",
Jihoon Kang059b9492023-12-29 00:40:34 +0000820 static_libs: [
821 // Updatable modules do not have test APIs, but we want to include their SystemApis, like we
822 // include the SystemApi of framework-non-updatable-sources.
823 "all-updatable-modules-system-stubs-exportable",
824 // Non-updatable modules on the other hand can have test APIs, so include their test-stubs.
825 "all-non-updatable-modules-test-stubs-exportable",
826 "android-non-updatable.stubs.exportable.test",
827 "private-stub-annotations-jar",
828 ],
829 defaults: [
830 "android.jar_defaults",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000831 "android_stubs_dists_default",
832 ],
833 dist: {
834 dir: "apistubs/android/test",
835 },
Jiyong Parke3095162019-12-20 15:30:28 +0900836}
837
Jihoon Kang059b9492023-12-29 00:40:34 +0000838// This module does not need to be copied to dist
Anton Hanssonbbdd64b2021-04-26 18:47:39 +0100839java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000840 name: "android_test_frameworks_core_stubs_current",
Mark Whitee35b1382023-08-12 01:31:26 +0000841 static_libs: [
842 "all-updatable-modules-system-stubs",
843 "android-non-updatable.stubs.test",
Mark Whitee35b1382023-08-12 01:31:26 +0000844 ],
845 defaults: [
846 "android.jar_defaults",
Mark Whitee35b1382023-08-12 01:31:26 +0000847 ],
Jihoon Kang059b9492023-12-29 00:40:34 +0000848 visibility: ["//frameworks/base/services"],
Mark Whitee35b1382023-08-12 01:31:26 +0000849}
850
851java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000852 name: "android_module_lib_stubs_current",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000853 defaults: [
Anton Hansson65057af2021-04-14 18:52:08 +0100854 "android.jar_defaults",
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000855 ],
Anton Hanssona4748cd2021-04-09 10:16:19 +0100856 static_libs: [
857 "android-non-updatable.stubs.module_lib",
Victor Chang6b107a92021-06-17 23:49:42 +0100858 "art.module.public.api.stubs.module_lib",
Giulio Fiscella68a04112021-11-30 16:32:44 +0000859 "i18n.module.public.api.stubs",
Anton Hanssonb7d532e2021-02-05 11:40:25 +0000860 ],
Jihoon Kang059b9492023-12-29 00:40:34 +0000861 visibility: ["//frameworks/base/services"],
862}
863
864java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000865 name: "android_module_lib_stubs_current_exportable",
Jihoon Kang059b9492023-12-29 00:40:34 +0000866 defaults: [
867 "android.jar_defaults",
868 "android_stubs_dists_default",
869 ],
870 static_libs: [
871 "android-non-updatable.stubs.exportable.module_lib",
872 "art.module.public.api.stubs.exportable.module_lib",
873 "i18n.module.public.api.stubs.exportable",
874 ],
Anton Hansson53cf0ba2020-08-18 12:35:31 +0000875 dist: {
876 dir: "apistubs/android/module-lib",
877 },
Jiyong Park7fb4b182019-12-20 14:35:43 +0900878}
879
Andrei Oneafaa271a2021-03-17 13:32:51 +0000880java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000881 name: "android_system_server_stubs_current",
Anton Hansson21fb1082023-03-03 16:22:42 +0000882 defaults: [
883 "android.jar_defaults",
Anton Hansson21fb1082023-03-03 16:22:42 +0000884 ],
Andrei Oneafaa271a2021-03-17 13:32:51 +0000885 installable: false,
886 static_libs: [
Jihoon Kang341e942c2024-09-18 18:50:11 +0000887 "android-non-updatable.stubs.system_server",
Jihoon Kangdc16c222024-08-06 00:15:25 +0000888 "android_module_lib_stubs_current",
Andrei Oneafaa271a2021-03-17 13:32:51 +0000889 ],
Jihoon Kang059b9492023-12-29 00:40:34 +0000890 visibility: ["//frameworks/base/services"],
891}
892
893java_library {
Jihoon Kangdc16c222024-08-06 00:15:25 +0000894 name: "android_system_server_stubs_current_exportable",
Jihoon Kang059b9492023-12-29 00:40:34 +0000895 defaults: [
896 "android.jar_defaults",
897 "android_stubs_dists_default",
898 ],
Jihoon Kang059b9492023-12-29 00:40:34 +0000899 installable: false,
900 static_libs: [
Jihoon Kang341e942c2024-09-18 18:50:11 +0000901 "android-non-updatable.stubs.exportable.system_server",
Jihoon Kangdc16c222024-08-06 00:15:25 +0000902 "android_module_lib_stubs_current_exportable",
Jihoon Kang059b9492023-12-29 00:40:34 +0000903 ],
Andrei Oneafaa271a2021-03-17 13:32:51 +0000904 dist: {
905 dir: "apistubs/android/system-server",
906 },
907}
908
Colin Crosscf87a572022-10-20 14:06:53 -0700909java_library {
910 name: "android_stubs_private_jar",
911 defaults: ["android.jar_defaults"],
912 visibility: [
913 "//visibility:override",
914 "//visibility:private",
915 ],
916 static_libs: [
917 "stable.core.platform.api.stubs",
918 "core-lambda-stubs-for-system-modules",
919 "core-generated-annotation-stubs",
920 "framework",
921 "ext",
922 "framework-res-package-jar",
923 // The order of this matters, it has to be last to provide a
924 // package-private androidx.annotation.RecentlyNonNull without
925 // overriding the public android.annotation.Nullable in framework.jar
926 // with its own package-private android.annotation.Nullable.
927 "private-stub-annotations-jar",
928 ],
Jihoon Kanga7073b52024-02-12 23:18:52 +0000929 is_stubs_module: true,
Colin Crosscf87a572022-10-20 14:06:53 -0700930}
931
932java_genrule {
933 name: "android_stubs_private_hjar",
Colin Crosscf87a572022-10-20 14:06:53 -0700934 srcs: [":android_stubs_private_jar{.hjar}"],
935 out: ["android_stubs_private.jar"],
936 cmd: "cp $(in) $(out)",
937}
938
939java_library {
940 name: "android_stubs_private",
941 defaults: ["android_stubs_dists_default"],
Colin Crosscf87a572022-10-20 14:06:53 -0700942 sdk_version: "none",
943 system_modules: "none",
944 static_libs: ["android_stubs_private_hjar"],
945 dist: {
Peter Kalauskascf9acc62024-02-12 21:13:03 +0000946 // Add to private_api_stubs dist target for easier packaging by scripts. This module is
947 // useful for creating a platform SDK, which can be packaged in ANDROID_HOME and used from
948 // Gradle, allowing for development of platform apps that make use of hidden APIs.
949 targets: ["private_api_stubs"],
Colin Crosscf87a572022-10-20 14:06:53 -0700950 dir: "apistubs/android/private",
951 },
952}
953
954java_genrule {
955 name: "android_stubs_private_framework_aidl",
Colin Crosscf87a572022-10-20 14:06:53 -0700956 tools: ["sdkparcelables"],
957 srcs: [":android_stubs_private"],
958 out: ["framework.aidl"],
959 cmd: "rm -f $(genDir)/framework.aidl.merged && " +
960 "for i in $(in); do " +
961 " rm -f $(genDir)/framework.aidl.tmp && " +
Steven Moreland07b69ec2024-08-13 18:28:56 +0000962 " $(location sdkparcelables) $$i $(genDir)/framework.aidl.tmp --guarantee_stable && " +
Colin Crosscf87a572022-10-20 14:06:53 -0700963 " cat $(genDir)/framework.aidl.tmp >> $(genDir)/framework.aidl.merged; " +
964 "done && " +
965 "sort -u $(genDir)/framework.aidl.merged > $(out)",
966 dist: {
Peter Kalauskascf9acc62024-02-12 21:13:03 +0000967 targets: [
968 "sdk",
969 // Add to private_api_stubs dist target for easier packaging by scripts.
970 // See explanation in the "android_stubs_private" module above.
971 "private_api_stubs",
972 ],
Colin Crosscf87a572022-10-20 14:06:53 -0700973 dir: "apistubs/android/private",
974 },
975}
976
Anton Hansson36bc27c2021-09-14 15:45:13 +0100977////////////////////////////////////////////////////////////////////////
978// api-versions.xml generation, for public and system. This API database
979// also contains the android.test.* APIs.
980////////////////////////////////////////////////////////////////////////
981
982java_library {
983 name: "android_stubs_current_with_test_libs",
984 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +0000985 "android_stubs_current_exportable",
Anton Hansson36bc27c2021-09-14 15:45:13 +0100986 "android.test.base.stubs",
987 "android.test.mock.stubs",
988 "android.test.runner.stubs",
989 ],
990 defaults: ["android.jar_defaults"],
991 visibility: [
992 "//visibility:override",
993 "//visibility:private",
994 ],
995}
996
997java_library {
998 name: "android_system_stubs_current_with_test_libs",
999 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +00001000 "android_system_stubs_current_exportable",
Anton Hansson36bc27c2021-09-14 15:45:13 +01001001 "android.test.base.stubs.system",
1002 "android.test.mock.stubs.system",
1003 "android.test.runner.stubs.system",
1004 ],
1005 defaults: ["android.jar_defaults"],
1006 visibility: [
1007 "//visibility:override",
1008 "//visibility:private",
1009 ],
1010}
1011
Cole Faustdcda3702022-10-04 14:46:35 -07001012java_library {
1013 name: "android_module_stubs_current_with_test_libs",
1014 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +00001015 "android_module_lib_stubs_current_exportable",
Cole Faustdcda3702022-10-04 14:46:35 -07001016 "android.test.base.stubs",
1017 "android.test.mock.stubs",
1018 "android.test.runner.stubs",
1019 ],
1020 defaults: ["android.jar_defaults"],
1021 visibility: [
1022 "//visibility:override",
1023 "//visibility:private",
1024 ],
1025}
1026
1027java_library {
1028 name: "android_system_server_stubs_current_with_test_libs",
1029 static_libs: [
Jihoon Kang2a829bb2024-02-01 22:01:15 +00001030 "android_system_server_stubs_current_exportable",
Cole Faustdcda3702022-10-04 14:46:35 -07001031 "android.test.base.stubs.system",
1032 "android.test.mock.stubs.system",
1033 "android.test.runner.stubs.system",
1034 ],
1035 defaults: ["android.jar_defaults"],
1036 visibility: [
1037 "//visibility:override",
1038 "//visibility:private",
1039 ],
1040}
1041
Paul Duffin0834ea72024-05-02 12:09:51 +01001042// Defaults for `droidstubs` modules that generate `api-versions.xml` files for
1043// the various API surfaces.
1044stubs_defaults {
1045 name: "api_versions_base_defaults",
1046 defaults_visibility: ["//visibility:private"],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001047 generate_stubs: false,
1048 api_levels_annotations_enabled: true,
1049 api_levels_annotations_dirs: [
1050 "sdk-dir",
1051 "api-versions-jars-dir",
1052 ],
Paul Duffin0834ea72024-05-02 12:09:51 +01001053}
1054
1055// Defaults for `droidstubs` modules that generate complete `api-versions.xml`
1056// files, i.e. include SDK extensions.
1057stubs_defaults {
1058 name: "api_versions_complete_defaults",
1059 defaults_visibility: ["//visibility:private"],
1060 defaults: ["api_versions_base_defaults"],
MÃ¥rten Kongstad54845332022-09-06 15:50:37 +02001061 extensions_info_file: ":sdk-extensions-info",
Paul Duffin0834ea72024-05-02 12:09:51 +01001062}
1063
1064// Produces an `api-versions.xml` file that includes up-to-date information
1065// about all the public APIs, both updatable and non-updatable and historic
1066// information about all previous dessert and SDK extension releases.
1067droidstubs {
1068 name: "api_versions_public",
1069 defaults: ["api_versions_complete_defaults"],
1070 srcs: [":android_stubs_current_with_test_libs{.jar}"],
1071 api_levels_sdk_type: "public",
Anton Hanssonca6e67a2023-03-03 17:55:09 +00001072 visibility: ["//frameworks/base"],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001073}
1074
Paul Duffin0834ea72024-05-02 12:09:51 +01001075// Produces an `api-versions.xml` file that includes up-to-date information
1076// about all the system APIs, both updatable and non-updatable and historic
1077// information about all previous dessert and SDK extension releases.
Anton Hansson36bc27c2021-09-14 15:45:13 +01001078droidstubs {
1079 name: "api_versions_system",
Paul Duffin0834ea72024-05-02 12:09:51 +01001080 defaults: ["api_versions_complete_defaults"],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001081 srcs: [":android_system_stubs_current_with_test_libs{.jar}"],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001082 api_levels_sdk_type: "system",
Paul Duffin75f63602024-01-05 18:15:59 +00001083 dists: [
1084 // Make the api-versions.xml file for the system API available in the
1085 // sdk build target.
1086 {
1087 targets: ["sdk"],
1088 dest: "api-versions_system.xml",
1089 tag: ".api_versions.xml",
1090 },
1091 ],
Anton Hansson36bc27c2021-09-14 15:45:13 +01001092}
1093
Paul Duffin0834ea72024-05-02 12:09:51 +01001094// Defaults for `droidstubs` modules that generate `api-versions.xml` files that
1095// only include non-updatable code, i.e. for platform API only, not SDK
1096// extensions.
1097stubs_defaults {
1098 name: "api_versions_non_updatable_defaults",
1099 defaults_visibility: ["//visibility:private"],
1100 defaults: ["api_versions_base_defaults"],
Cole Faustbf4ce752023-02-08 12:46:06 -08001101 // this only has the non-updatable portions of the module lib sdk,
1102 // which can reference classes from updatable apexes, so remove references to them
1103 // from this api_versions file.
1104 flags: ["--remove-missing-class-references-in-api-levels"],
Cole Faust1deced12023-02-15 13:24:18 -08001105 // extensions_info_file is purposefully omitted, because this module should just be
1106 // the non-updatable portions of the sdk, and extension sdks are updatable.
Cole Faustdcda3702022-10-04 14:46:35 -07001107}
1108
Paul Duffin0834ea72024-05-02 12:09:51 +01001109// Produces an `api-versions.xml` file that includes up-to-date information
1110// about only the non-updatable module-lib APIs and historic information about
1111// all previous dessert and SDK extension releases. That historic information
1112// may include information about APIs that were previously not-updatable which
1113// have since become updatable.
1114droidstubs {
1115 name: "api_versions_module_lib",
1116 defaults: ["api_versions_non_updatable_defaults"],
1117 srcs: [":android_module_stubs_current_with_test_libs{.jar}"],
1118 api_levels_sdk_type: "module-lib",
1119}
1120
Paul Duffinfb5e07d2024-05-02 14:51:41 +01001121// Create a single jar containing the whole module-lib API surface.
1122// This is needed because Metalava only consumes the first jar file it is given
1123// and ignores the rest.
1124java_library {
1125 name: "android_module_stubs_complete_current_with_test_libs",
1126 static_libs: [
1127 "android_module_stubs_current_with_test_libs",
1128 "framework-updatable-stubs-module_libs_api-exportable",
1129 ],
1130 defaults: ["android.jar_defaults"],
1131 visibility: [
1132 "//visibility:override",
1133 "//visibility:private",
1134 ],
1135}
1136
1137// Produces an `api-versions.xml` file that includes up-to-date information
1138// about all the module-lib APIs, both updatable and non-updatable and historic
1139// information about all previous dessert and SDK extension releases.
1140droidstubs {
1141 name: "api_versions_module_lib_complete",
1142 defaults: ["api_versions_complete_defaults"],
1143 srcs: [":android_module_stubs_complete_current_with_test_libs{.jar}"],
1144 api_levels_sdk_type: "module-lib",
1145}
1146
Paul Duffin0834ea72024-05-02 12:09:51 +01001147// Produces an `api-versions.xml` file that includes up-to-date information
1148// about only the non-updatable system-server APIs and historic information
1149// about all previous dessert and SDK extension releases. That historic
1150// information may include information about APIs that were previously
1151// not-updatable which have since become updatable.
Cole Faustdcda3702022-10-04 14:46:35 -07001152droidstubs {
1153 name: "api_versions_system_server",
Paul Duffin0834ea72024-05-02 12:09:51 +01001154 defaults: ["api_versions_non_updatable_defaults"],
Cole Faustdcda3702022-10-04 14:46:35 -07001155 srcs: [":android_system_server_stubs_current_with_test_libs{.jar}"],
Cole Faustdcda3702022-10-04 14:46:35 -07001156 api_levels_sdk_type: "system-server",
Cole Faustdcda3702022-10-04 14:46:35 -07001157}
1158
Paul Duffinfb5e07d2024-05-02 14:51:41 +01001159// Create a single jar containing the whole system-server API surface.
1160// This is needed because Metalava only consumes the first jar file it is given
1161// and ignores the rest.
1162java_library {
1163 name: "android_system_server_stubs_complete_current_with_test_libs",
1164 static_libs: [
1165 "android_system_server_stubs_current_with_test_libs",
1166 // system-server extends module-lib but libraries which only service-*
1167 // libraries provided system-server APIs, so include module-lib APIs for
1168 // the others, e.g. framework-* libraries.
1169 "framework-updatable-stubs-module_libs_api-exportable",
1170 "framework-updatable-stubs-system_server_api-exportable",
1171 ],
1172 defaults: ["android.jar_defaults"],
1173 visibility: [
1174 "//visibility:override",
1175 "//visibility:private",
1176 ],
1177}
1178
1179// Produces an `api-versions.xml` file that includes up-to-date information
1180// about all the system-server APIs, both updatable and non-updatable and
1181// historic information about all previous dessert and SDK extension releases.
1182droidstubs {
1183 name: "api_versions_system_server_complete",
1184 defaults: ["api_versions_complete_defaults"],
1185 srcs: [":android_system_server_stubs_complete_current_with_test_libs{.jar}"],
1186 api_levels_sdk_type: "system-server",
1187}
1188
Jiyong Park7fb4b182019-12-20 14:35:43 +09001189/////////////////////////////////////////////////////////////////////
1190// hwbinder.stubs provides APIs required for building HIDL Java
1191// libraries.
1192/////////////////////////////////////////////////////////////////////
1193
1194droidstubs {
1195 name: "hwbinder-stubs-docs",
Anton Hansson23f319f2023-03-03 16:04:02 +00001196 srcs: [":hwbinder-stubs-srcs"],
Colin Cross037d7fb2021-03-25 17:01:55 -07001197 libs: ["framework-annotations-lib"],
Jiyong Park7fb4b182019-12-20 14:35:43 +09001198 installable: false,
1199 sdk_version: "core_platform",
1200 annotations_enabled: true,
Anton Hansson48ee95e2020-05-02 17:49:26 +01001201 previous_api: ":android.api.public.latest",
Jiyong Park7fb4b182019-12-20 14:35:43 +09001202 merge_annotations_dirs: [
1203 "metalava-manual",
1204 ],
Anton Hansson84a0e712023-10-23 09:17:45 +00001205 flags: priv_apps,
Jiyong Park7fb4b182019-12-20 14:35:43 +09001206}
1207
Anton Hanssonbbdd64b2021-04-26 18:47:39 +01001208java_library {
Jiyong Park7fb4b182019-12-20 14:35:43 +09001209 name: "hwbinder.stubs",
1210 sdk_version: "core_current",
Colin Cross037d7fb2021-03-25 17:01:55 -07001211 libs: ["framework-annotations-lib"],
Jiyong Park7fb4b182019-12-20 14:35:43 +09001212 srcs: [
1213 ":hwbinder-stubs-docs",
1214 ],
Anton Hansson86925682021-04-14 14:54:43 +01001215 visibility: ["//visibility:public"],
Jihoon Kanga85551e2024-07-11 18:05:21 +00001216 is_stubs_module: true,
Jiyong Park7fb4b182019-12-20 14:35:43 +09001217}