Merge "sepolicy: Add permission to access min_level_change node for hdcp"
diff --git a/generic/private/vendor_init.te b/generic/private/vendor_init.te
new file mode 100644
index 0000000..48c61e7
--- /dev/null
+++ b/generic/private/vendor_init.te
@@ -0,0 +1,29 @@
+# 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.
+
+# QCV:vendor_init settable for vendor_exported_system_prop
+set_prop(vendor_init, vendor_exported_system_prop)
diff --git a/generic/vendor/common/file_contexts b/generic/vendor/common/file_contexts
index 821a361..2ed7104 100644
--- a/generic/vendor/common/file_contexts
+++ b/generic/vendor/common/file_contexts
@@ -40,6 +40,7 @@
 /dev/rmnet_ctrl.*                               u:object_r:rmnet_device:s0
 /dev/at_.*                                      u:object_r:at_device:s0
 /dev/video([0-9])+                              u:object_r:video_device:s0
+/dev/cvp*                                       u:object_r:video_device:s0
 /dev/media([0-9])+                              u:object_r:video_device:s0
 /dev/v4l-subdev.*                               u:object_r:video_device:s0
 /dev/qseecom                                    u:object_r:tee_device:s0
@@ -183,6 +184,7 @@
 /vendor/lib(64)?/hw/android\.hardware\.graphics\.mapper@2\.0-impl-qti-display\.so   u:object_r:same_process_hal_file:s0
 /vendor/lib(64)?/vendor\.qti\.hardware\.display\.mapper@1\.0\.so   u:object_r:same_process_hal_file:s0
 /vendor/lib(64)?/vendor\.qti\.hardware\.display\.mapper@1\.1\.so   u:object_r:same_process_hal_file:s0
+/vendor/lib(64)?/libcamxexternalformatutils\.so                    u:object_r:same_process_hal_file:s0
 /vendor/lib(64)?/libgralloccore\.so        u:object_r:same_process_hal_file:s0
 /vendor/lib(64)?/libgrallocutils\.so       u:object_r:same_process_hal_file:s0
 /vendor/lib(64)?/libqdMetaData\.so         u:object_r:same_process_hal_file:s0
diff --git a/generic/vendor/common/hal_camera.te b/generic/vendor/common/hal_camera.te
index 93e97bf..88921a6 100644
--- a/generic/vendor/common/hal_camera.te
+++ b/generic/vendor/common/hal_camera.te
@@ -62,3 +62,6 @@
 r_dir_file(hal_camera, adsprpcd_file);
 #allow camera to access adsprpc_prop
 get_prop(hal_camera, vendor_adsprpc_prop)
+
+# This is needed to access GPU
+allow hal_camera_default gpu_device:chr_file rw_file_perms;
diff --git a/generic/vendor/common/init-qcom-sensors-sh.te b/generic/vendor/common/init-qcom-sensors-sh.te
index 14136b5..d00dc54 100644
--- a/generic/vendor/common/init-qcom-sensors-sh.te
+++ b/generic/vendor/common/init-qcom-sensors-sh.te
@@ -41,3 +41,4 @@
 allow init-qcom-sensors-sh sensors_device:chr_file r_file_perms;
 
 set_prop(init-qcom-sensors-sh, sensors_prop)
+get_prop(init-qcom-sensors-sh, vendor_sensors_prop)
\ No newline at end of file
diff --git a/generic/vendor/common/property.te b/generic/vendor/common/property.te
index c6df503..4c275db 100644
--- a/generic/vendor/common/property.te
+++ b/generic/vendor/common/property.te
@@ -93,3 +93,6 @@
 
 #adsprpc props
 type vendor_adsprpc_prop, property_type;
+
+#sensors props
+type vendor_sensors_prop, property_type;
\ No newline at end of file
diff --git a/generic/vendor/common/property_contexts b/generic/vendor/common/property_contexts
index 41dc02c..587d0e5 100644
--- a/generic/vendor/common/property_contexts
+++ b/generic/vendor/common/property_contexts
@@ -121,3 +121,6 @@
 
 #vendor-adsprpc
 vendor.fastrpc.                  u:object_r:vendor_adsprpc_prop:s0
