diff --git a/policy/modules/kernel/devices.if b/policy/modules/kernel/devices.if
index d8a5c97df..aaa5807bb 100644
--- a/policy/modules/kernel/devices.if
+++ b/policy/modules/kernel/devices.if
@@ -4851,6 +4851,25 @@ interface(`dev_rw_tpm',`
rw_chr_files_pattern($1, device_t, tpm_device_t)
')
+#####################
+##
+## Allow open/read/write uhid device
+##
+##
+##
+## Domain allowed rw to uhid device
+## to communicate with uhid input node
+##
+##
+#
+interface(`dev_rw_uhid',`
+ gen_require(`
+ type device_t, uhid_device_t;
+ ')
+
+ rw_chr_files_pattern($1, device_t, uhid_device_t)
+')
+
########################################
##
## Read from pseudo random number generator devices (e.g., /dev/urandom).
diff --git a/policy/modules/services/bluetooth.te b/policy/modules/services/bluetooth.te
index f23a979de..0cbff0714 100644
--- a/policy/modules/services/bluetooth.te
+++ b/policy/modules/services/bluetooth.te
@@ -104,6 +104,7 @@ dev_rw_generic_usb_dev(bluetooth_t)
dev_read_urand(bluetooth_t)
dev_rw_input_dev(bluetooth_t)
dev_rw_wireless(bluetooth_t)
+dev_rw_uhid(bluetooth_t)
domain_use_interactive_fds(bluetooth_t)
domain_dontaudit_search_all_domains_state(bluetooth_t)