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