| // Copyright (C) 2021 The Android Open Source Project | |
| // | |
| // Licensed under the Apache License, Version 2.0 (the "License"); | |
| // you may not use this file except in compliance with the License. | |
| // You may obtain a copy of the License at | |
| // | |
| // http://www.apache.org/licenses/LICENSE-2.0 | |
| // | |
| // Unless required by applicable law or agreed to in writing, software | |
| // distributed under the License is distributed on an "AS IS" BASIS, | |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| // See the License for the specific language governing permissions and | |
| // limitations under the License. | |
| package { | |
| // See: http://go/android-license-faq | |
| // A large-scale-change added 'default_applicable_licenses' to import | |
| // all of the 'license_kinds' from "frameworks_base_license" | |
| // to get the below license kinds: | |
| // SPDX-license-identifier-Apache-2.0 | |
| // SPDX-license-identifier-MIT | |
| // SPDX-license-identifier-Unicode-DFS | |
| default_applicable_licenses: ["frameworks_base_license"], | |
| } | |
| // This module provides access to information Soong has related to the | |
| // whole platform bootclasspath. Currently, that information is provided solely | |
| // through configuration but additional information will be added here. | |
| // | |
| // This will provide support for the following: | |
| // * Hidden API processing for those parts of the bootclasspath that are not | |
| // part of an APEX. | |
| // * Compatibility checking to ensure that the hidden API bits encoded into the | |
| // dex files by the modularized hidden API processing is compatible with the | |
| // runtimes of earlier releases which expect the bits to have been computed | |
| // over the entirety of the bootclasspath in one go not separately. | |
| // * Dexpreopting apps and other libraries not on the platform bootclasspath. | |
| // * Generating and installing the appropriate files to the device which will | |
| // allow it to generate the bootclasspath related environment variables | |
| // dynamically. | |
| // | |
| // This module needs to be present in the build for the above processing to be | |
| // done correctly. | |
| platform_bootclasspath { | |
| name: "platform-bootclasspath", | |
| // The bootclasspath_fragments that contribute to the platform | |
| // bootclasspath. | |
| fragments: [ | |
| { | |
| apex: "com.android.adservices", | |
| module: "com.android.adservices-bootclasspath-fragment", | |
| }, | |
| { | |
| apex: "com.android.appsearch", | |
| module: "com.android.appsearch-bootclasspath-fragment", | |
| }, | |
| { | |
| apex: "com.android.art", | |
| module: "art-bootclasspath-fragment", | |
| }, | |
| { | |
| apex: "com.android.btservices", | |
| module: "com.android.btservices-bootclasspath-fragment", | |
| }, | |
| { | |
| apex: "com.android.conscrypt", | |
| module: "com.android.conscrypt-bootclasspath-fragment", | |
| }, | |
| { | |
| apex: "com.android.i18n", | |
| module: "i18n-bootclasspath-fragment", | |
| }, | |
| { | |
| apex: "com.android.ipsec", | |
| module: "com.android.ipsec-bootclasspath-fragment", | |
| }, | |
| { | |
| apex: "com.android.media", | |
| module: "com.android.media-bootclasspath-fragment", | |
| }, | |
| { | |
| apex: "com.android.mediaprovider", | |
| module: "com.android.mediaprovider-bootclasspath-fragment", | |
| }, | |
| { | |
| apex: "com.android.ondevicepersonalization", | |
| module: "com.android.ondevicepersonalization-bootclasspath-fragment", | |
| }, | |
| { | |
| apex: "com.android.os.statsd", | |
| module: "com.android.os.statsd-bootclasspath-fragment", | |
| }, | |
| { | |
| apex: "com.android.permission", | |
| module: "com.android.permission-bootclasspath-fragment", | |
| }, | |
| { | |
| apex: "com.android.scheduling", | |
| module: "com.android.scheduling-bootclasspath-fragment", | |
| }, | |
| { | |
| apex: "com.android.sdkext", | |
| module: "com.android.sdkext-bootclasspath-fragment", | |
| }, | |
| { | |
| apex: "com.android.tethering", | |
| module: "com.android.tethering-bootclasspath-fragment", | |
| }, | |
| { | |
| apex: "com.android.uwb", | |
| module: "com.android.uwb-bootclasspath-fragment", | |
| }, | |
| { | |
| apex: "com.android.wifi", | |
| module: "com.android.wifi-bootclasspath-fragment", | |
| }, | |
| // only used for auto | |
| { | |
| apex: "com.android.car.framework", | |
| module: "com.android.car.framework-bootclasspath-fragment", | |
| }, | |
| { | |
| apex: "com.android.virt", | |
| module: "com.android.virt-bootclasspath-fragment", | |
| }, | |
| ], | |
| // Additional information needed by hidden api processing. | |
| hidden_api: { | |
| unsupported: [ | |
| "hiddenapi/hiddenapi-unsupported.txt", | |
| ], | |
| removed: [ | |
| ":combined-removed-dex", | |
| ], | |
| max_target_r_low_priority: [ | |
| "hiddenapi/hiddenapi-max-target-r-loprio.txt", | |
| ], | |
| max_target_q: [ | |
| "hiddenapi/hiddenapi-max-target-q.txt", | |
| ], | |
| max_target_p: [ | |
| "hiddenapi/hiddenapi-max-target-p.txt", | |
| ], | |
| max_target_o_low_priority: [ | |
| "hiddenapi/hiddenapi-max-target-o.txt", | |
| ], | |
| unsupported_packages: [ | |
| "hiddenapi/hiddenapi-unsupported-packages.txt", | |
| ], | |
| }, | |
| dists: [ | |
| { | |
| targets: ["droidcore"], | |
| tag: "hiddenapi-flags.csv", | |
| }, | |
| { | |
| targets: ["droidcore"], | |
| tag: "hiddenapi-index.csv", | |
| }, | |
| { | |
| targets: ["droidcore"], | |
| tag: "hiddenapi-metadata.csv", | |
| // Legacy name | |
| dest: "hiddenapi-unsupported.csv", | |
| }, | |
| ], | |
| required: [ | |
| "platform-systemserverclasspath", | |
| ], | |
| } | |
| platform_systemserverclasspath { | |
| name: "platform-systemserverclasspath", | |
| } |