diff --git a/private/system_server.te b/private/system_server.te
index 294ceb4fec0baa8ca56372732456767ece0a2f3e..d78c5768208fba4605bbac5dd0149ebcc5cd171f 100644
--- a/private/system_server.te
+++ b/private/system_server.te
@@ -182,7 +182,7 @@ binder_call(system_server, hal_ir)
 binder_call(system_server, hal_light)
 binder_call(system_server, hal_memtrack)
 binder_call(system_server, hal_power)
-binder_call(system_server, hal_sensors)
+hal_client_domain(system_server, hal_sensors)
 binder_call(system_server, hal_thermal)
 binder_call(system_server, hal_usb)
 binder_call(system_server, hal_vibrator)
@@ -453,9 +453,6 @@ allow system_server cache_private_backup_file:file create_file_perms;
 allow system_server usb_device:chr_file rw_file_perms;
 allow system_server usb_device:dir r_dir_perms;
 
-# Allow system to talk to sensors
-allow system_server sensors_device:chr_file rw_file_perms;
-
 # Read from HW RNG (needed by EntropyMixer).
 allow system_server hw_random_device:chr_file r_file_perms;
 
diff --git a/public/attributes b/public/attributes
index 171ebd8a9eb820b1865f20777eed3beb869fd170..d26f7eee8a9ee5a4cb2de0552451060a11167684 100644
--- a/public/attributes
+++ b/public/attributes
@@ -160,6 +160,8 @@ attribute hal_memtrack;
 attribute hal_nfc;
 attribute hal_power;
 attribute hal_sensors;
+attribute hal_sensors_client;
+attribute hal_sensors_server;
 attribute hal_telephony;
 attribute hal_thermal;
 attribute hal_usb;
diff --git a/public/hal_sensors.te b/public/hal_sensors.te
index 0f52ff55dd11ddc5219203030c955436a23543ce..0d6dfe077047ae6f10a74a364c30ce330cdb5891 100644
--- a/public/hal_sensors.te
+++ b/public/hal_sensors.te
@@ -1,2 +1,5 @@
-#Allow sensor hals to access ashmem memory allocated by apps
-allow hal_sensors {appdomain - isolated_app}:fd use;
+# HwBinder IPC from client to server
+binder_call(hal_sensors_client, hal_sensors_server)
+
+# Allow sensor hals to access ashmem memory allocated by apps
+allow hal_sensors { appdomain -isolated_app }:fd use;
diff --git a/vendor/hal_sensors_default.te b/vendor/hal_sensors_default.te
index 3c3a104a6366966e3f17adad7eed331ed068691b..b4c9a8632880b7bfe83b18d6b7150b453bdb742f 100644
--- a/vendor/hal_sensors_default.te
+++ b/vendor/hal_sensors_default.te
@@ -1,5 +1,5 @@
 type hal_sensors_default, domain;
-hal_impl_domain(hal_sensors_default, hal_sensors)
+hal_server_domain(hal_sensors_default, hal_sensors)
 
 type hal_sensors_default_exec, exec_type, file_type;
 init_daemon_domain(hal_sensors_default)