package { default_applicable_licenses: ["Android-Apache-2.0"], } java_defaults { name: "bluetooth-module-sdk-version-defaults", min_sdk_version: "Tiramisu", } filegroup { name: "framework-bluetooth-sources", defaults: ["framework-sources-module-defaults"], srcs: [ "java/**/*.aidl", "java/**/*.java", ], path: "java", } // defaults shared between `framework-bluetooth` & `framework-bluetooth-pre-jarjar` // java_sdk_library `framework-bluetooth` needs sources to generate stubs, so it cannot reuse // `framework-bluetooth-pre-jarjar` java_defaults { name: "framework-bluetooth-defaults", defaults: ["bluetooth-module-sdk-version-defaults"], static_libs: [ "PlatformProperties", "modules-utils-synchronous-result-receiver", ], libs: [ "app-compat-annotations", "framework-tethering.stubs.module_lib", "unsupportedappusage", // for android.compat.annotation.UnsupportedAppUsage ], stub_only_libs: ["framework-tethering.stubs.module_lib"], srcs: [ ":framework-bluetooth-sources", ":libbluetooth-binder-aidl", ], } // bluetooth-service needs pre-jarjared version of framework-bluetooth so it can reference copied utility // classes before they are renamed. java_library { name: "framework-bluetooth-pre-jarjar", defaults: ["framework-bluetooth-defaults"], sdk_version: "module_current", libs: ["framework-annotations-lib"], installable: false, } // post-jarjar version of framework-bluetooth java_sdk_library { name: "framework-bluetooth", defaults: [ "framework-bluetooth-defaults", "framework-module-defaults", ], jarjar_rules: ":bluetooth-jarjar-rules", installable: true, optimize: { enabled: false, }, hostdex: true, // for hiddenapi check impl_library_visibility: [ "//external/sl4a/Common", "//frameworks/opt/wear", "//packages/modules/Bluetooth/android/app/tests/unit", "//packages/modules/Bluetooth/framework/tests/bumble", "//packages/modules/Bluetooth/android/pandora/server", "//packages/modules/Bluetooth/service", "//packages/modules/Connectivity/nearby/tests/multidevices/clients/test_support/fastpair_provider", "//packages/services/Car/car-builtin-lib", // TODO(240720385) "//packages/services/Car/tests/carservice_unit_test", ":__subpackages__", ], apex_available: [ "com.android.btservices", ], permitted_packages: [ "android.bluetooth", // Created by jarjar rules. "com.android.bluetooth.x", ], lint: { strict_updatability_linting: true, }, } // defaults for tests that need to build against framework-bluetooths's @hide APIs java_defaults { name: "framework-bluetooth-tests-defaults", sdk_version: "core_platform", libs: [ "app-compat-annotations", // order matters: classes in framework-bluetooth are resolved before framework, meaning // @hide APIs in framework-bluetooth are resolved before @SystemApi stubs in framework "framework-bluetooth.impl", "framework", // if sdk_version="" this gets automatically included, but here we need to add manually. "framework-res", ], defaults_visibility: ["//visibility:public"], } filegroup { name: "bluetooth-jarjar-rules", srcs: ["jarjar-rules.txt"], } java_api_contribution { name: "framework-bluetooth-public-stubs", api_surface: "public", api_file: "api/current.txt", visibility: [ "//build/orchestrator/apis", ], } platform_compat_config { name: "framework-bluetooth-compat-config", src: ":framework-bluetooth", }