Policy for hci_attach service.
diff --git a/device.te b/device.te
index 6424db6..ac34d72 100644
--- a/device.te
+++ b/device.te
@@ -37,3 +37,9 @@
type video_device, dev_type;
type vcs_device, dev_type;
type zero_device, dev_type;
+
+# All devices have a uart for the hci
+# attach service. The uart dev node
+# varies per device. This type
+# is used in per device policy
+type hci_attach_dev, dev_type;
diff --git a/file.te b/file.te
index b6e3a5d..4e3bd53 100644
--- a/file.te
+++ b/file.te
@@ -56,6 +56,11 @@
# Type for wallpaper file.
type wallpaper_file, file_type;
+# All devices have bluetooth efs files. But they
+# vary per device, so this type is used in per
+# defice policy
+type bluetooth_efs_file, file_type;
+
# Socket types
type bluetooth_socket, file_type;
type dbus_socket, file_type;
diff --git a/hci_attach.te b/hci_attach.te
new file mode 100644
index 0000000..3cb0953
--- /dev/null
+++ b/hci_attach.te
@@ -0,0 +1,9 @@
+type hci_attach, domain;
+type hci_attach_exec, exec_type, file_type;
+
+init_daemon_domain(hci_attach)
+
+allow hci_attach kernel:system module_request;
+allow hci_attach hci_attach_dev:chr_file rw_file_perms;
+allow hci_attach bluetooth_efs_file:dir r_dir_perms;
+allow hci_attach bluetooth_efs_file:file r_file_perms;
diff --git a/rild.te b/rild.te
index a0a4a37..e65fc36 100644
--- a/rild.te
+++ b/rild.te
@@ -17,6 +17,7 @@
allow rild efs_file:dir create_dir_perms;
allow rild efs_file:file create_file_perms;
allow rild shell_exec:file rx_file_perms;
+allow rild bluetooth_efs_file:file r_file_perms;
dontaudit rild self:capability sys_admin;
# XXX Label sysfs files with a specific type?
allow rild sysfs:file rw_file_perms;