blob: d4e26b28a68b5fff1f58c26904de460d42fbba8f [file] [log] [blame]
Bob Badour92ecf7c2021-02-12 18:05:29 -08001package {
2 // See: http://go/android-license-faq
3 // A large-scale-change added 'default_applicable_licenses' to import
4 // all of the 'license_kinds' from "system_bt_license"
5 // to get the below license kinds:
6 // SPDX-license-identifier-Apache-2.0
7 default_applicable_licenses: ["system_bt_license"],
8}
9
William Escandebb37c5a2022-04-28 13:37:11 -070010linker_config {
William Escande8e1ae012022-06-22 13:13:42 -070011 name: "btservices-linker-config",
William Escandebb37c5a2022-04-28 13:37:11 -070012 src: "linker.config.json",
13 installable: false,
14}
15
Oriol Prieto Gascoecb4b3a2022-06-17 18:31:43 +000016// Mainline bluetooth apex module.
17apex {
18 name: "com.android.btservices",
19 defaults: ["t-launched-apex-module"],
20 manifest: "apex_manifest.json",
William Escande8e1ae012022-06-22 13:13:42 -070021 bootclasspath_fragments: ["com.android.btservices-bootclasspath-fragment"],
22 systemserverclasspath_fragments: ["com.android.btservices-systemserverclasspath-fragment"],
Hui Penga1850692023-01-17 09:08:12 +000023 compat_configs: [
24 "bluetooth-compat-config",
David Duarte974b0e52023-03-29 20:46:09 +000025 "bluetoothapk-platform-compat-config",
William Escande35255402023-04-07 05:46:23 -070026 "framework-bluetooth-compat-config",
Hui Penga1850692023-01-17 09:08:12 +000027 ],
Oriol Prieto Gascoecb4b3a2022-06-17 18:31:43 +000028 apps: ["Bluetooth"],
29
30 multilib: {
31 first: {
32 // Extractor process runs only with the primary ABI.
33 jni_libs: [
34 "libbluetooth_jni",
35 ],
36 },
37 },
38
39 prebuilts: [
40 "audio_set_configurations_bfbs",
41 "audio_set_configurations_json",
42 "audio_set_scenarios_bfbs",
43 "audio_set_scenarios_json",
Oriol Prieto Gascoecb4b3a2022-06-17 18:31:43 +000044 "bt_did.conf",
45 "bt_stack.conf",
William Escande35255402023-04-07 05:46:23 -070046 "btservices-linker-config",
Nitin Shivpure7ab958e2022-10-25 20:32:35 +053047 "interop_database.conf",
Oriol Prieto Gascoecb4b3a2022-06-17 18:31:43 +000048 "privapp_allowlist_com.android.bluetooth.xml",
49 ],
50 key: "com.android.btservices.key",
51 certificate: ":com.android.btservices.certificate",
Oriol Prieto Gasco4c187da2022-07-07 20:27:56 +000052 updatable: true,
Oriol Prieto Gascoecb4b3a2022-06-17 18:31:43 +000053 compressible: false,
Roopa Sattiraju1e7b3812022-02-03 09:13:02 -080054}
55
Zach Johnson7f1c87e2019-11-09 18:24:47 -080056apex_key {
Oriol Prieto Gascoecb4b3a2022-06-17 18:31:43 +000057 name: "com.android.btservices.key",
58 public_key: "com.android.btservices.avbpubkey",
59 private_key: "com.android.btservices.pem",
Zach Johnson7f1c87e2019-11-09 18:24:47 -080060}
61
62android_app_certificate {
Oriol Prieto Gascoecb4b3a2022-06-17 18:31:43 +000063 name: "com.android.btservices.certificate",
64 certificate: "com.android.btservices",
Zach Johnson7f1c87e2019-11-09 18:24:47 -080065}
Roopa Sattiraju1e7b3812022-02-03 09:13:02 -080066
67sdk {
William Escande8e1ae012022-06-22 13:13:42 -070068 name: "btservices-module-sdk",
Paul Duffin548f8842022-07-16 01:12:36 +000069 apexes: [
70 // Adds exportable dependencies of the APEX to the sdk,
71 // e.g. *classpath_fragments.
72 "com.android.btservices",
73 ],
Roopa Sattiraju1e7b3812022-02-03 09:13:02 -080074}
75
76// Encapsulate the contributions made by the com.android.bluetooth to the bootclasspath.
77bootclasspath_fragment {
William Escande8e1ae012022-06-22 13:13:42 -070078 name: "com.android.btservices-bootclasspath-fragment",
Roopa Sattiraju1e7b3812022-02-03 09:13:02 -080079 contents: ["framework-bluetooth"],
William Escande64949f02022-08-22 11:27:59 -070080 apex_available: ["com.android.btservices"],
Roopa Sattiraju1e7b3812022-02-03 09:13:02 -080081
82 // The bootclasspath_fragments that provide APIs on which this depends.
83 fragments: [
84 {
85 apex: "com.android.art",
86 module: "art-bootclasspath-fragment",
87 },
88 ],
89
90 // Additional stubs libraries that this fragment's contents use which are
91 // not provided by another bootclasspath_fragment.
92 additional_stubs: [
93 "android-non-updatable",
94 ],
95
96 // Additional hidden API flag files to override the defaults. This must only be
97 // modified by the Soong or platform compat team.
98 hidden_api: {
99 max_target_o_low_priority: ["hiddenapi/hiddenapi-max-target-o-low-priority.txt"],
100 max_target_r_low_priority: ["hiddenapi/hiddenapi-max-target-r-low-priority.txt"],
101 unsupported: ["hiddenapi/hiddenapi-unsupported.txt"],
Paul Duffin4f29e5f2022-03-31 12:46:11 +0000102
103 // The following packages contain classes from other modules on the
104 // bootclasspath. That means that the hidden API flags for this module
105 // has to explicitly list every single class this module provides in
106 // that package to differentiate them from the classes provided by other
107 // modules. That can include private classes that are not part of the
108 // API.
109 split_packages: [
110 "android.bluetooth",
111 ],
112
113 // The following packages and all their subpackages currently only
114 // contain classes from this bootclasspath_fragment. Listing a package
115 // here won't prevent other bootclasspath modules from adding classes in
116 // any of those packages but it will prevent them from adding those
117 // classes into an API surface, e.g. public, system, etc.. Doing so will
118 // result in a build failure due to inconsistent flags.
119 package_prefixes: [
120 "android.bluetooth.le",
121 "com.android.bluetooth",
122 ],
Roopa Sattiraju1e7b3812022-02-03 09:13:02 -0800123 },
124
125}
126
127systemserverclasspath_fragment {
William Escande8e1ae012022-06-22 13:13:42 -0700128 name: "com.android.btservices-systemserverclasspath-fragment",
Roopa Sattiraju1e7b3812022-02-03 09:13:02 -0800129 standalone_contents: ["service-bluetooth"],
William Escande64949f02022-08-22 11:27:59 -0700130 apex_available: ["com.android.btservices"],
Roopa Sattiraju1e7b3812022-02-03 09:13:02 -0800131}