Merge "Selectively load kernel modules based on current kernel number"
diff --git a/shared/sepolicy/vendor/file_contexts b/shared/sepolicy/vendor/file_contexts
index fc091a5..6c78a40 100644
--- a/shared/sepolicy/vendor/file_contexts
+++ b/shared/sepolicy/vendor/file_contexts
@@ -55,6 +55,7 @@
 /vendor/bin/hw/android\.hardware\.health@2\.0-service.cuttlefish  u:object_r:hal_health_default_exec:s0
 /vendor/bin/hw/android\.hardware\.health\.storage@1\.0-service.cuttlefish  u:object_r:hal_health_storage_default_exec:s0
 /vendor/bin/hw/android\.hardware\.neuralnetworks@1\.2-service-sample-.*   u:object_r:hal_neuralnetworks_sample_exec:s0
+/vendor/bin/hw/android\.hardware\.tv\.cec@1\.0-service\.mock u:object_r:hal_tv_cec_mock_exec:s0
 /vendor/bin/ip_link_add  u:object_r:ip_link_add_exec:s0
 /vendor/bin/setup_wifi  u:object_r:setup_wifi_exec:s0
 /vendor/bin/hw/android\.hardware\.authsecret@1\.0-service  u:object_r:hal_authsecret_default_exec:s0
diff --git a/shared/sepolicy/vendor/hal_tv_cec_mock.te b/shared/sepolicy/vendor/hal_tv_cec_mock.te
new file mode 100644
index 0000000..6d96f96
--- /dev/null
+++ b/shared/sepolicy/vendor/hal_tv_cec_mock.te
@@ -0,0 +1,11 @@
+# hal_tv_cec_mock service
+type hal_tv_cec_mock, domain;
+hal_server_domain(hal_tv_cec_mock, hal_tv_cec);
+# Allow tv cec HAL's mock implementation to use vendor-binder service
+vndbinder_use(hal_tv_cec_mock);
+
+allow hal_tv_cec_mock hal_allocator:fd use;
+
+type hal_tv_cec_mock_exec, exec_type, file_type, vendor_file_type;
+
+init_daemon_domain(hal_tv_cec_mock)
diff --git a/shared/tv/device.mk b/shared/tv/device.mk
index 5f8aec7..de3df1f 100644
--- a/shared/tv/device.mk
+++ b/shared/tv/device.mk
@@ -25,6 +25,9 @@
     ro.lmk.kill_timeout_ms=100 \
     ro.lmk.use_minfree_levels=true \
 
+# HDMI CEC HAL
+PRODUCT_PACKAGES += android.hardware.tv.cec@1.0-service.mock
+
 TARGET_USE_DYNAMIC_PARTITIONS ?= true
 ifeq ($(TARGET_USE_DYNAMIC_PARTITIONS),true)
   PRODUCT_USE_DYNAMIC_PARTITIONS := true