Switch to AIDL and add sepolicy for bluetooth extension
Bug: 274906319
Bug: 278978409
Test: build pass
Change-Id: I4430575deaf572db5dbc855d85bea0c856e0c914
diff --git a/bcmbt/bluetooth.mk b/bcmbt/bluetooth.mk
index 6a951c7..eb6a29b 100644
--- a/bcmbt/bluetooth.mk
+++ b/bcmbt/bluetooth.mk
@@ -2,6 +2,7 @@
PRODUCT_PACKAGES += \
android.hardware.bluetooth-V1-ndk.so \
android.hardware.bluetooth-service.bcmbtlinux \
+ vendor.google.bluetooth_ext-V1-ndk.so \
bt_vendor.conf \
android.hardware.bluetooth.prebuilt.xml \
android.hardware.bluetooth_le.prebuilt.xml
diff --git a/bcmbt/compatibility_matrix.xml b/bcmbt/compatibility_matrix.xml
index ec47e35..f0a2a05 100644
--- a/bcmbt/compatibility_matrix.xml
+++ b/bcmbt/compatibility_matrix.xml
@@ -1,39 +1,28 @@
<compatibility-matrix version="1.0" type="framework" level="7">
- <hal format="hidl">
- <name>hardware.google.bluetooth.ccc</name>
- <version>1.1</version>
+ <hal format="aidl" optional="true">
+ <name>vendor.google.bluetooth_ext</name>
+ <version>1</version>
+ <interface>
+ <name>IBluetoothFinder</name>
+ <instance>default</instance>
+ </interface>
+ <fqname>IBluetoothFinder/default</fqname>
<interface>
<name>IBluetoothCcc</name>
<instance>default</instance>
</interface>
- </hal>
- <hal format="hidl">
- <name>hardware.google.bluetooth.bt_channel_avoidance</name>
- <version>1.0</version>
<interface>
<name>IBTChannelAvoidance</name>
<instance>default</instance>
</interface>
- </hal>
- <hal format="hidl">
- <name>hardware.google.bluetooth.sar</name>
- <version>1.1</version>
<interface>
<name>IBluetoothSar</name>
<instance>default</instance>
</interface>
- </hal>
- <hal format="hidl" optional="true">
- <name>hardware.google.bluetooth.ext</name>
- <version>1.0</version>
<interface>
<name>IBluetoothExt</name>
<instance>default</instance>
</interface>
- </hal>
- <hal format="hidl" optional="true">
- <name>hardware.google.bluetooth.ewp</name>
- <version>1.0</version>
<interface>
<name>IBluetoothEwp</name>
<instance>default</instance>
diff --git a/bcmbt/manifest_bluetooth.xml b/bcmbt/manifest_bluetooth.xml
index 30d1506..f14112c 100644
--- a/bcmbt/manifest_bluetooth.xml
+++ b/bcmbt/manifest_bluetooth.xml
@@ -4,49 +4,14 @@
<version>1</version>
<fqname>IBluetoothHci/default</fqname>
</hal>
- <hal format="hidl">
- <name>hardware.google.bluetooth.bt_channel_avoidance</name>
- <transport>hwbinder</transport>
- <version>1.0</version>
- <interface>
- <name>IBTChannelAvoidance</name>
- <instance>default</instance>
- </interface>
- </hal>
- <hal format="hidl">
- <name>hardware.google.bluetooth.sar</name>
- <transport>hwbinder</transport>
- <version>1.1</version>
- <interface>
- <name>IBluetoothSar</name>
- <instance>default</instance>
- </interface>
- </hal>
- <hal format="hidl">
- <name>hardware.google.bluetooth.ext</name>
- <transport>hwbinder</transport>
- <version>1.0</version>
- <interface>
- <name>IBluetoothExt</name>
- <instance>default</instance>
- </interface>
- </hal>
- <hal format="hidl">
- <name>hardware.google.bluetooth.ccc</name>
- <transport>hwbinder</transport>
- <version>1.1</version>
- <interface>
- <name>IBluetoothCcc</name>
- <instance>default</instance>
- </interface>
- </hal>
- <hal format="hidl">
- <name>hardware.google.bluetooth.ewp</name>
- <transport>hwbinder</transport>
- <version>1.0</version>
- <interface>
- <name>IBluetoothEwp</name>
- <instance>default</instance>
- </interface>
+ <hal format="aidl">
+ <name>vendor.google.bluetooth_ext</name>
+ <version>1</version>
+ <fqname>IBTChannelAvoidance/default</fqname>
+ <fqname>IBluetoothCcc/default</fqname>
+ <fqname>IBluetoothEwp/default</fqname>
+ <fqname>IBluetoothExt/default</fqname>
+ <fqname>IBluetoothFinder/default</fqname>
+ <fqname>IBluetoothSar/default</fqname>
</hal>
</manifest>
diff --git a/bcmbt/sepolicy/hal_bluetooth_btlinux.te b/bcmbt/sepolicy/hal_bluetooth_btlinux.te
index f348099..263f689 100644
--- a/bcmbt/sepolicy/hal_bluetooth_btlinux.te
+++ b/bcmbt/sepolicy/hal_bluetooth_btlinux.te
@@ -1,4 +1,5 @@
add_hwservice(hal_bluetooth_btlinux, hal_bluetooth_coexistence_hwservice);
+add_service(hal_bluetooth_btlinux, hal_bluetooth_coexistence_service);
get_prop(hal_bluetooth_btlinux, boot_status_prop)
allow hal_bluetooth_btlinux sysfs_bluetooth_writable:file rw_file_perms;
diff --git a/bcmbt/sepolicy/service.te b/bcmbt/sepolicy/service.te
new file mode 100644
index 0000000..b8403da
--- /dev/null
+++ b/bcmbt/sepolicy/service.te
@@ -0,0 +1,2 @@
+# Bluetooth HAL extension
+type hal_bluetooth_coexistence_service, hal_service_type, service_manager_type;
diff --git a/bcmbt/sepolicy/service_contexts b/bcmbt/sepolicy/service_contexts
new file mode 100644
index 0000000..4aecc90
--- /dev/null
+++ b/bcmbt/sepolicy/service_contexts
@@ -0,0 +1,7 @@
+# Bluetooth HAL extension
+vendor.google.bluetooth_ext.IBTChannelAvoidance/default u:object_r:hal_bluetooth_coexistence_service:s0
+vendor.google.bluetooth_ext.IBluetoothSar/default u:object_r:hal_bluetooth_coexistence_service:s0
+vendor.google.bluetooth_ext.IBluetoothCcc/default u:object_r:hal_bluetooth_coexistence_service:s0
+vendor.google.bluetooth_ext.IBluetoothEwp/default u:object_r:hal_bluetooth_coexistence_service:s0
+vendor.google.bluetooth_ext.IBluetoothExt/default u:object_r:hal_bluetooth_coexistence_service:s0
+vendor.google.bluetooth_ext.IBluetoothFinder/default u:object_r:hal_bluetooth_coexistence_service:s0