1*d57664e9SAndroid Build Coastguard Worker// Copyright (C) 2021 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 // See: http://go/android-license-faq 17*d57664e9SAndroid Build Coastguard Worker // A large-scale-change added 'default_applicable_licenses' to import 18*d57664e9SAndroid Build Coastguard Worker // all of the 'license_kinds' from "frameworks_base_license" 19*d57664e9SAndroid Build Coastguard Worker // to get the below license kinds: 20*d57664e9SAndroid Build Coastguard Worker // SPDX-license-identifier-Apache-2.0 21*d57664e9SAndroid Build Coastguard Worker // SPDX-license-identifier-MIT 22*d57664e9SAndroid Build Coastguard Worker // SPDX-license-identifier-Unicode-DFS 23*d57664e9SAndroid Build Coastguard Worker default_applicable_licenses: ["frameworks_base_license"], 24*d57664e9SAndroid Build Coastguard Worker} 25*d57664e9SAndroid Build Coastguard Worker 26*d57664e9SAndroid Build Coastguard Workersoong_config_module_type { 27*d57664e9SAndroid Build Coastguard Worker name: "custom_platform_bootclasspath", 28*d57664e9SAndroid Build Coastguard Worker module_type: "platform_bootclasspath", 29*d57664e9SAndroid Build Coastguard Worker config_namespace: "bootclasspath", 30*d57664e9SAndroid Build Coastguard Worker bool_variables: [ 31*d57664e9SAndroid Build Coastguard Worker "car_bootclasspath_fragment", 32*d57664e9SAndroid Build Coastguard Worker "nfc_apex_bootclasspath_fragment", 33*d57664e9SAndroid Build Coastguard Worker "release_crashrecovery_module", 34*d57664e9SAndroid Build Coastguard Worker "release_ondevice_intelligence_module", 35*d57664e9SAndroid Build Coastguard Worker "release_package_profiling_module", 36*d57664e9SAndroid Build Coastguard Worker ], 37*d57664e9SAndroid Build Coastguard Worker properties: [ 38*d57664e9SAndroid Build Coastguard Worker "fragments", 39*d57664e9SAndroid Build Coastguard Worker ], 40*d57664e9SAndroid Build Coastguard Worker} 41*d57664e9SAndroid Build Coastguard Worker 42*d57664e9SAndroid Build Coastguard Worker// This module provides access to information Soong has related to the 43*d57664e9SAndroid Build Coastguard Worker// whole platform bootclasspath. Currently, that information is provided solely 44*d57664e9SAndroid Build Coastguard Worker// through configuration but additional information will be added here. 45*d57664e9SAndroid Build Coastguard Worker// 46*d57664e9SAndroid Build Coastguard Worker// This will provide support for the following: 47*d57664e9SAndroid Build Coastguard Worker// * Hidden API processing for those parts of the bootclasspath that are not 48*d57664e9SAndroid Build Coastguard Worker// part of an APEX. 49*d57664e9SAndroid Build Coastguard Worker// * Compatibility checking to ensure that the hidden API bits encoded into the 50*d57664e9SAndroid Build Coastguard Worker// dex files by the modularized hidden API processing is compatible with the 51*d57664e9SAndroid Build Coastguard Worker// runtimes of earlier releases which expect the bits to have been computed 52*d57664e9SAndroid Build Coastguard Worker// over the entirety of the bootclasspath in one go not separately. 53*d57664e9SAndroid Build Coastguard Worker// * Dexpreopting apps and other libraries not on the platform bootclasspath. 54*d57664e9SAndroid Build Coastguard Worker// * Generating and installing the appropriate files to the device which will 55*d57664e9SAndroid Build Coastguard Worker// allow it to generate the bootclasspath related environment variables 56*d57664e9SAndroid Build Coastguard Worker// dynamically. 57*d57664e9SAndroid Build Coastguard Worker// 58*d57664e9SAndroid Build Coastguard Worker// This module needs to be present in the build for the above processing to be 59*d57664e9SAndroid Build Coastguard Worker// done correctly. 60*d57664e9SAndroid Build Coastguard Workercustom_platform_bootclasspath { 61*d57664e9SAndroid Build Coastguard Worker name: "platform-bootclasspath", 62*d57664e9SAndroid Build Coastguard Worker 63*d57664e9SAndroid Build Coastguard Worker // The bootclasspath_fragments that contribute to the platform 64*d57664e9SAndroid Build Coastguard Worker // bootclasspath. 65*d57664e9SAndroid Build Coastguard Worker fragments: [ 66*d57664e9SAndroid Build Coastguard Worker { 67*d57664e9SAndroid Build Coastguard Worker apex: "com.android.adservices", 68*d57664e9SAndroid Build Coastguard Worker module: "com.android.adservices-bootclasspath-fragment", 69*d57664e9SAndroid Build Coastguard Worker }, 70*d57664e9SAndroid Build Coastguard Worker { 71*d57664e9SAndroid Build Coastguard Worker apex: "com.android.appsearch", 72*d57664e9SAndroid Build Coastguard Worker module: "com.android.appsearch-bootclasspath-fragment", 73*d57664e9SAndroid Build Coastguard Worker }, 74*d57664e9SAndroid Build Coastguard Worker { 75*d57664e9SAndroid Build Coastguard Worker apex: "com.android.art", 76*d57664e9SAndroid Build Coastguard Worker module: "art-bootclasspath-fragment", 77*d57664e9SAndroid Build Coastguard Worker }, 78*d57664e9SAndroid Build Coastguard Worker { 79*d57664e9SAndroid Build Coastguard Worker apex: "com.android.btservices", 80*d57664e9SAndroid Build Coastguard Worker module: "com.android.btservices-bootclasspath-fragment", 81*d57664e9SAndroid Build Coastguard Worker }, 82*d57664e9SAndroid Build Coastguard Worker { 83*d57664e9SAndroid Build Coastguard Worker apex: "com.android.configinfrastructure", 84*d57664e9SAndroid Build Coastguard Worker module: "com.android.configinfrastructure-bootclasspath-fragment", 85*d57664e9SAndroid Build Coastguard Worker }, 86*d57664e9SAndroid Build Coastguard Worker { 87*d57664e9SAndroid Build Coastguard Worker apex: "com.android.conscrypt", 88*d57664e9SAndroid Build Coastguard Worker module: "com.android.conscrypt-bootclasspath-fragment", 89*d57664e9SAndroid Build Coastguard Worker }, 90*d57664e9SAndroid Build Coastguard Worker { 91*d57664e9SAndroid Build Coastguard Worker apex: "com.android.devicelock", 92*d57664e9SAndroid Build Coastguard Worker module: "com.android.devicelock-bootclasspath-fragment", 93*d57664e9SAndroid Build Coastguard Worker }, 94*d57664e9SAndroid Build Coastguard Worker { 95*d57664e9SAndroid Build Coastguard Worker apex: "com.android.healthfitness", 96*d57664e9SAndroid Build Coastguard Worker module: "com.android.healthfitness-bootclasspath-fragment", 97*d57664e9SAndroid Build Coastguard Worker }, 98*d57664e9SAndroid Build Coastguard Worker { 99*d57664e9SAndroid Build Coastguard Worker apex: "com.android.i18n", 100*d57664e9SAndroid Build Coastguard Worker module: "i18n-bootclasspath-fragment", 101*d57664e9SAndroid Build Coastguard Worker }, 102*d57664e9SAndroid Build Coastguard Worker { 103*d57664e9SAndroid Build Coastguard Worker apex: "com.android.ipsec", 104*d57664e9SAndroid Build Coastguard Worker module: "com.android.ipsec-bootclasspath-fragment", 105*d57664e9SAndroid Build Coastguard Worker }, 106*d57664e9SAndroid Build Coastguard Worker { 107*d57664e9SAndroid Build Coastguard Worker apex: "com.android.media", 108*d57664e9SAndroid Build Coastguard Worker module: "com.android.media-bootclasspath-fragment", 109*d57664e9SAndroid Build Coastguard Worker }, 110*d57664e9SAndroid Build Coastguard Worker { 111*d57664e9SAndroid Build Coastguard Worker apex: "com.android.mediaprovider", 112*d57664e9SAndroid Build Coastguard Worker module: "com.android.mediaprovider-bootclasspath-fragment", 113*d57664e9SAndroid Build Coastguard Worker }, 114*d57664e9SAndroid Build Coastguard Worker { 115*d57664e9SAndroid Build Coastguard Worker apex: "com.android.ondevicepersonalization", 116*d57664e9SAndroid Build Coastguard Worker module: "com.android.ondevicepersonalization-bootclasspath-fragment", 117*d57664e9SAndroid Build Coastguard Worker }, 118*d57664e9SAndroid Build Coastguard Worker { 119*d57664e9SAndroid Build Coastguard Worker apex: "com.android.os.statsd", 120*d57664e9SAndroid Build Coastguard Worker module: "com.android.os.statsd-bootclasspath-fragment", 121*d57664e9SAndroid Build Coastguard Worker }, 122*d57664e9SAndroid Build Coastguard Worker { 123*d57664e9SAndroid Build Coastguard Worker apex: "com.android.permission", 124*d57664e9SAndroid Build Coastguard Worker module: "com.android.permission-bootclasspath-fragment", 125*d57664e9SAndroid Build Coastguard Worker }, 126*d57664e9SAndroid Build Coastguard Worker { 127*d57664e9SAndroid Build Coastguard Worker apex: "com.android.scheduling", 128*d57664e9SAndroid Build Coastguard Worker module: "com.android.scheduling-bootclasspath-fragment", 129*d57664e9SAndroid Build Coastguard Worker }, 130*d57664e9SAndroid Build Coastguard Worker { 131*d57664e9SAndroid Build Coastguard Worker apex: "com.android.sdkext", 132*d57664e9SAndroid Build Coastguard Worker module: "com.android.sdkext-bootclasspath-fragment", 133*d57664e9SAndroid Build Coastguard Worker }, 134*d57664e9SAndroid Build Coastguard Worker { 135*d57664e9SAndroid Build Coastguard Worker apex: "com.android.tethering", 136*d57664e9SAndroid Build Coastguard Worker module: "com.android.tethering-bootclasspath-fragment", 137*d57664e9SAndroid Build Coastguard Worker }, 138*d57664e9SAndroid Build Coastguard Worker { 139*d57664e9SAndroid Build Coastguard Worker apex: "com.android.uwb", 140*d57664e9SAndroid Build Coastguard Worker module: "com.android.uwb-bootclasspath-fragment", 141*d57664e9SAndroid Build Coastguard Worker }, 142*d57664e9SAndroid Build Coastguard Worker { 143*d57664e9SAndroid Build Coastguard Worker apex: "com.android.wifi", 144*d57664e9SAndroid Build Coastguard Worker module: "com.android.wifi-bootclasspath-fragment", 145*d57664e9SAndroid Build Coastguard Worker }, 146*d57664e9SAndroid Build Coastguard Worker { 147*d57664e9SAndroid Build Coastguard Worker apex: "com.android.virt", 148*d57664e9SAndroid Build Coastguard Worker module: "com.android.virt-bootclasspath-fragment", 149*d57664e9SAndroid Build Coastguard Worker }, 150*d57664e9SAndroid Build Coastguard Worker ], 151*d57664e9SAndroid Build Coastguard Worker 152*d57664e9SAndroid Build Coastguard Worker soong_config_variables: { 153*d57664e9SAndroid Build Coastguard Worker car_bootclasspath_fragment: { 154*d57664e9SAndroid Build Coastguard Worker fragments: [ 155*d57664e9SAndroid Build Coastguard Worker // only used for auto 156*d57664e9SAndroid Build Coastguard Worker { 157*d57664e9SAndroid Build Coastguard Worker apex: "com.android.car.framework", 158*d57664e9SAndroid Build Coastguard Worker module: "com.android.car.framework-bootclasspath-fragment", 159*d57664e9SAndroid Build Coastguard Worker }, 160*d57664e9SAndroid Build Coastguard Worker ], 161*d57664e9SAndroid Build Coastguard Worker }, 162*d57664e9SAndroid Build Coastguard Worker nfc_apex_bootclasspath_fragment: { 163*d57664e9SAndroid Build Coastguard Worker fragments: [ 164*d57664e9SAndroid Build Coastguard Worker // only used if NFC mainline is enabled. 165*d57664e9SAndroid Build Coastguard Worker { 166*d57664e9SAndroid Build Coastguard Worker apex: "com.android.nfcservices", 167*d57664e9SAndroid Build Coastguard Worker module: "com.android.nfcservices-bootclasspath-fragment", 168*d57664e9SAndroid Build Coastguard Worker }, 169*d57664e9SAndroid Build Coastguard Worker ], 170*d57664e9SAndroid Build Coastguard Worker }, 171*d57664e9SAndroid Build Coastguard Worker release_crashrecovery_module: { 172*d57664e9SAndroid Build Coastguard Worker fragments: [ 173*d57664e9SAndroid Build Coastguard Worker // only used when crashrecovery is enabled 174*d57664e9SAndroid Build Coastguard Worker { 175*d57664e9SAndroid Build Coastguard Worker apex: "com.android.crashrecovery", 176*d57664e9SAndroid Build Coastguard Worker module: "com.android.crashrecovery-bootclasspath-fragment", 177*d57664e9SAndroid Build Coastguard Worker }, 178*d57664e9SAndroid Build Coastguard Worker ], 179*d57664e9SAndroid Build Coastguard Worker }, 180*d57664e9SAndroid Build Coastguard Worker release_ondevice_intelligence_module: { 181*d57664e9SAndroid Build Coastguard Worker fragments: [ 182*d57664e9SAndroid Build Coastguard Worker // only used when ondeviceintelligence is moved to neuralnetworks module 183*d57664e9SAndroid Build Coastguard Worker { 184*d57664e9SAndroid Build Coastguard Worker apex: "com.android.neuralnetworks", 185*d57664e9SAndroid Build Coastguard Worker module: "com.android.ondeviceintelligence-bootclasspath-fragment", 186*d57664e9SAndroid Build Coastguard Worker }, 187*d57664e9SAndroid Build Coastguard Worker ], 188*d57664e9SAndroid Build Coastguard Worker }, 189*d57664e9SAndroid Build Coastguard Worker release_package_profiling_module: { 190*d57664e9SAndroid Build Coastguard Worker fragments: [ 191*d57664e9SAndroid Build Coastguard Worker // only used if profiling is enabled. 192*d57664e9SAndroid Build Coastguard Worker { 193*d57664e9SAndroid Build Coastguard Worker apex: "com.android.profiling", 194*d57664e9SAndroid Build Coastguard Worker module: "com.android.profiling-bootclasspath-fragment", 195*d57664e9SAndroid Build Coastguard Worker }, 196*d57664e9SAndroid Build Coastguard Worker ], 197*d57664e9SAndroid Build Coastguard Worker }, 198*d57664e9SAndroid Build Coastguard Worker }, 199*d57664e9SAndroid Build Coastguard Worker 200*d57664e9SAndroid Build Coastguard Worker // Additional information needed by hidden api processing. 201*d57664e9SAndroid Build Coastguard Worker hidden_api: { 202*d57664e9SAndroid Build Coastguard Worker unsupported: [ 203*d57664e9SAndroid Build Coastguard Worker "hiddenapi/hiddenapi-unsupported.txt", 204*d57664e9SAndroid Build Coastguard Worker ], 205*d57664e9SAndroid Build Coastguard Worker removed: [ 206*d57664e9SAndroid Build Coastguard Worker ":combined-removed-dex", 207*d57664e9SAndroid Build Coastguard Worker ], 208*d57664e9SAndroid Build Coastguard Worker max_target_r_low_priority: [ 209*d57664e9SAndroid Build Coastguard Worker "hiddenapi/hiddenapi-max-target-r-loprio.txt", 210*d57664e9SAndroid Build Coastguard Worker ], 211*d57664e9SAndroid Build Coastguard Worker max_target_q: [ 212*d57664e9SAndroid Build Coastguard Worker "hiddenapi/hiddenapi-max-target-q.txt", 213*d57664e9SAndroid Build Coastguard Worker ], 214*d57664e9SAndroid Build Coastguard Worker max_target_p: [ 215*d57664e9SAndroid Build Coastguard Worker "hiddenapi/hiddenapi-max-target-p.txt", 216*d57664e9SAndroid Build Coastguard Worker ], 217*d57664e9SAndroid Build Coastguard Worker max_target_o_low_priority: [ 218*d57664e9SAndroid Build Coastguard Worker "hiddenapi/hiddenapi-max-target-o.txt", 219*d57664e9SAndroid Build Coastguard Worker ], 220*d57664e9SAndroid Build Coastguard Worker unsupported_packages: [ 221*d57664e9SAndroid Build Coastguard Worker "hiddenapi/hiddenapi-unsupported-packages.txt", 222*d57664e9SAndroid Build Coastguard Worker ], 223*d57664e9SAndroid Build Coastguard Worker }, 224*d57664e9SAndroid Build Coastguard Worker 225*d57664e9SAndroid Build Coastguard Worker dists: [ 226*d57664e9SAndroid Build Coastguard Worker { 227*d57664e9SAndroid Build Coastguard Worker targets: ["droidcore"], 228*d57664e9SAndroid Build Coastguard Worker tag: "hiddenapi-flags.csv", 229*d57664e9SAndroid Build Coastguard Worker }, 230*d57664e9SAndroid Build Coastguard Worker { 231*d57664e9SAndroid Build Coastguard Worker targets: ["droidcore"], 232*d57664e9SAndroid Build Coastguard Worker tag: "hiddenapi-index.csv", 233*d57664e9SAndroid Build Coastguard Worker }, 234*d57664e9SAndroid Build Coastguard Worker { 235*d57664e9SAndroid Build Coastguard Worker targets: ["droidcore"], 236*d57664e9SAndroid Build Coastguard Worker tag: "hiddenapi-metadata.csv", 237*d57664e9SAndroid Build Coastguard Worker // Legacy name 238*d57664e9SAndroid Build Coastguard Worker dest: "hiddenapi-unsupported.csv", 239*d57664e9SAndroid Build Coastguard Worker }, 240*d57664e9SAndroid Build Coastguard Worker ], 241*d57664e9SAndroid Build Coastguard Worker 242*d57664e9SAndroid Build Coastguard Worker required: [ 243*d57664e9SAndroid Build Coastguard Worker "platform-systemserverclasspath", 244*d57664e9SAndroid Build Coastguard Worker ], 245*d57664e9SAndroid Build Coastguard Worker} 246*d57664e9SAndroid Build Coastguard Worker 247*d57664e9SAndroid Build Coastguard Workerjava_genrule { // This module exists to make the srcjar output available to Make. 248*d57664e9SAndroid Build Coastguard Worker name: "platform-bootclasspath.srcjar", 249*d57664e9SAndroid Build Coastguard Worker srcs: [":platform-bootclasspath{.srcjar}"], 250*d57664e9SAndroid Build Coastguard Worker out: ["platform-bootclasspath.srcjar"], 251*d57664e9SAndroid Build Coastguard Worker cmd: "cp $(in) $(out)", 252*d57664e9SAndroid Build Coastguard Worker} 253*d57664e9SAndroid Build Coastguard Worker 254*d57664e9SAndroid Build Coastguard Workerplatform_systemserverclasspath { 255*d57664e9SAndroid Build Coastguard Worker name: "platform-systemserverclasspath", 256*d57664e9SAndroid Build Coastguard Worker} 257