• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1package {
2    default_applicable_licenses: ["Android-Apache-2.0"],
3}
4
5java_defaults {
6    name: "bluetooth-module-sdk-version-defaults",
7    min_sdk_version: "current",
8    target_sdk_version: "current",
9}
10
11filegroup {
12    name: "framework-bluetooth-sources",
13    srcs: [
14        "java/**/*.java",
15        "java/**/*.aidl",
16    ],
17    path: "java",
18    visibility: ["//frameworks/base"],
19}
20
21// defaults shared between `framework-bluetooth` & `framework-bluetooth-pre-jarjar`
22// java_sdk_library `framework-bluetooth` needs sources to generate stubs, so it cannot reuse
23// `framework-bluetooth-pre-jarjar`
24java_defaults {
25    name: "framework-bluetooth-defaults",
26    defaults: ["bluetooth-module-sdk-version-defaults"],
27    static_libs: [
28        "modules-utils-synchronous-result-receiver",
29        "PlatformProperties",
30    ],
31    libs: [
32        "framework-tethering.stubs.module_lib",
33        "unsupportedappusage", // for android.compat.annotation.UnsupportedAppUsage
34    ],
35    stub_only_libs: ["framework-tethering.stubs.module_lib"],
36    srcs: [
37        ":framework-bluetooth-sources",
38        ":libbluetooth-binder-aidl",
39    ],
40}
41
42// bluetooth-service needs pre-jarjared version of framework-bluetooth so it can reference copied utility
43// classes before they are renamed.
44java_library {
45    name: "framework-bluetooth-pre-jarjar",
46    defaults: ["framework-bluetooth-defaults"],
47    sdk_version: "module_current",
48    libs: ["framework-annotations-lib"],
49    // java_api_finder must accompany `srcs` (`srcs` defined in `framework-bluetooth-defaults`)
50    plugins: ["java_api_finder"],
51    installable: false,
52}
53
54// post-jarjar version of framework-bluetooth
55java_sdk_library {
56    name: "framework-bluetooth",
57    defaults: [
58        "framework-module-defaults",
59        "framework-bluetooth-defaults",
60    ],
61
62    jarjar_rules: ":bluetooth-jarjar-rules",
63    installable: true,
64    optimize: {
65        enabled: false
66    },
67    hostdex: true, // for hiddenapi check
68
69    impl_library_visibility: [
70        "//external/sl4a/Common",
71        "//frameworks/opt/wear",
72        "//packages/modules/Bluetooth/android/app/tests/unit",
73        "//packages/modules/Bluetooth/android/pandora/server",
74        "//packages/modules/Bluetooth/service",
75        "//packages/modules/Connectivity/nearby/tests/multidevices/clients/test_support/fastpair_provider",
76        "//packages/services/Car/car-builtin-lib",
77        // TODO(240720385)
78        "//packages/services/Car/tests/carservice_unit_test",
79        ":__subpackages__",
80    ],
81
82    apex_available: [
83        "com.android.bluetooth",
84    ],
85
86    permitted_packages: [
87        "android.bluetooth",
88        // Created by jarjar rules.
89        "com.android.bluetooth.x",
90    ],
91    lint: {
92        strict_updatability_linting: true,
93    },
94}
95
96// defaults for tests that need to build against framework-bluetooths's @hide APIs
97java_defaults {
98    name: "framework-bluetooth-tests-defaults",
99    sdk_version: "core_platform",
100    libs: [
101        // order matters: classes in framework-bluetooth are resolved before framework, meaning
102        // @hide APIs in framework-bluetooth are resolved before @SystemApi stubs in framework
103        "framework-bluetooth.impl",
104        "framework",
105
106        // if sdk_version="" this gets automatically included, but here we need to add manually.
107        "framework-res",
108    ],
109    defaults_visibility: ["//visibility:public"],
110}
111
112filegroup {
113    name: "bluetooth-jarjar-rules",
114    srcs: ["jarjar-rules.txt"],
115}
116