// // 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 { default_team: "trendy_team_fwk_uwb", default_applicable_licenses: ["Android-Apache-2.0"], } apex_defaults { name: "com.android.uwb-defaults", bootclasspath_fragments: ["com.android.uwb-bootclasspath-fragment"], systemserverclasspath_fragments: ["com.android.uwb-systemserverclasspath-fragment"], multilib: { both: { jni_libs: [ "libuwb_uci_jni_rust", ], }, }, apps: [ "ServiceUwbResources", ], key: "com.android.uwb.key", certificate: ":com.android.uwb.certificate", defaults: ["t-launched-apex-module"], } // Mainline uwb apex module. apex { name: "com.android.uwb", defaults: ["com.android.uwb-defaults"], manifest: "apex_manifest.json", visibility: ["//packages/modules/common/build"], } apex_key { name: "com.android.uwb.key", public_key: "com.android.uwb.avbpubkey", private_key: "com.android.uwb.pem", } android_app_certificate { name: "com.android.uwb.certificate", certificate: "com.android.uwb", } sdk { name: "uwb-module-sdk", apexes: [ // Adds exportable dependencies of the APEX to the sdk, // e.g. *classpath_fragments. "com.android.uwb", ], } soong_config_module_type { name: "custom_bootclasspath_fragment", module_type: "bootclasspath_fragment", config_namespace: "bootclasspath", bool_variables: [ "release_ranging_stack", ], properties: [ "contents", ], } // Encapsulate the contributions made by the com.android.uwb to the bootclasspath. custom_bootclasspath_fragment { name: "com.android.uwb-bootclasspath-fragment", soong_config_variables: { release_ranging_stack: { contents: [ "framework-uwb", "framework-ranging", ], conditions_default: { contents: [ "framework-uwb", ], }, }, }, apex_available: ["com.android.uwb"], // The bootclasspath_fragments that provide APIs on which this depends. fragments: [ { apex: "com.android.art", module: "art-bootclasspath-fragment", }, ], // Additional stubs libraries that this fragment's contents use which are // not provided by another bootclasspath_fragment. additional_stubs: [ "android-non-updatable", ], hidden_api: { // The following packages contain classes from other modules on the // bootclasspath. That means that the hidden API flags for this module // has to explicitly list every single class this module provides in // that package to differentiate them from the classes provided by other // modules. That can include private classes that are not part of the // API. split_packages: [ "android.uwb", "android.ranging", ], // The following packages and all their subpackages currently only // contain classes from this bootclasspath_fragment. Listing a package // here won't prevent other bootclasspath modules from adding classes in // any of those packages but it will prevent them from adding those // classes into an API surface, e.g. public, system, etc.. Doing so will // result in a build failure due to inconsistent flags. package_prefixes: [ "com.android.x", "android.uwb.util", ], }, } soong_config_module_type { name: "custom_systemserverclasspath_fragment", module_type: "systemserverclasspath_fragment", config_namespace: "bootclasspath", bool_variables: [ "release_ranging_stack", ], properties: [ "standalone_contents", ], } custom_systemserverclasspath_fragment { name: "com.android.uwb-systemserverclasspath-fragment", soong_config_variables: { release_ranging_stack: { standalone_contents: [ "service-uwb", "service-ranging", ], conditions_default: { standalone_contents: [ "service-uwb", ], }, }, }, apex_available: ["com.android.uwb"], }