package { // See: http://go/android-license-faq // A large-scale-change added 'default_applicable_licenses' to import // all of the 'license_kinds' from "system_bt_license" // to get the below license kinds: // SPDX-license-identifier-Apache-2.0 default_applicable_licenses: ["system_bt_license"], } linker_config { name: "btservices-linker-config", src: "linker.config.json", installable: false, } // Mainline bluetooth apex module (legacy, do not use). // TODO: Remove apex { name: "com.android.bluetooth", defaults: ["t-launched-apex-module"], manifest: "apex_manifest.json", bootclasspath_fragments: ["com.android.btservices-bootclasspath-fragment"], systemserverclasspath_fragments: ["com.android.btservices-systemserverclasspath-fragment"], compat_configs: ["bluetooth-compat-config"], key: "com.android.btservices.key", certificate: ":com.android.btservices.certificate", updatable: false, compressible: false, } // Mainline bluetooth apex module. apex { name: "com.android.btservices", defaults: ["t-launched-apex-module"], manifest: "apex_manifest.json", bootclasspath_fragments: ["com.android.btservices-bootclasspath-fragment"], systemserverclasspath_fragments: ["com.android.btservices-systemserverclasspath-fragment"], compat_configs: ["bluetooth-compat-config"], apps: ["Bluetooth"], multilib: { first: { // Extractor process runs only with the primary ABI. jni_libs: [ "libbluetooth_jni", ], }, }, prebuilts: [ "audio_set_configurations_bfbs", "audio_set_configurations_json", "audio_set_scenarios_bfbs", "audio_set_scenarios_json", "btservices-linker-config", "bt_did.conf", "bt_stack.conf", "privapp_allowlist_com.android.bluetooth.xml", ], key: "com.android.btservices.key", certificate: ":com.android.btservices.certificate", updatable: false, compressible: false, } apex_key { name: "com.android.btservices.key", public_key: "com.android.btservices.avbpubkey", private_key: "com.android.btservices.pem", } android_app_certificate { name: "com.android.btservices.certificate", certificate: "com.android.btservices", } sdk { name: "btservices-module-sdk", bootclasspath_fragments: ["com.android.btservices-bootclasspath-fragment"], systemserverclasspath_fragments: ["com.android.btservices-systemserverclasspath-fragment"], } // Encapsulate the contributions made by the com.android.bluetooth to the bootclasspath. bootclasspath_fragment { name: "com.android.btservices-bootclasspath-fragment", contents: ["framework-bluetooth"], apex_available: ["com.android.bluetooth"], // 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", ], // Additional hidden API flag files to override the defaults. This must only be // modified by the Soong or platform compat team. hidden_api: { max_target_o_low_priority: ["hiddenapi/hiddenapi-max-target-o-low-priority.txt"], max_target_r_low_priority: ["hiddenapi/hiddenapi-max-target-r-low-priority.txt"], unsupported: ["hiddenapi/hiddenapi-unsupported.txt"], // 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.bluetooth", ], // 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: [ "android.bluetooth.le", "com.android.bluetooth", ], }, } systemserverclasspath_fragment { name: "com.android.btservices-systemserverclasspath-fragment", standalone_contents: ["service-bluetooth"], apex_available: ["com.android.bluetooth"], }