diff --git a/private/system_server.te b/private/system_server.te
index 5aae022bdf8e59ca0e91eb531305ec25caafb11d..60331bd34fb042cc0c3364f579c2694f0b368772 100644
--- a/private/system_server.te
+++ b/private/system_server.te
@@ -183,6 +183,7 @@ hal_client_domain(system_server, hal_power)
 hal_client_domain(system_server, hal_sensors)
 binder_call(system_server, hal_thermal)
 hal_client_domain(system_server, hal_thermal)
+hal_client_domain(system_server, hal_tv_input)
 binder_call(system_server, hal_usb)
 hal_client_domain(system_server, hal_usb)
 binder_call(system_server, hal_vibrator)
diff --git a/public/attributes b/public/attributes
index d9d123fd0843c98a57f6a7d32fede35c0aaf949a..feb7624e2288dce5d63dd11a825efededdd5f94d 100644
--- a/public/attributes
+++ b/public/attributes
@@ -211,6 +211,9 @@ attribute hal_telephony_server;
 attribute hal_thermal;
 attribute hal_thermal_client;
 attribute hal_thermal_server;
+attribute hal_tv_input;
+attribute hal_tv_input_client;
+attribute hal_tv_input_server;
 attribute hal_usb;
 attribute hal_usb_client;
 attribute hal_usb_server;
diff --git a/public/hal_tv_input.te b/public/hal_tv_input.te
new file mode 100644
index 0000000000000000000000000000000000000000..5276ddfeaaec37b43e15a3860e7107abf947a623
--- /dev/null
+++ b/public/hal_tv_input.te
@@ -0,0 +1,3 @@
+# HwBinder IPC from clients into server, and callbacks
+binder_call(hal_tv_input_client, hal_tv_input_server)
+binder_call(hal_tv_input_server, hal_tv_input_client)
diff --git a/vendor/file_contexts b/vendor/file_contexts
index 763a9458226936af36a5e2b258bad315f32fa59d..ea0ef29f6f01d9a2d5ba9cc2dde62442b062d228 100644
--- a/vendor/file_contexts
+++ b/vendor/file_contexts
@@ -25,6 +25,7 @@
 /(vendor|system/vendor)/bin/hw/android\.hardware\.sensors@1\.0-service        u:object_r:hal_sensors_default_exec:s0
 /(vendor|system/vendor)/bin/hw/rild                                           u:object_r:rild_exec:s0
 /(vendor|system/vendor)/bin/hw/android\.hardware\.thermal@1\.0-service        u:object_r:hal_thermal_default_exec:s0
+/(vendor|system/vendor)/bin/hw/android\.hardware\.tv\.input@1\.0-service      u:object_r:hal_tv_input_default_exec:s0
 /(vendor|system/vendor)/bin/hw/android\.hardware\.usb@1\.0-service            u:object_r:hal_usb_default_exec:s0
 /(vendor|system/vendor)/bin/hw/android\.hardware\.vibrator@1\.0-service       u:object_r:hal_vibrator_default_exec:s0
 /(vendor|system/vendor)/bin/hw/android\.hardware\.vr@1\.0-service             u:object_r:hal_vr_default_exec:s0
diff --git a/vendor/hal_tv_input_default.te b/vendor/hal_tv_input_default.te
new file mode 100644
index 0000000000000000000000000000000000000000..a97c1717b3b19df9d365f67072b0892ed390a331
--- /dev/null
+++ b/vendor/hal_tv_input_default.te
@@ -0,0 +1,6 @@
+type hal_tv_input_default, domain;
+hal_server_domain(hal_tv_input_default, hal_tv_input)
+
+type hal_tv_input_default_exec, exec_type, file_type;
+init_daemon_domain(hal_tv_input_default)
+