1*d57664e9SAndroid Build Coastguard Worker// Copyright (C) 2020 The Android Open Source Project 2*d57664e9SAndroid Build Coastguard Worker// 3*d57664e9SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*d57664e9SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*d57664e9SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*d57664e9SAndroid Build Coastguard Worker// 7*d57664e9SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*d57664e9SAndroid Build Coastguard Worker// 9*d57664e9SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*d57664e9SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*d57664e9SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*d57664e9SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*d57664e9SAndroid Build Coastguard Worker// limitations under the License. 14*d57664e9SAndroid Build Coastguard Worker 15*d57664e9SAndroid Build Coastguard Workerpackage { 16*d57664e9SAndroid Build Coastguard Worker default_visibility: ["//visibility:private"], 17*d57664e9SAndroid Build Coastguard Worker // See: http://go/android-license-faq 18*d57664e9SAndroid Build Coastguard Worker // A large-scale-change added 'default_applicable_licenses' to import 19*d57664e9SAndroid Build Coastguard Worker // all of the 'license_kinds' from "frameworks_base_license" 20*d57664e9SAndroid Build Coastguard Worker // to get the below license kinds: 21*d57664e9SAndroid Build Coastguard Worker // SPDX-license-identifier-Apache-2.0 22*d57664e9SAndroid Build Coastguard Worker // SPDX-license-identifier-MIT 23*d57664e9SAndroid Build Coastguard Worker // SPDX-license-identifier-Unicode-DFS 24*d57664e9SAndroid Build Coastguard Worker default_applicable_licenses: ["frameworks_base_license"], 25*d57664e9SAndroid Build Coastguard Worker} 26*d57664e9SAndroid Build Coastguard Worker 27*d57664e9SAndroid Build Coastguard Workerbootstrap_go_package { 28*d57664e9SAndroid Build Coastguard Worker name: "soong-api", 29*d57664e9SAndroid Build Coastguard Worker pkgPath: "android/soong/api", 30*d57664e9SAndroid Build Coastguard Worker deps: [ 31*d57664e9SAndroid Build Coastguard Worker "blueprint", 32*d57664e9SAndroid Build Coastguard Worker "blueprint-proptools", 33*d57664e9SAndroid Build Coastguard Worker "soong", 34*d57664e9SAndroid Build Coastguard Worker "soong-android", 35*d57664e9SAndroid Build Coastguard Worker "soong-genrule", 36*d57664e9SAndroid Build Coastguard Worker "soong-java", 37*d57664e9SAndroid Build Coastguard Worker ], 38*d57664e9SAndroid Build Coastguard Worker srcs: ["api.go"], 39*d57664e9SAndroid Build Coastguard Worker testSrcs: ["api_test.go"], 40*d57664e9SAndroid Build Coastguard Worker pluginFor: ["soong_build"], 41*d57664e9SAndroid Build Coastguard Worker} 42*d57664e9SAndroid Build Coastguard Worker 43*d57664e9SAndroid Build Coastguard Workerpython_binary_host { 44*d57664e9SAndroid Build Coastguard Worker name: "merge_annotation_zips", 45*d57664e9SAndroid Build Coastguard Worker srcs: ["merge_annotation_zips.py"], 46*d57664e9SAndroid Build Coastguard Worker} 47*d57664e9SAndroid Build Coastguard Worker 48*d57664e9SAndroid Build Coastguard Workerpython_test_host { 49*d57664e9SAndroid Build Coastguard Worker name: "merge_annotation_zips_test", 50*d57664e9SAndroid Build Coastguard Worker main: "merge_annotation_zips_test.py", 51*d57664e9SAndroid Build Coastguard Worker srcs: [ 52*d57664e9SAndroid Build Coastguard Worker "merge_annotation_zips.py", 53*d57664e9SAndroid Build Coastguard Worker "merge_annotation_zips_test.py", 54*d57664e9SAndroid Build Coastguard Worker ], 55*d57664e9SAndroid Build Coastguard Worker test_options: { 56*d57664e9SAndroid Build Coastguard Worker unit_test: true, 57*d57664e9SAndroid Build Coastguard Worker }, 58*d57664e9SAndroid Build Coastguard Worker} 59*d57664e9SAndroid Build Coastguard Worker 60*d57664e9SAndroid Build Coastguard Workermetalava_cmd = "$(location metalava)" 61*d57664e9SAndroid Build Coastguard Worker// Silence reflection warnings. See b/168689341 62*d57664e9SAndroid Build Coastguard Workermetalava_cmd += " -J--add-opens=java.base/java.util=ALL-UNNAMED " 63*d57664e9SAndroid Build Coastguard Workermetalava_cmd += " --quiet " 64*d57664e9SAndroid Build Coastguard Worker 65*d57664e9SAndroid Build Coastguard Workercombined_apis { 66*d57664e9SAndroid Build Coastguard Worker name: "frameworks-base-api", 67*d57664e9SAndroid Build Coastguard Worker bootclasspath: [ 68*d57664e9SAndroid Build Coastguard Worker "android.net.ipsec.ike", 69*d57664e9SAndroid Build Coastguard Worker "art.module.public.api", 70*d57664e9SAndroid Build Coastguard Worker "conscrypt.module.public.api", 71*d57664e9SAndroid Build Coastguard Worker "framework-adservices", 72*d57664e9SAndroid Build Coastguard Worker "framework-appsearch", 73*d57664e9SAndroid Build Coastguard Worker "framework-bluetooth", 74*d57664e9SAndroid Build Coastguard Worker "framework-configinfrastructure", 75*d57664e9SAndroid Build Coastguard Worker "framework-connectivity", 76*d57664e9SAndroid Build Coastguard Worker "framework-connectivity-b", 77*d57664e9SAndroid Build Coastguard Worker "framework-connectivity-t", 78*d57664e9SAndroid Build Coastguard Worker "framework-devicelock", 79*d57664e9SAndroid Build Coastguard Worker "framework-graphics", 80*d57664e9SAndroid Build Coastguard Worker "framework-healthfitness", 81*d57664e9SAndroid Build Coastguard Worker "framework-location", 82*d57664e9SAndroid Build Coastguard Worker "framework-media", 83*d57664e9SAndroid Build Coastguard Worker "framework-mediaprovider", 84*d57664e9SAndroid Build Coastguard Worker "framework-nfc", 85*d57664e9SAndroid Build Coastguard Worker "framework-ondevicepersonalization", 86*d57664e9SAndroid Build Coastguard Worker "framework-pdf", 87*d57664e9SAndroid Build Coastguard Worker "framework-pdf-v", 88*d57664e9SAndroid Build Coastguard Worker "framework-permission", 89*d57664e9SAndroid Build Coastguard Worker "framework-permission-s", 90*d57664e9SAndroid Build Coastguard Worker "framework-profiling", 91*d57664e9SAndroid Build Coastguard Worker "framework-photopicker", 92*d57664e9SAndroid Build Coastguard Worker "framework-scheduling", 93*d57664e9SAndroid Build Coastguard Worker "framework-sdkextensions", 94*d57664e9SAndroid Build Coastguard Worker "framework-statsd", 95*d57664e9SAndroid Build Coastguard Worker "framework-sdksandbox", 96*d57664e9SAndroid Build Coastguard Worker "framework-tethering", 97*d57664e9SAndroid Build Coastguard Worker "framework-uwb", 98*d57664e9SAndroid Build Coastguard Worker "framework-virtualization", 99*d57664e9SAndroid Build Coastguard Worker "framework-wifi", 100*d57664e9SAndroid Build Coastguard Worker "i18n.module.public.api", 101*d57664e9SAndroid Build Coastguard Worker ] + select(soong_config_variable("ANDROID", "release_crashrecovery_module"), { 102*d57664e9SAndroid Build Coastguard Worker "true": [ 103*d57664e9SAndroid Build Coastguard Worker "framework-crashrecovery", 104*d57664e9SAndroid Build Coastguard Worker ], 105*d57664e9SAndroid Build Coastguard Worker default: [ 106*d57664e9SAndroid Build Coastguard Worker "framework-platformcrashrecovery", 107*d57664e9SAndroid Build Coastguard Worker ], 108*d57664e9SAndroid Build Coastguard Worker }) + select(release_flag("RELEASE_ONDEVICE_INTELLIGENCE_MODULE"), { 109*d57664e9SAndroid Build Coastguard Worker true: [ 110*d57664e9SAndroid Build Coastguard Worker "framework-ondeviceintelligence", 111*d57664e9SAndroid Build Coastguard Worker ], 112*d57664e9SAndroid Build Coastguard Worker default: [ 113*d57664e9SAndroid Build Coastguard Worker "framework-ondeviceintelligence-platform", 114*d57664e9SAndroid Build Coastguard Worker ], 115*d57664e9SAndroid Build Coastguard Worker }) + select(release_flag("RELEASE_RANGING_STACK"), { 116*d57664e9SAndroid Build Coastguard Worker true: [ 117*d57664e9SAndroid Build Coastguard Worker "framework-ranging", 118*d57664e9SAndroid Build Coastguard Worker ], 119*d57664e9SAndroid Build Coastguard Worker default: [], 120*d57664e9SAndroid Build Coastguard Worker }), 121*d57664e9SAndroid Build Coastguard Worker system_server_classpath: [ 122*d57664e9SAndroid Build Coastguard Worker "service-art", 123*d57664e9SAndroid Build Coastguard Worker "service-configinfrastructure", 124*d57664e9SAndroid Build Coastguard Worker "service-healthfitness", 125*d57664e9SAndroid Build Coastguard Worker "service-media-s", 126*d57664e9SAndroid Build Coastguard Worker "service-permission", 127*d57664e9SAndroid Build Coastguard Worker "service-rkp", 128*d57664e9SAndroid Build Coastguard Worker "service-sdksandbox", 129*d57664e9SAndroid Build Coastguard Worker ] + select(release_flag("RELEASE_ONDEVICE_INTELLIGENCE_MODULE"), { 130*d57664e9SAndroid Build Coastguard Worker true: [ 131*d57664e9SAndroid Build Coastguard Worker "service-ondeviceintelligence", 132*d57664e9SAndroid Build Coastguard Worker ], 133*d57664e9SAndroid Build Coastguard Worker default: [], 134*d57664e9SAndroid Build Coastguard Worker }) + select(soong_config_variable("ANDROID", "release_crashrecovery_module"), { 135*d57664e9SAndroid Build Coastguard Worker "true": [ 136*d57664e9SAndroid Build Coastguard Worker "service-crashrecovery", 137*d57664e9SAndroid Build Coastguard Worker ], 138*d57664e9SAndroid Build Coastguard Worker default: [], 139*d57664e9SAndroid Build Coastguard Worker }), 140*d57664e9SAndroid Build Coastguard Worker} 141*d57664e9SAndroid Build Coastguard Worker 142*d57664e9SAndroid Build Coastguard Worker// Create a single file containing the latest released version of the whole 143*d57664e9SAndroid Build Coastguard Worker// Android public API. 144*d57664e9SAndroid Build Coastguard Workerjava_genrule { 145*d57664e9SAndroid Build Coastguard Worker name: "android.api.merged.public.latest", 146*d57664e9SAndroid Build Coastguard Worker srcs: [ 147*d57664e9SAndroid Build Coastguard Worker ":android.api.combined.public.latest", 148*d57664e9SAndroid Build Coastguard Worker ], 149*d57664e9SAndroid Build Coastguard Worker out: ["public-latest.txt"], 150*d57664e9SAndroid Build Coastguard Worker tools: ["metalava"], 151*d57664e9SAndroid Build Coastguard Worker cmd: metalava_cmd + " merge-signatures --format=2.0 $(in) --out $(out)", 152*d57664e9SAndroid Build Coastguard Worker} 153*d57664e9SAndroid Build Coastguard Worker 154*d57664e9SAndroid Build Coastguard Worker// Make sure that the Android public API is compatible with the 155*d57664e9SAndroid Build Coastguard Worker// previously released public API. 156*d57664e9SAndroid Build Coastguard Workerjava_genrule { 157*d57664e9SAndroid Build Coastguard Worker name: "frameworks-base-api-current-compat", 158*d57664e9SAndroid Build Coastguard Worker srcs: [ 159*d57664e9SAndroid Build Coastguard Worker ":android.api.merged.public.latest", 160*d57664e9SAndroid Build Coastguard Worker ":android-incompatibilities.api.public.latest", 161*d57664e9SAndroid Build Coastguard Worker ":frameworks-base-api-current.txt", 162*d57664e9SAndroid Build Coastguard Worker ], 163*d57664e9SAndroid Build Coastguard Worker out: ["updated-baseline.txt"], 164*d57664e9SAndroid Build Coastguard Worker tools: ["metalava"], 165*d57664e9SAndroid Build Coastguard Worker cmd: metalava_cmd + 166*d57664e9SAndroid Build Coastguard Worker "--check-compatibility:api:released $(location :android.api.merged.public.latest) " + 167*d57664e9SAndroid Build Coastguard Worker "--baseline:compatibility:released $(location :android-incompatibilities.api.public.latest) " + 168*d57664e9SAndroid Build Coastguard Worker "--update-baseline:compatibility:released $(genDir)/updated-baseline.txt " + 169*d57664e9SAndroid Build Coastguard Worker "$(location :frameworks-base-api-current.txt)", 170*d57664e9SAndroid Build Coastguard Worker} 171*d57664e9SAndroid Build Coastguard Worker 172*d57664e9SAndroid Build Coastguard Worker// Create a single file containing the latest released version of the whole 173*d57664e9SAndroid Build Coastguard Worker// Android system API. 174*d57664e9SAndroid Build Coastguard Workerjava_genrule { 175*d57664e9SAndroid Build Coastguard Worker name: "android.api.merged.system.latest", 176*d57664e9SAndroid Build Coastguard Worker srcs: [ 177*d57664e9SAndroid Build Coastguard Worker ":android.api.combined.system.latest", 178*d57664e9SAndroid Build Coastguard Worker ], 179*d57664e9SAndroid Build Coastguard Worker out: ["system-latest.txt"], 180*d57664e9SAndroid Build Coastguard Worker tools: ["metalava"], 181*d57664e9SAndroid Build Coastguard Worker cmd: metalava_cmd + " merge-signatures --format=2.0 $(in) --out $(out)", 182*d57664e9SAndroid Build Coastguard Worker} 183*d57664e9SAndroid Build Coastguard Worker 184*d57664e9SAndroid Build Coastguard Worker// Make sure that the Android system API is compatible with the 185*d57664e9SAndroid Build Coastguard Worker// previously released system API. 186*d57664e9SAndroid Build Coastguard Workerjava_genrule { 187*d57664e9SAndroid Build Coastguard Worker name: "frameworks-base-api-system-current-compat", 188*d57664e9SAndroid Build Coastguard Worker srcs: [ 189*d57664e9SAndroid Build Coastguard Worker ":android.api.merged.system.latest", 190*d57664e9SAndroid Build Coastguard Worker ":android-incompatibilities.api.system.latest", 191*d57664e9SAndroid Build Coastguard Worker ":frameworks-base-api-current.txt", 192*d57664e9SAndroid Build Coastguard Worker ":frameworks-base-api-system-current.txt", 193*d57664e9SAndroid Build Coastguard Worker ], 194*d57664e9SAndroid Build Coastguard Worker out: ["updated-baseline.txt"], 195*d57664e9SAndroid Build Coastguard Worker tools: ["metalava"], 196*d57664e9SAndroid Build Coastguard Worker cmd: metalava_cmd + 197*d57664e9SAndroid Build Coastguard Worker "--check-compatibility:api:released $(location :android.api.merged.system.latest) " + 198*d57664e9SAndroid Build Coastguard Worker "--baseline:compatibility:released $(location :android-incompatibilities.api.system.latest) " + 199*d57664e9SAndroid Build Coastguard Worker "--update-baseline:compatibility:released $(genDir)/updated-baseline.txt " + 200*d57664e9SAndroid Build Coastguard Worker "$(location :frameworks-base-api-current.txt) " + 201*d57664e9SAndroid Build Coastguard Worker "$(location :frameworks-base-api-system-current.txt)", 202*d57664e9SAndroid Build Coastguard Worker} 203*d57664e9SAndroid Build Coastguard Worker 204*d57664e9SAndroid Build Coastguard Worker// Create a single file containing the latest released version of the whole 205*d57664e9SAndroid Build Coastguard Worker// Android module-lib API. 206*d57664e9SAndroid Build Coastguard Workerjava_genrule { 207*d57664e9SAndroid Build Coastguard Worker name: "android.api.merged.module-lib.latest", 208*d57664e9SAndroid Build Coastguard Worker srcs: [ 209*d57664e9SAndroid Build Coastguard Worker ":android.api.combined.module-lib.latest", 210*d57664e9SAndroid Build Coastguard Worker ], 211*d57664e9SAndroid Build Coastguard Worker out: ["module-lib-latest.txt"], 212*d57664e9SAndroid Build Coastguard Worker tools: ["metalava"], 213*d57664e9SAndroid Build Coastguard Worker cmd: metalava_cmd + " merge-signatures --format=2.0 $(in) --out $(out)", 214*d57664e9SAndroid Build Coastguard Worker} 215*d57664e9SAndroid Build Coastguard Worker 216*d57664e9SAndroid Build Coastguard Worker// Make sure that the Android module-lib API is compatible with the 217*d57664e9SAndroid Build Coastguard Worker// previously released module-lib API. 218*d57664e9SAndroid Build Coastguard Workerjava_genrule { 219*d57664e9SAndroid Build Coastguard Worker name: "frameworks-base-api-module-lib-current-compat", 220*d57664e9SAndroid Build Coastguard Worker srcs: [ 221*d57664e9SAndroid Build Coastguard Worker ":android.api.merged.module-lib.latest", 222*d57664e9SAndroid Build Coastguard Worker ":android-incompatibilities.api.module-lib.latest", 223*d57664e9SAndroid Build Coastguard Worker ":frameworks-base-api-current.txt", 224*d57664e9SAndroid Build Coastguard Worker ":frameworks-base-api-system-current.txt", 225*d57664e9SAndroid Build Coastguard Worker ":frameworks-base-api-module-lib-current.txt", 226*d57664e9SAndroid Build Coastguard Worker ], 227*d57664e9SAndroid Build Coastguard Worker out: ["updated-baseline.txt"], 228*d57664e9SAndroid Build Coastguard Worker tools: ["metalava"], 229*d57664e9SAndroid Build Coastguard Worker cmd: metalava_cmd + 230*d57664e9SAndroid Build Coastguard Worker "--check-compatibility:api:released $(location :android.api.merged.module-lib.latest) " + 231*d57664e9SAndroid Build Coastguard Worker "--baseline:compatibility:released $(location :android-incompatibilities.api.module-lib.latest) " + 232*d57664e9SAndroid Build Coastguard Worker "--update-baseline:compatibility:released $(genDir)/updated-baseline.txt " + 233*d57664e9SAndroid Build Coastguard Worker "$(location :frameworks-base-api-current.txt) " + 234*d57664e9SAndroid Build Coastguard Worker "$(location :frameworks-base-api-system-current.txt) " + 235*d57664e9SAndroid Build Coastguard Worker "$(location :frameworks-base-api-module-lib-current.txt)", 236*d57664e9SAndroid Build Coastguard Worker} 237*d57664e9SAndroid Build Coastguard Worker 238*d57664e9SAndroid Build Coastguard Workerjava_genrule { 239*d57664e9SAndroid Build Coastguard Worker name: "frameworks-base-api-current.srcjar", 240*d57664e9SAndroid Build Coastguard Worker tools: ["merge_zips"], 241*d57664e9SAndroid Build Coastguard Worker out: ["current.srcjar"], 242*d57664e9SAndroid Build Coastguard Worker cmd: "$(location merge_zips) $(out) $(in)", 243*d57664e9SAndroid Build Coastguard Worker srcs: [ 244*d57664e9SAndroid Build Coastguard Worker ":api-stubs-docs-non-updatable{.exportable}", 245*d57664e9SAndroid Build Coastguard Worker ":all-modules-public-stubs-source-exportable", 246*d57664e9SAndroid Build Coastguard Worker ], 247*d57664e9SAndroid Build Coastguard Worker visibility: ["//visibility:private"], // Used by make module in //development, mind 248*d57664e9SAndroid Build Coastguard Worker} 249*d57664e9SAndroid Build Coastguard Worker 250*d57664e9SAndroid Build Coastguard Worker// This produces the same annotations.zip as framework-doc-stubs, but by using 251*d57664e9SAndroid Build Coastguard Worker// outputs from individual modules instead of all the source code. 252*d57664e9SAndroid Build Coastguard Workergenrule_defaults { 253*d57664e9SAndroid Build Coastguard Worker name: "sdk-annotations-defaults", 254*d57664e9SAndroid Build Coastguard Worker out: ["annotations.zip"], 255*d57664e9SAndroid Build Coastguard Worker tools: [ 256*d57664e9SAndroid Build Coastguard Worker "merge_annotation_zips", 257*d57664e9SAndroid Build Coastguard Worker "soong_zip", 258*d57664e9SAndroid Build Coastguard Worker ], 259*d57664e9SAndroid Build Coastguard Worker cmd: "$(location merge_annotation_zips) $(genDir)/out $(in) && " + 260*d57664e9SAndroid Build Coastguard Worker "$(location soong_zip) -o $(out) -C $(genDir)/out -D $(genDir)/out", 261*d57664e9SAndroid Build Coastguard Worker} 262*d57664e9SAndroid Build Coastguard Worker 263*d57664e9SAndroid Build Coastguard Workerjava_genrule { 264*d57664e9SAndroid Build Coastguard Worker name: "sdk-annotations.zip", 265*d57664e9SAndroid Build Coastguard Worker defaults: ["sdk-annotations-defaults"], 266*d57664e9SAndroid Build Coastguard Worker srcs: [ 267*d57664e9SAndroid Build Coastguard Worker ":android-non-updatable-doc-stubs{.exportable.annotations.zip}", 268*d57664e9SAndroid Build Coastguard Worker ":all-modules-public-annotations", 269*d57664e9SAndroid Build Coastguard Worker ], 270*d57664e9SAndroid Build Coastguard Worker} 271*d57664e9SAndroid Build Coastguard Worker 272*d57664e9SAndroid Build Coastguard Workerjava_genrule { 273*d57664e9SAndroid Build Coastguard Worker name: "sdk-annotations-system.zip", 274*d57664e9SAndroid Build Coastguard Worker defaults: ["sdk-annotations-defaults"], 275*d57664e9SAndroid Build Coastguard Worker srcs: [ 276*d57664e9SAndroid Build Coastguard Worker ":android-non-updatable-doc-stubs-system{.exportable.annotations.zip}", 277*d57664e9SAndroid Build Coastguard Worker ":all-modules-system-annotations", 278*d57664e9SAndroid Build Coastguard Worker ], 279*d57664e9SAndroid Build Coastguard Worker} 280*d57664e9SAndroid Build Coastguard Worker 281*d57664e9SAndroid Build Coastguard Workerjava_genrule { 282*d57664e9SAndroid Build Coastguard Worker name: "sdk-annotations-module-lib.zip", 283*d57664e9SAndroid Build Coastguard Worker defaults: ["sdk-annotations-defaults"], 284*d57664e9SAndroid Build Coastguard Worker srcs: [ 285*d57664e9SAndroid Build Coastguard Worker ":android-non-updatable-doc-stubs-module-lib{.exportable.annotations.zip}", 286*d57664e9SAndroid Build Coastguard Worker ":all-modules-module-lib-annotations", 287*d57664e9SAndroid Build Coastguard Worker ], 288*d57664e9SAndroid Build Coastguard Worker} 289*d57664e9SAndroid Build Coastguard Worker 290*d57664e9SAndroid Build Coastguard Workerjava_genrule { 291*d57664e9SAndroid Build Coastguard Worker name: "sdk-annotations-system-server.zip", 292*d57664e9SAndroid Build Coastguard Worker defaults: ["sdk-annotations-defaults"], 293*d57664e9SAndroid Build Coastguard Worker srcs: [ 294*d57664e9SAndroid Build Coastguard Worker ":android-non-updatable-doc-stubs-system-server{.exportable.annotations.zip}", 295*d57664e9SAndroid Build Coastguard Worker ":all-modules-system-server-annotations", 296*d57664e9SAndroid Build Coastguard Worker ], 297*d57664e9SAndroid Build Coastguard Worker} 298*d57664e9SAndroid Build Coastguard Worker 299*d57664e9SAndroid Build Coastguard Workerjava_genrule { 300*d57664e9SAndroid Build Coastguard Worker name: "combined-removed-dex", 301*d57664e9SAndroid Build Coastguard Worker visibility: [ 302*d57664e9SAndroid Build Coastguard Worker "//frameworks/base/boot", 303*d57664e9SAndroid Build Coastguard Worker ], 304*d57664e9SAndroid Build Coastguard Worker srcs: [ 305*d57664e9SAndroid Build Coastguard Worker ":frameworks-base-api-removed.txt", 306*d57664e9SAndroid Build Coastguard Worker ":frameworks-base-api-system-removed.txt", 307*d57664e9SAndroid Build Coastguard Worker ":android.car-stubs-docs{.removed-api.txt}", 308*d57664e9SAndroid Build Coastguard Worker ":android.car-system-stubs-docs{.removed-api.txt}", 309*d57664e9SAndroid Build Coastguard Worker ], 310*d57664e9SAndroid Build Coastguard Worker tool_files: ["gen_combined_removed_dex.sh"], 311*d57664e9SAndroid Build Coastguard Worker tools: ["metalava"], 312*d57664e9SAndroid Build Coastguard Worker out: ["combined-removed-dex.txt"], 313*d57664e9SAndroid Build Coastguard Worker cmd: "$(location gen_combined_removed_dex.sh) $(location metalava) $(genDir) $(in) > $(out)", 314*d57664e9SAndroid Build Coastguard Worker} 315*d57664e9SAndroid Build Coastguard Worker 316*d57664e9SAndroid Build Coastguard Workerjava_genrule { 317*d57664e9SAndroid Build Coastguard Worker name: "api_fingerprint", 318*d57664e9SAndroid Build Coastguard Worker srcs: [ 319*d57664e9SAndroid Build Coastguard Worker ":frameworks-base-api-current.txt", 320*d57664e9SAndroid Build Coastguard Worker ":frameworks-base-api-system-current.txt", 321*d57664e9SAndroid Build Coastguard Worker ":frameworks-base-api-module-lib-current.txt", 322*d57664e9SAndroid Build Coastguard Worker ":frameworks-base-api-system-server-current.txt", 323*d57664e9SAndroid Build Coastguard Worker ], 324*d57664e9SAndroid Build Coastguard Worker out: ["api_fingerprint.txt"], 325*d57664e9SAndroid Build Coastguard Worker cmd: "cat $(in) | md5sum | cut -d' ' -f1 > $(out)", 326*d57664e9SAndroid Build Coastguard Worker} 327*d57664e9SAndroid Build Coastguard Worker 328*d57664e9SAndroid Build Coastguard Workerpackages_to_document = [ 329*d57664e9SAndroid Build Coastguard Worker "android", 330*d57664e9SAndroid Build Coastguard Worker "dalvik", 331*d57664e9SAndroid Build Coastguard Worker "java", 332*d57664e9SAndroid Build Coastguard Worker "javax", 333*d57664e9SAndroid Build Coastguard Worker "junit", 334*d57664e9SAndroid Build Coastguard Worker "org.apache.http", 335*d57664e9SAndroid Build Coastguard Worker "org.json", 336*d57664e9SAndroid Build Coastguard Worker "org.w3c.dom", 337*d57664e9SAndroid Build Coastguard Worker "org.xml.sax", 338*d57664e9SAndroid Build Coastguard Worker "org.xmlpull", 339*d57664e9SAndroid Build Coastguard Worker] 340*d57664e9SAndroid Build Coastguard Worker 341*d57664e9SAndroid Build Coastguard Worker// These are libs from framework-internal-utils that are required (i.e. being referenced) 342*d57664e9SAndroid Build Coastguard Worker// from framework-non-updatable-sources. Add more here when there's a need. 343*d57664e9SAndroid Build Coastguard Worker// DO NOT add the entire framework-internal-utils. It might cause unnecessary circular 344*d57664e9SAndroid Build Coastguard Worker// dependencies when the list gets bigger. 345*d57664e9SAndroid Build Coastguard Workerandroid_non_updatable_stubs_libs = [ 346*d57664e9SAndroid Build Coastguard Worker "android.hardware.cas-V1.2-java", 347*d57664e9SAndroid Build Coastguard Worker "android.hardware.health-V1.0-java-constants", 348*d57664e9SAndroid Build Coastguard Worker "android.hardware.thermal-V1.0-java-constants", 349*d57664e9SAndroid Build Coastguard Worker "android.hardware.thermal-V2.0-java", 350*d57664e9SAndroid Build Coastguard Worker "android.hardware.tv.input-V1.0-java-constants", 351*d57664e9SAndroid Build Coastguard Worker "android.hardware.usb-V1.0-java-constants", 352*d57664e9SAndroid Build Coastguard Worker "android.hardware.usb-V1.1-java-constants", 353*d57664e9SAndroid Build Coastguard Worker "android.hardware.usb.gadget-V1.0-java", 354*d57664e9SAndroid Build Coastguard Worker "android.hardware.vibrator-V1.3-java", 355*d57664e9SAndroid Build Coastguard Worker "framework-protos", 356*d57664e9SAndroid Build Coastguard Worker] 357*d57664e9SAndroid Build Coastguard Worker 358*d57664e9SAndroid Build Coastguard Workerjava_defaults { 359*d57664e9SAndroid Build Coastguard Worker name: "android-non-updatable-stubs-libs-defaults", 360*d57664e9SAndroid Build Coastguard Worker libs: android_non_updatable_stubs_libs, 361*d57664e9SAndroid Build Coastguard Worker} 362*d57664e9SAndroid Build Coastguard Worker 363*d57664e9SAndroid Build Coastguard Worker// Defaults for all stubs that include the non-updatable framework. These defaults do not include 364*d57664e9SAndroid Build Coastguard Worker// module symbols, so will not compile correctly on their own. Users must add module APIs to the 365*d57664e9SAndroid Build Coastguard Worker// classpath (or sources) somehow. 366*d57664e9SAndroid Build Coastguard Workerstubs_defaults { 367*d57664e9SAndroid Build Coastguard Worker name: "android-non-updatable-stubs-defaults", 368*d57664e9SAndroid Build Coastguard Worker aconfig_declarations: ["framework-minus-apex-aconfig-declarations"], 369*d57664e9SAndroid Build Coastguard Worker srcs: [":android-non-updatable-stub-sources"], 370*d57664e9SAndroid Build Coastguard Worker sdk_version: "none", 371*d57664e9SAndroid Build Coastguard Worker system_modules: "none", 372*d57664e9SAndroid Build Coastguard Worker java_version: "1.8", 373*d57664e9SAndroid Build Coastguard Worker arg_files: [":frameworks-base-core-AndroidManifest.xml"], 374*d57664e9SAndroid Build Coastguard Worker aidl: { 375*d57664e9SAndroid Build Coastguard Worker include_dirs: [ 376*d57664e9SAndroid Build Coastguard Worker "frameworks/av/aidl", 377*d57664e9SAndroid Build Coastguard Worker "frameworks/base/media/aidl", 378*d57664e9SAndroid Build Coastguard Worker "frameworks/base/telephony/java", 379*d57664e9SAndroid Build Coastguard Worker "frameworks/native/libs/permission/aidl", 380*d57664e9SAndroid Build Coastguard Worker "packages/modules/Bluetooth/framework/aidl-export", 381*d57664e9SAndroid Build Coastguard Worker "packages/modules/Connectivity/framework/aidl-export", 382*d57664e9SAndroid Build Coastguard Worker "packages/modules/Media/apex/aidl/stable", 383*d57664e9SAndroid Build Coastguard Worker "hardware/interfaces/biometrics/common/aidl", 384*d57664e9SAndroid Build Coastguard Worker "hardware/interfaces/biometrics/fingerprint/aidl", 385*d57664e9SAndroid Build Coastguard Worker "hardware/interfaces/common/aidl", 386*d57664e9SAndroid Build Coastguard Worker "hardware/interfaces/common/fmq/aidl", 387*d57664e9SAndroid Build Coastguard Worker "hardware/interfaces/graphics/common/aidl", 388*d57664e9SAndroid Build Coastguard Worker "hardware/interfaces/keymaster/aidl", 389*d57664e9SAndroid Build Coastguard Worker "hardware/interfaces/power/aidl", 390*d57664e9SAndroid Build Coastguard Worker "system/hardware/interfaces/media/aidl", 391*d57664e9SAndroid Build Coastguard Worker ], 392*d57664e9SAndroid Build Coastguard Worker }, 393*d57664e9SAndroid Build Coastguard Worker // These are libs from framework-internal-utils that are required (i.e. being referenced) 394*d57664e9SAndroid Build Coastguard Worker // from framework-non-updatable-sources. Add more here when there's a need. 395*d57664e9SAndroid Build Coastguard Worker // DO NOT add the entire framework-internal-utils. It might cause unnecessary circular 396*d57664e9SAndroid Build Coastguard Worker // dependencies gets bigger. 397*d57664e9SAndroid Build Coastguard Worker libs: android_non_updatable_stubs_libs, 398*d57664e9SAndroid Build Coastguard Worker flags: [ 399*d57664e9SAndroid Build Coastguard Worker "--error NoSettingsProvider", 400*d57664e9SAndroid Build Coastguard Worker "--error UnhiddenSystemApi", 401*d57664e9SAndroid Build Coastguard Worker "--error UnflaggedApi", 402*d57664e9SAndroid Build Coastguard Worker "--error FlaggedApiLiteral", 403*d57664e9SAndroid Build Coastguard Worker "--force-convert-to-warning-nullability-annotations +*:-android.*:+android.icu.*:-dalvik.*", 404*d57664e9SAndroid Build Coastguard Worker // Disable CallbackInterface, as Java 8 default interface methods avoid the extensibility 405*d57664e9SAndroid Build Coastguard Worker // issue interfaces had previously. 406*d57664e9SAndroid Build Coastguard Worker "--hide CallbackInterface", 407*d57664e9SAndroid Build Coastguard Worker // Disable HiddenSuperclass, as Metalava handles this fine (it should be hidden by default) 408*d57664e9SAndroid Build Coastguard Worker "--hide HiddenSuperclass", 409*d57664e9SAndroid Build Coastguard Worker "--manifest $(location :frameworks-base-core-AndroidManifest.xml)", 410*d57664e9SAndroid Build Coastguard Worker ], 411*d57664e9SAndroid Build Coastguard Worker filter_packages: packages_to_document, 412*d57664e9SAndroid Build Coastguard Worker high_mem: true, // Lots of sources => high memory use, see b/170701554 413*d57664e9SAndroid Build Coastguard Worker installable: false, 414*d57664e9SAndroid Build Coastguard Worker annotations_enabled: true, 415*d57664e9SAndroid Build Coastguard Worker merge_annotations_dirs: ["metalava-manual"], 416*d57664e9SAndroid Build Coastguard Worker defaults_visibility: ["//frameworks/base/api"], 417*d57664e9SAndroid Build Coastguard Worker visibility: [ 418*d57664e9SAndroid Build Coastguard Worker "//frameworks/base/api", 419*d57664e9SAndroid Build Coastguard Worker "//frameworks/base/core/api", 420*d57664e9SAndroid Build Coastguard Worker ], 421*d57664e9SAndroid Build Coastguard Worker} 422*d57664e9SAndroid Build Coastguard Worker 423*d57664e9SAndroid Build Coastguard Workersoong_config_module_type { 424*d57664e9SAndroid Build Coastguard Worker name: "non_updatable_exportable_droidstubs", 425*d57664e9SAndroid Build Coastguard Worker module_type: "droidstubs", 426*d57664e9SAndroid Build Coastguard Worker config_namespace: "ANDROID", 427*d57664e9SAndroid Build Coastguard Worker bool_variables: [ 428*d57664e9SAndroid Build Coastguard Worker "release_hidden_api_exportable_stubs", 429*d57664e9SAndroid Build Coastguard Worker ], 430*d57664e9SAndroid Build Coastguard Worker properties: [ 431*d57664e9SAndroid Build Coastguard Worker "dists", 432*d57664e9SAndroid Build Coastguard Worker ], 433*d57664e9SAndroid Build Coastguard Worker} 434*d57664e9SAndroid Build Coastguard Worker 435*d57664e9SAndroid Build Coastguard Worker// We resolve dependencies on APIs in modules by depending on a prebuilt of the whole 436*d57664e9SAndroid Build Coastguard Worker// platform (sdk_system_current_android). That prebuilt does not include module-lib APIs, 437*d57664e9SAndroid Build Coastguard Worker// so use the prebuilt module-lib stubs for modules that export module-lib stubs that the 438*d57664e9SAndroid Build Coastguard Worker// non-updatable part depends on. 439*d57664e9SAndroid Build Coastguard Workernon_updatable_api_deps_on_modules = [ 440*d57664e9SAndroid Build Coastguard Worker "sdk_module-lib_current_framework-tethering", 441*d57664e9SAndroid Build Coastguard Worker "sdk_module-lib_current_framework-connectivity-t", 442*d57664e9SAndroid Build Coastguard Worker "sdk_system_current_android", 443*d57664e9SAndroid Build Coastguard Worker] 444*d57664e9SAndroid Build Coastguard Worker 445*d57664e9SAndroid Build Coastguard Workerjava_defaults { 446*d57664e9SAndroid Build Coastguard Worker name: "module-classpath-java-defaults", 447*d57664e9SAndroid Build Coastguard Worker libs: non_updatable_api_deps_on_modules, 448*d57664e9SAndroid Build Coastguard Worker} 449*d57664e9SAndroid Build Coastguard Worker 450*d57664e9SAndroid Build Coastguard Worker// Defaults with module APIs in the classpath (mostly from prebuilts). 451*d57664e9SAndroid Build Coastguard Worker// Suitable for compiling android-non-updatable. 452*d57664e9SAndroid Build Coastguard Workerstubs_defaults { 453*d57664e9SAndroid Build Coastguard Worker name: "module-classpath-stubs-defaults", 454*d57664e9SAndroid Build Coastguard Worker aidl: { 455*d57664e9SAndroid Build Coastguard Worker include_dirs: [ 456*d57664e9SAndroid Build Coastguard Worker "packages/modules/Bluetooth/framework/aidl-export", 457*d57664e9SAndroid Build Coastguard Worker "packages/modules/Connectivity/framework/aidl-export", 458*d57664e9SAndroid Build Coastguard Worker "packages/modules/Media/apex/aidl/stable", 459*d57664e9SAndroid Build Coastguard Worker ], 460*d57664e9SAndroid Build Coastguard Worker }, 461*d57664e9SAndroid Build Coastguard Worker libs: non_updatable_api_deps_on_modules, 462*d57664e9SAndroid Build Coastguard Worker} 463*d57664e9SAndroid Build Coastguard Worker 464*d57664e9SAndroid Build Coastguard Worker// Defaults for the java_sdk_libraries of unbundled jars from framework. 465*d57664e9SAndroid Build Coastguard Worker// java_sdk_libraries using these defaults should also add themselves to the 466*d57664e9SAndroid Build Coastguard Worker// non_updatable_modules list in frameworks/base/api/api.go 467*d57664e9SAndroid Build Coastguard Workerjava_defaults { 468*d57664e9SAndroid Build Coastguard Worker name: "framework-non-updatable-unbundled-defaults", 469*d57664e9SAndroid Build Coastguard Worker defaults: [ 470*d57664e9SAndroid Build Coastguard Worker "framework-non-updatable-lint-defaults", 471*d57664e9SAndroid Build Coastguard Worker "non-updatable-framework-module-defaults", 472*d57664e9SAndroid Build Coastguard Worker ], 473*d57664e9SAndroid Build Coastguard Worker public: { 474*d57664e9SAndroid Build Coastguard Worker libs: ["android_module_lib_stubs_current"], 475*d57664e9SAndroid Build Coastguard Worker }, 476*d57664e9SAndroid Build Coastguard Worker system: { 477*d57664e9SAndroid Build Coastguard Worker libs: ["android_module_lib_stubs_current"], 478*d57664e9SAndroid Build Coastguard Worker }, 479*d57664e9SAndroid Build Coastguard Worker module_lib: { 480*d57664e9SAndroid Build Coastguard Worker libs: ["android_module_lib_stubs_current"], 481*d57664e9SAndroid Build Coastguard Worker }, 482*d57664e9SAndroid Build Coastguard Worker test: { 483*d57664e9SAndroid Build Coastguard Worker libs: ["android_test_frameworks_core_stubs_current"], 484*d57664e9SAndroid Build Coastguard Worker }, 485*d57664e9SAndroid Build Coastguard Worker sdk_version: "core_platform", 486*d57664e9SAndroid Build Coastguard Worker stub_only_libs: ["framework-protos"], 487*d57664e9SAndroid Build Coastguard Worker impl_only_libs: ["framework-minus-apex-headers"], // the framework, including hidden API 488*d57664e9SAndroid Build Coastguard Worker impl_library_visibility: ["//frameworks/base"], 489*d57664e9SAndroid Build Coastguard Worker defaults_visibility: [ 490*d57664e9SAndroid Build Coastguard Worker "//frameworks/base/location", 491*d57664e9SAndroid Build Coastguard Worker "//frameworks/base/packages/CrashRecovery/framework", 492*d57664e9SAndroid Build Coastguard Worker "//frameworks/base/nfc", 493*d57664e9SAndroid Build Coastguard Worker "//packages/modules/NeuralNetworks:__subpackages__", 494*d57664e9SAndroid Build Coastguard Worker ], 495*d57664e9SAndroid Build Coastguard Worker plugins: ["error_prone_android_framework"], 496*d57664e9SAndroid Build Coastguard Worker errorprone: { 497*d57664e9SAndroid Build Coastguard Worker javacflags: [ 498*d57664e9SAndroid Build Coastguard Worker "-Xep:AndroidFrameworkCompatChange:ERROR", 499*d57664e9SAndroid Build Coastguard Worker "-Xep:AndroidFrameworkUid:ERROR", 500*d57664e9SAndroid Build Coastguard Worker ], 501*d57664e9SAndroid Build Coastguard Worker }, 502*d57664e9SAndroid Build Coastguard Worker // Include manual annotations in API txt files 503*d57664e9SAndroid Build Coastguard Worker merge_annotations_dirs: ["metalava-manual"], 504*d57664e9SAndroid Build Coastguard Worker} 505*d57664e9SAndroid Build Coastguard Worker 506*d57664e9SAndroid Build Coastguard Workerbuild = [ 507*d57664e9SAndroid Build Coastguard Worker "ApiDocs.bp", 508*d57664e9SAndroid Build Coastguard Worker "StubLibraries.bp", 509*d57664e9SAndroid Build Coastguard Worker] 510*d57664e9SAndroid Build Coastguard Worker 511*d57664e9SAndroid Build Coastguard Workergenrule_defaults { 512*d57664e9SAndroid Build Coastguard Worker name: "flag-api-mapping-generation-defaults", 513*d57664e9SAndroid Build Coastguard Worker cmd: "$(location extract-flagged-apis) $(in) $(out)", 514*d57664e9SAndroid Build Coastguard Worker tools: ["extract-flagged-apis"], 515*d57664e9SAndroid Build Coastguard Worker} 516*d57664e9SAndroid Build Coastguard Worker 517*d57664e9SAndroid Build Coastguard Workerjava_genrule { 518*d57664e9SAndroid Build Coastguard Worker name: "flag-api-mapping-PublicApi", 519*d57664e9SAndroid Build Coastguard Worker defaults: ["flag-api-mapping-generation-defaults"], 520*d57664e9SAndroid Build Coastguard Worker srcs: [":frameworks-base-api-current.txt"], 521*d57664e9SAndroid Build Coastguard Worker out: ["flag_api_map.textproto"], 522*d57664e9SAndroid Build Coastguard Worker dist: { 523*d57664e9SAndroid Build Coastguard Worker targets: ["droid"], 524*d57664e9SAndroid Build Coastguard Worker }, 525*d57664e9SAndroid Build Coastguard Worker} 526*d57664e9SAndroid Build Coastguard Worker 527*d57664e9SAndroid Build Coastguard Workerjava_genrule { 528*d57664e9SAndroid Build Coastguard Worker name: "flag-api-mapping-SystemApi", 529*d57664e9SAndroid Build Coastguard Worker defaults: ["flag-api-mapping-generation-defaults"], 530*d57664e9SAndroid Build Coastguard Worker srcs: [":frameworks-base-api-system-current.txt"], 531*d57664e9SAndroid Build Coastguard Worker out: ["system_flag_api_map.textproto"], 532*d57664e9SAndroid Build Coastguard Worker dist: { 533*d57664e9SAndroid Build Coastguard Worker targets: ["droid"], 534*d57664e9SAndroid Build Coastguard Worker }, 535*d57664e9SAndroid Build Coastguard Worker} 536*d57664e9SAndroid Build Coastguard Worker 537*d57664e9SAndroid Build Coastguard Workerjava_genrule { 538*d57664e9SAndroid Build Coastguard Worker name: "flag-api-mapping-ModuleLibApi", 539*d57664e9SAndroid Build Coastguard Worker defaults: ["flag-api-mapping-generation-defaults"], 540*d57664e9SAndroid Build Coastguard Worker srcs: [":frameworks-base-api-module-lib-current.txt"], 541*d57664e9SAndroid Build Coastguard Worker out: ["module_lib_flag_api_map.textproto"], 542*d57664e9SAndroid Build Coastguard Worker dist: { 543*d57664e9SAndroid Build Coastguard Worker targets: ["droid"], 544*d57664e9SAndroid Build Coastguard Worker }, 545*d57664e9SAndroid Build Coastguard Worker} 546*d57664e9SAndroid Build Coastguard Worker 547*d57664e9SAndroid Build Coastguard Workerjava_genrule { 548*d57664e9SAndroid Build Coastguard Worker name: "flag-api-mapping-SystemServerApi", 549*d57664e9SAndroid Build Coastguard Worker defaults: ["flag-api-mapping-generation-defaults"], 550*d57664e9SAndroid Build Coastguard Worker srcs: [":frameworks-base-api-system-server-current.txt"], 551*d57664e9SAndroid Build Coastguard Worker out: ["system_server_flag_api_map.textproto"], 552*d57664e9SAndroid Build Coastguard Worker dist: { 553*d57664e9SAndroid Build Coastguard Worker targets: ["droid"], 554*d57664e9SAndroid Build Coastguard Worker }, 555*d57664e9SAndroid Build Coastguard Worker} 556*d57664e9SAndroid Build Coastguard Worker 557*d57664e9SAndroid Build Coastguard Workerphony_rule { 558*d57664e9SAndroid Build Coastguard Worker name: "checkapi", 559*d57664e9SAndroid Build Coastguard Worker phony_deps: [ 560*d57664e9SAndroid Build Coastguard Worker "frameworks-base-api-current-compat", 561*d57664e9SAndroid Build Coastguard Worker "frameworks-base-api-system-current-compat", 562*d57664e9SAndroid Build Coastguard Worker "frameworks-base-api-module-lib-current-compat", 563*d57664e9SAndroid Build Coastguard Worker ], 564*d57664e9SAndroid Build Coastguard Worker} 565