blob: 530a1468ef429eeb6494e729c0620830f9a483d2 [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 (legacy, do not use).
17// TODO: Remove
William Escandebb37c5a2022-04-28 13:37:11 -070018apex {
19 name: "com.android.bluetooth",
20 defaults: ["t-launched-apex-module"],
21 manifest: "apex_manifest.json",
William Escande8e1ae012022-06-22 13:13:42 -070022 bootclasspath_fragments: ["com.android.btservices-bootclasspath-fragment"],
23 systemserverclasspath_fragments: ["com.android.btservices-systemserverclasspath-fragment"],
Zach Johnson7f1c87e2019-11-09 18:24:47 -080024 apps: ["Bluetooth"],
25
Roopa Sattiraju1e7b3812022-02-03 09:13:02 -080026 multilib: {
27 first: {
28 // Extractor process runs only with the primary ABI.
Roopa Sattiraju1e7b3812022-02-03 09:13:02 -080029 jni_libs: [
30 "libbluetooth_jni",
31 ],
32 },
33 },
Zach Johnson7f1c87e2019-11-09 18:24:47 -080034
William Escande5b0b5182022-03-19 01:36:07 +010035 prebuilts: [
William Escandeb247faa2022-04-28 13:48:25 -070036 "audio_set_configurations_bfbs",
37 "audio_set_configurations_json",
38 "audio_set_scenarios_bfbs",
39 "audio_set_scenarios_json",
William Escande8e1ae012022-06-22 13:13:42 -070040 "btservices-linker-config",
William Escandeb247faa2022-04-28 13:48:25 -070041 "bt_did.conf",
42 "bt_stack.conf",
Oriol Prieto Gascoecb4b3a2022-06-17 18:31:43 +000043 "privapp_allowlist_com.android.bluetooth.xml",
William Escande5b0b5182022-03-19 01:36:07 +010044 ],
Oriol Prieto Gascoecb4b3a2022-06-17 18:31:43 +000045 key: "com.android.btservices.key",
46 certificate: ":com.android.btservices.certificate",
47 updatable: false,
48 compressible: false,
49}
William Escandebb37c5a2022-04-28 13:37:11 -070050
Oriol Prieto Gascoecb4b3a2022-06-17 18:31:43 +000051// Mainline bluetooth apex module.
52apex {
53 name: "com.android.btservices",
54 defaults: ["t-launched-apex-module"],
55 manifest: "apex_manifest.json",
William Escande8e1ae012022-06-22 13:13:42 -070056 bootclasspath_fragments: ["com.android.btservices-bootclasspath-fragment"],
57 systemserverclasspath_fragments: ["com.android.btservices-systemserverclasspath-fragment"],
Oriol Prieto Gascoecb4b3a2022-06-17 18:31:43 +000058 apps: ["Bluetooth"],
59
60 multilib: {
61 first: {
62 // Extractor process runs only with the primary ABI.
63 jni_libs: [
64 "libbluetooth_jni",
65 ],
66 },
67 },
68
69 prebuilts: [
70 "audio_set_configurations_bfbs",
71 "audio_set_configurations_json",
72 "audio_set_scenarios_bfbs",
73 "audio_set_scenarios_json",
William Escande8e1ae012022-06-22 13:13:42 -070074 "btservices-linker-config",
Oriol Prieto Gascoecb4b3a2022-06-17 18:31:43 +000075 "bt_did.conf",
76 "bt_stack.conf",
77 "privapp_allowlist_com.android.bluetooth.xml",
78 ],
79 key: "com.android.btservices.key",
80 certificate: ":com.android.btservices.certificate",
81 updatable: false,
82 compressible: false,
Roopa Sattiraju1e7b3812022-02-03 09:13:02 -080083}
84
Zach Johnson7f1c87e2019-11-09 18:24:47 -080085apex_key {
Oriol Prieto Gascoecb4b3a2022-06-17 18:31:43 +000086 name: "com.android.btservices.key",
87 public_key: "com.android.btservices.avbpubkey",
88 private_key: "com.android.btservices.pem",
Zach Johnson7f1c87e2019-11-09 18:24:47 -080089}
90
91android_app_certificate {
Oriol Prieto Gascoecb4b3a2022-06-17 18:31:43 +000092 name: "com.android.btservices.certificate",
93 certificate: "com.android.btservices",
Zach Johnson7f1c87e2019-11-09 18:24:47 -080094}
Roopa Sattiraju1e7b3812022-02-03 09:13:02 -080095
96sdk {
William Escande8e1ae012022-06-22 13:13:42 -070097 name: "btservices-module-sdk",
98 bootclasspath_fragments: ["com.android.btservices-bootclasspath-fragment"],
99 systemserverclasspath_fragments: ["com.android.btservices-systemserverclasspath-fragment"],
Roopa Sattiraju1e7b3812022-02-03 09:13:02 -0800100}
101
102// Encapsulate the contributions made by the com.android.bluetooth to the bootclasspath.
103bootclasspath_fragment {
William Escande8e1ae012022-06-22 13:13:42 -0700104 name: "com.android.btservices-bootclasspath-fragment",
Roopa Sattiraju1e7b3812022-02-03 09:13:02 -0800105 contents: ["framework-bluetooth"],
106 apex_available: ["com.android.bluetooth"],
107
108 // The bootclasspath_fragments that provide APIs on which this depends.
109 fragments: [
110 {
111 apex: "com.android.art",
112 module: "art-bootclasspath-fragment",
113 },
114 ],
115
116 // Additional stubs libraries that this fragment's contents use which are
117 // not provided by another bootclasspath_fragment.
118 additional_stubs: [
119 "android-non-updatable",
120 ],
121
122 // Additional hidden API flag files to override the defaults. This must only be
123 // modified by the Soong or platform compat team.
124 hidden_api: {
125 max_target_o_low_priority: ["hiddenapi/hiddenapi-max-target-o-low-priority.txt"],
126 max_target_r_low_priority: ["hiddenapi/hiddenapi-max-target-r-low-priority.txt"],
127 unsupported: ["hiddenapi/hiddenapi-unsupported.txt"],
Paul Duffin4f29e5f2022-03-31 12:46:11 +0000128
129 // The following packages contain classes from other modules on the
130 // bootclasspath. That means that the hidden API flags for this module
131 // has to explicitly list every single class this module provides in
132 // that package to differentiate them from the classes provided by other
133 // modules. That can include private classes that are not part of the
134 // API.
135 split_packages: [
136 "android.bluetooth",
137 ],
138
139 // The following packages and all their subpackages currently only
140 // contain classes from this bootclasspath_fragment. Listing a package
141 // here won't prevent other bootclasspath modules from adding classes in
142 // any of those packages but it will prevent them from adding those
143 // classes into an API surface, e.g. public, system, etc.. Doing so will
144 // result in a build failure due to inconsistent flags.
145 package_prefixes: [
146 "android.bluetooth.le",
147 "com.android.bluetooth",
148 ],
Roopa Sattiraju1e7b3812022-02-03 09:13:02 -0800149 },
150
151}
152
153systemserverclasspath_fragment {
William Escande8e1ae012022-06-22 13:13:42 -0700154 name: "com.android.btservices-systemserverclasspath-fragment",
Roopa Sattiraju1e7b3812022-02-03 09:13:02 -0800155 standalone_contents: ["service-bluetooth"],
156 apex_available: ["com.android.bluetooth"],
157}