+
+#vendor-sensors
+init.svc.vendor.sensors          u:object_r:vendor_sensors_prop:s0
diff --git a/generic/vendor/kona/genfs_contexts b/generic/vendor/kona/genfs_contexts
index 56ccb65..4e58538 100644
--- a/generic/vendor/kona/genfs_contexts
+++ b/generic/vendor/kona/genfs_contexts
@@ -88,6 +88,13 @@
 genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-03/c440000.qcom,spmi:qcom,pm8150b@3:qcom,leds@d000/leds/hr_led1 u:object_r:sysfs_graphics:s0
 genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-03/c440000.qcom,spmi:qcom,pm8150b@3:qcom,leds@d000/leds/hr_led2 u:object_r:sysfs_graphics:s0
 
+#qdss sysfs-node
+genfscon sysfs /devices/platform/soc/6b05000.tmc/coresight-tmc-etf u:object_r:sysfs_qdss_dev:s0
+genfscon sysfs /devices/platform/soc/6048000.tmc/coresight-tmc-etr u:object_r:sysfs_qdss_dev:s0
+genfscon sysfs /devices/platform/soc/6002000.stm/coresight-stm u:object_r:sysfs_qdss_dev:s0
+genfscon sysfs /devices/platform/soc/soc:hwevent/coresight-hwevent u:object_r:sysfs_qdss_dev:s0
+genfscon sysfs /devices/platform/soc/6b0c000.csr/coresight-swao-csr u:object_r:sysfs_qdss_dev:s0
+
 # USBPD device node
 genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm8150b@2:qcom,usb-pdphy@1700/usbpd/usbpd0 u:object_r:sysfs_usbpd_device:s0
 
diff --git a/legacy/vendor/common/file_contexts b/legacy/vendor/common/file_contexts
index 6994a44..b1d2650 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
@@ -653,6 +655,7 @@
 /vendor/lib(64)?/hw/gralloc\.msm8998\.so   u:object_r:same_process_hal_file:s0
 /vendor/lib(64)?/hw/android\.hardware\.graphics\.mapper@2\.0-impl-qti-display\.so   u:object_r:same_process_hal_file:s0
 /vendor/lib(64)?/vendor\.qti\.hardware\.display\.mapper@1\.0\.so   u:object_r:same_process_hal_file:s0
+/vendor/lib(64)?/libcamxexternalformatutils\.so                    u:object_r:same_process_hal_file:s0
 /vendor/lib(64)?/libqdMetaData\.so         u:object_r:same_process_hal_file:s0
 /vendor/lib(64)?/libqservice\.so           u:object_r:same_process_hal_file:s0
 /vendor/lib(64)?/libqdutils\.so            u:object_r:same_process_hal_file: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;
diff --git a/qva/vendor/lito/genfs_contexts b/qva/vendor/lito/genfs_contexts
index a274e1f..d51ba81 100644
--- a/qva/vendor/lito/genfs_contexts
+++ b/qva/vendor/lito/genfs_contexts
@@ -35,6 +35,14 @@
 genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm7250b@2:qcom,usb-pdphy@1700/usbpd/usbpd0 u:object_r:sysfs_usbpd_device:s0
 genfscon sysfs /class/qcom-battery u:object_r:sysfs_battery_supply:s0
 
+#qdss sysfs-node
+genfscon sysfs /devices/platform/soc/6b05000.tmc/coresight-tmc-etf u:object_r:sysfs_qdss_dev:s0
+genfscon sysfs /devices/platform/soc/6048000.tmc/coresight-tmc-etr u:object_r:sysfs_qdss_dev:s0
+genfscon sysfs /devices/platform/soc/6002000.stm/coresight-stm u:object_r:sysfs_qdss_dev:s0
+genfscon sysfs /devices/platform/soc/soc:hwevent/coresight-hwevent u:object_r:sysfs_qdss_dev:s0
+genfscon sysfs /devices/platform/soc/6b0c000.csr/coresight-swao-csr u:object_r:sysfs_qdss_dev:s0
+genfscon sysfs /devices/platform/soc/soc:dummy_source/coresight-modem-diag u:object_r:sysfs_qdss_dev:s0
+
 # PMIC UI peripherals
 genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm8150@0:qcom,pm8150_rtc/rtc u:object_r:sysfs_rtc:s0
 genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-03/c440000.qcom,spmi:qcom,pm7250b@3:qcom,vibrator@5300/leds/vibrator u:object_r:sysfs_leds:s0