| // 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.appsearch", | 
 |             module: "com.android.appsearch-bootclasspath-fragment", | 
 |         }, | 
 |         { | 
 |             apex: "com.android.art", | 
 |             module: "art-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.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.wifi", | 
 |             module: "com.android.wifi-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", | 
 | } |