From bc0c88f37d2492b72ec9be73b41b2cc7300890e4 Mon Sep 17 00:00:00 2001
From: Sunny Kapdi <sunnyk@codeaurora.org>
Date: Mon, 30 Oct 2017 12:58:20 -0700
Subject: [PATCH] Bluetooth A2DP offload: Binder call to audio HAL

Add rule to allow Binder call from Bluetooth process to Bluetooth
audio HIDL interface running in audio HAL service process.

Bug: 72242910
Test: Manual; TestTracker/148125
Change-Id: I1981a78bece10b8e516f218d3edde8b77943d130
(cherry picked from commit e8cfac90e8bf14466b6431a21bc5ccd4bf6ca3ea)
---
 private/bluetooth.te       | 3 +++
 private/hwservice_contexts | 1 +
 public/hal_audio.te        | 4 ++--
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/private/bluetooth.te b/private/bluetooth.te
index 86a7a2a88..fec94941b 100644
--- a/private/bluetooth.te
+++ b/private/bluetooth.te
@@ -61,6 +61,9 @@ allow bluetooth self:global_capability_class_set sys_nice;
 hal_client_domain(bluetooth, hal_bluetooth)
 hal_client_domain(bluetooth, hal_telephony)
 
+# Bluetooth A2DP offload requires binding with audio HAL
+hal_client_domain(bluetooth, hal_audio)
+
 read_runtime_log_tags(bluetooth)
 
 ###
diff --git a/private/hwservice_contexts b/private/hwservice_contexts
index d7ffb8f27..abc989eae 100644
--- a/private/hwservice_contexts
+++ b/private/hwservice_contexts
@@ -6,6 +6,7 @@ android.hardware.audio::IDevicesFactory                         u:object_r:hal_a
 android.hardware.authsecret::IAuthSecret                        u:object_r:hal_authsecret_hwservice:s0
 android.hardware.biometrics.fingerprint::IBiometricsFingerprint u:object_r:hal_fingerprint_hwservice:s0
 android.hardware.bluetooth::IBluetoothHci                       u:object_r:hal_bluetooth_hwservice:s0
+android.hardware.bluetooth.a2dp::IBluetoothAudioOffload         u:object_r:hal_audio_hwservice:s0
 android.hardware.boot::IBootControl                             u:object_r:hal_bootctl_hwservice:s0
 android.hardware.broadcastradio::IBroadcastRadio                u:object_r:hal_broadcastradio_hwservice:s0
 android.hardware.broadcastradio::IBroadcastRadioFactory         u:object_r:hal_broadcastradio_hwservice:s0
diff --git a/public/hal_audio.te b/public/hal_audio.te
index 08cc1ff2a..8d9d9328c 100644
--- a/public/hal_audio.te
+++ b/public/hal_audio.te
@@ -9,8 +9,8 @@ allow hal_audio ion_device:chr_file r_file_perms;
 
 r_dir_file(hal_audio, proc)
 r_dir_file(hal_audio, proc_asound)
-allow hal_audio audio_device:dir r_dir_perms;
-allow hal_audio audio_device:chr_file rw_file_perms;
+allow hal_audio_server audio_device:dir r_dir_perms;
+allow hal_audio_server audio_device:chr_file rw_file_perms;
 
 # Needed to provide debug dump output via dumpsys' pipes.
 allow hal_audio shell:fd use;
-- 
GitLab