diff --git a/private/file_contexts b/private/file_contexts
index c081f5b404f0281d81a89acaef94453dc08d1070..41e1459dad3966bd583932ebcba33cc37377a596 100644
--- a/private/file_contexts
+++ b/private/file_contexts
@@ -231,6 +231,7 @@
 /system/lib(64)?/libart.*        u:object_r:libart_file:s0
 /system/bin/hw/android\.hardware\.audio@2\.0-service          u:object_r:hal_audio_default_exec:s0
 /system/bin/hw/android\.hardware\.boot@1\.0-service           u:object_r:hal_boot_exec:s0
+/system/bin/hw/android\.hardware\.contexthub@1\.0-service     u:object_r:hal_contexthub_default_exec:s0
 /system/bin/hw/android\.hardware\.dumpstate@1\.0-service      u:object_r:hal_dumpstate_default_exec:s0
 /system/bin/hw/android\.hardware\.graphics\.allocator@2\.0-service   u:object_r:hal_graphics_allocator_default_exec:s0
 /system/bin/hw/android\.hardware\.graphics\.composer@2\.1-service    u:object_r:hal_graphics_composer_default_exec:s0
diff --git a/private/hal_contexthub_default.te b/private/hal_contexthub_default.te
new file mode 100644
index 0000000000000000000000000000000000000000..99b6b93760454ba6f6bbd68b7662c3c3617a888c
--- /dev/null
+++ b/private/hal_contexthub_default.te
@@ -0,0 +1,4 @@
+type hal_contexthub_default, hal_contexthub, domain;
+type hal_contexthub_default_exec, exec_type, file_type;
+
+init_daemon_domain(hal_contexthub_default)
diff --git a/public/attributes b/public/attributes
index c14365cf4fc5001a539a23dde70d047bc0813767..abe5955d88013d886468cbaadc93c0c808868a74 100644
--- a/public/attributes
+++ b/public/attributes
@@ -130,3 +130,4 @@ attribute hal_thermal;
 attribute hal_vibrator;
 attribute hal_vr;
 attribute hal_wifi;
+attribute hal_contexthub;
diff --git a/public/hal_contexthub.te b/public/hal_contexthub.te
new file mode 100644
index 0000000000000000000000000000000000000000..9d3685b52c7ec313366d92c8ecead5d3585e7c78
--- /dev/null
+++ b/public/hal_contexthub.te
@@ -0,0 +1,5 @@
+# hwbinder access
+hwbinder_use(hal_contexthub)
+
+# call into system_server process (callbacks)
+binder_call(hal_contexthub, system_server)
diff --git a/public/system_server.te b/public/system_server.te
index 99ff1d8168b15701eccf29938a9c2e8da562ed6a..052f632c3d7647f7867ae87ae2a150fc82f87683 100644
--- a/public/system_server.te
+++ b/public/system_server.te
@@ -160,6 +160,7 @@ binder_service(system_server)
 # Perform HwBinder IPC.
 hwbinder_use(system_server)
 binder_call(system_server, hal_boot)
+binder_call(system_server, hal_contexthub)
 binder_call(system_server, hal_ir)
 binder_call(system_server, hal_light)
 binder_call(system_server, hal_memtrack)