sepolicy: Adding rules for WFD secure sink on legacy targets

Change-Id: I6fb86150d4d11bb656bdf7d1477bc8ce337bc29c
diff --git a/legacy/vendor/common/file_contexts b/legacy/vendor/common/file_contexts
index e4e7a49..43db75c 100644
--- a/legacy/vendor/common/file_contexts
+++ b/legacy/vendor/common/file_contexts
@@ -304,6 +304,8 @@
 /(vendor|system/vendor)/bin/btnvtool            u:object_r:btnvtool_exec:s0
 /(vendor|system/vendor)/bin/btsnoop                             u:object_r:btsnoop_exec:s0
 /(vendor|system/vendor)/bin/wifidisplayhalservice               u:object_r:wifidisplayhalservice_qti_exec:s0
+/(vendor|system/vendor)/bin/wfdhdcphalservice                   u:object_r:wfdhdcphalservice_qti_exec:s0
+/(vendor|system/vendor)/bin/wfdvndservice                       u:object_r:wfdvndservice_exec:s0
 /(vendor|system/vendor)/bin/fmhal_service                       u:object_r:fmhal_service_exec:s0
 /(vendor|system/vendor)/bin/usf_epos            u:object_r:usf_exec:s0
 /(vendor|system/vendor)/bin/usf_gesture         u:object_r:usf_exec:s0
diff --git a/legacy/vendor/common/vndservice.te b/legacy/vendor/common/vndservice.te
index 5dfda70..16b08dc 100644
--- a/legacy/vendor/common/vndservice.te
+++ b/legacy/vendor/common/vndservice.te
@@ -30,3 +30,4 @@
 type qseeproxy_service,                  vndservice_manager_type;
 type esepmdaemon_service,                vndservice_manager_type;
 type wfdnativemm_service,                vndservice_manager_type;
+type wfdhdcpvndservice_service,          vndservice_manager_type;
diff --git a/legacy/vendor/common/vndservice_contexts b/legacy/vendor/common/vndservice_contexts
index a426119..45435c1 100644
--- a/legacy/vendor/common/vndservice_contexts
+++ b/legacy/vendor/common/vndservice_contexts
@@ -30,3 +30,4 @@
 com.qualcomm.qti.qseeproxy                     u:object_r:qseeproxy_service:s0
 eSEPowerManagerService                         u:object_r:esepmdaemon_service:s0
 wfd.native.mm.service                          u:object_r:wfdnativemm_service:s0
+wfdhdcpvndservice                              u:object_r:wfdhdcpvndservice_service:s0
diff --git a/legacy/vendor/common/wfdhdcphalservice.te b/legacy/vendor/common/wfdhdcphalservice.te
new file mode 100644
index 0000000..4486e52
--- /dev/null
+++ b/legacy/vendor/common/wfdhdcphalservice.te
@@ -0,0 +1,44 @@
+# Copyright (c) 2019 The Linux Foundation. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+#       copyright notice, this list of conditions and the following
+#       disclaimer in the documentation and/or other materials provided
+#       with the distribution.
+#     * Neither the name of The Linux Foundation nor the names of its
+#       contributors may be used to endorse or promote products derived
+#       from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#Define Domain
+type wfdhdcphalservice_qti, domain;
+type wfdhdcphalservice_qti_exec, exec_type, vendor_file_type, file_type;
+
+hal_server_domain(wfdhdcphalservice_qti, hal_drm)
+init_daemon_domain(wfdhdcphalservice_qti)
+
+#Allow to call wfdhdcpvndservice
+vndbinder_use(wfdhdcphalservice_qti)
+allow wfdhdcphalservice_qti wfdhdcpvndservice_service:service_manager find;
+binder_call(wfdhdcphalservice_qti, wfdvndservice);
+
+#Allow access to display config hal
+hal_client_domain(wfdhdcphalservice_qti, hal_graphics_composer)
+
+#Allow to use fd from mediacodec and wfd app
+allow wfdhdcphalservice_qti { mediacodec system_app }:fd use;
diff --git a/legacy/vendor/common/wfdvndservice.te b/legacy/vendor/common/wfdvndservice.te
new file mode 100644
index 0000000..c0b432d
--- /dev/null
+++ b/legacy/vendor/common/wfdvndservice.te
@@ -0,0 +1,53 @@
+# Copyright (c) 2019 The Linux Foundation. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+#       copyright notice, this list of conditions and the following
+#       disclaimer in the documentation and/or other materials provided
+#       with the distribution.
+#     * Neither the name of The Linux Foundation nor the names of its
+#       contributors may be used to endorse or promote products derived
+#       from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
+#Define Domain
+type wfdvndservice, domain;
+type wfdvndservice_exec, exec_type, vendor_file_type, file_type;
+
+init_daemon_domain(wfdvndservice)
+
+#Allow net for hdcp connection
+net_domain(wfdvndservice)
+
+#Allow to use Vendor Binder IPC
+vndbinder_use(wfdvndservice)
+
+#Allow to host sink hdcp vnd service
+add_service(wfdvndservice, wfdhdcpvndservice_service)
+binder_call(wfdvndservice, wfdhdcphalservice_qti);
+
+#Allow access to firmware files for HDCP session
+r_dir_file(wfdvndservice, firmware_file)
+
+#Allow for using fds
+allow wfdvndservice { mediacodec system_app wfdhdcphalservice_qti}:fd use;
+
+#Allow access to tee/ion device
+allow wfdvndservice tee_device:chr_file rw_file_perms;
+allow wfdvndservice ion_device:chr_file r_file_perms;