diff --git a/.gitupstream b/.gitupstream
new file mode 100644
index 0000000..d1eef94
--- /dev/null
+++ b/.gitupstream
@@ -0,0 +1 @@
+https://git.codelinaro.org/clo/la/device/qcom/sepolicy
diff --git a/SEPolicy.mk b/SEPolicy.mk
index 39584d8..e399db0 100644
--- a/SEPolicy.mk
+++ b/SEPolicy.mk
@@ -1,6 +1,5 @@
 # Board specific SELinux policy variable definitions
-ifeq ($(call is-vendor-board-platform,QCOM),true)
-SEPOLICY_PATH:= device/qcom/sepolicy
+SEPOLICY_PATH:= device/qcom/sepolicy-legacy-um
 SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS := \
     $(SYSTEM_EXT_PUBLIC_SEPOLICY_DIRS) \
     $(SEPOLICY_PATH)/generic/public \
@@ -24,51 +23,33 @@
 PRODUCT_PUBLIC_SEPOLICY_DIRS := \
     $(PRODUCT_PUBLIC_SEPOLICY_DIRS) \
     $(SEPOLICY_PATH)/generic/product/public \
-    $(SEPOLICY_PATH)/qva/product/public 
+    $(SEPOLICY_PATH)/qva/product/public
 
 PRODUCT_PRIVATE_SEPOLICY_DIRS := \
     $(PRODUCT_PRIVATE_SEPOLICY_DIRS) \
     $(SEPOLICY_PATH)/generic/product/private \
     $(SEPOLICY_PATH)/qva/product/private
 
-ifeq (,$(filter sdm845 sdm710 sdm660 msm8937 msm8953 msm8998, $(TARGET_BOARD_PLATFORM)))
-    BOARD_SEPOLICY_DIRS := \
-       $(BOARD_SEPOLICY_DIRS) \
-       $(SEPOLICY_PATH) \
-       $(SEPOLICY_PATH)/generic/vendor/common \
-       $(SEPOLICY_PATH)/qva/vendor/common/sysmonapp \
-       $(SEPOLICY_PATH)/qva/vendor/ssg \
-       $(SEPOLICY_PATH)/qva/vendor/common
-
-    ifeq ($(TARGET_SEPOLICY_DIR),)
-      BOARD_SEPOLICY_DIRS += $(SEPOLICY_PATH)/generic/vendor/$(TARGET_BOARD_PLATFORM)
-      BOARD_SEPOLICY_DIRS += $(SEPOLICY_PATH)/qva/vendor/$(TARGET_BOARD_PLATFORM)
-    else
-      BOARD_SEPOLICY_DIRS += $(SEPOLICY_PATH)/generic/vendor/$(TARGET_SEPOLICY_DIR)
-      BOARD_SEPOLICY_DIRS += $(SEPOLICY_PATH)/qva/vendor/$(TARGET_SEPOLICY_DIR)
-    endif
-
-    ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
-    BOARD_SEPOLICY_DIRS += $(SEPOLICY_PATH)/generic/vendor/test
-    BOARD_SEPOLICY_DIRS += $(SEPOLICY_PATH)/qva/vendor/test
-    endif
-endif
-
-ifneq (,$(filter sdm845 sdm710 sdm660 msm8937 msm8953 msm8998, $(TARGET_BOARD_PLATFORM)))
-    BOARD_SEPOLICY_DIRS := \
-                 $(BOARD_SEPOLICY_DIRS) \
+ifneq (,$(filter sdm660 msm8937 msm8953 msm8996 msm8998, $(TARGET_BOARD_PLATFORM)))
+    BOARD_VENDOR_SEPOLICY_DIRS := \
+                 $(BOARD_VENDOR_SEPOLICY_DIRS) \
                  $(SEPOLICY_PATH) \
                  $(SEPOLICY_PATH)/legacy/vendor/common/sysmonapp \
                  $(SEPOLICY_PATH)/legacy/vendor/ssg \
                  $(SEPOLICY_PATH)/legacy/vendor/common
 
     ifeq ($(TARGET_SEPOLICY_DIR),)
-      BOARD_SEPOLICY_DIRS += $(SEPOLICY_PATH)/legacy/vendor/$(TARGET_BOARD_PLATFORM)
+      BOARD_VENDOR_SEPOLICY_DIRS += $(SEPOLICY_PATH)/legacy/vendor/$(TARGET_BOARD_PLATFORM)
     else
-      BOARD_SEPOLICY_DIRS += $(SEPOLICY_PATH)/legacy/vendor/$(TARGET_SEPOLICY_DIR)
+      BOARD_VENDOR_SEPOLICY_DIRS += $(SEPOLICY_PATH)/legacy/vendor/$(TARGET_SEPOLICY_DIR)
     endif
     ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
-    BOARD_SEPOLICY_DIRS += $(SEPOLICY_PATH)/legacy/vendor/test
+      ifneq ($(PRODUCT_SET_DEBUGFS_RESTRICTIONS),true)
+        BOARD_VENDOR_SEPOLICY_DIRS += $(SEPOLICY_PATH)/legacy/vendor/common/debugfs
+        BOARD_VENDOR_SEPOLICY_DIRS += $(SEPOLICY_PATH)/legacy/vendor/test/debugfs
+      endif
+      BOARD_VENDOR_SEPOLICY_DIRS += $(SEPOLICY_PATH)/legacy/vendor/test
     endif
 endif
-endif
+
+-include device/lineage/sepolicy/qcom/sepolicy.mk
diff --git a/generic/vendor/common/adsprpcd.te b/generic/vendor/common/adsprpcd.te
deleted file mode 100644
index 55d38d9..0000000
--- a/generic/vendor/common/adsprpcd.te
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright (c) 2018, 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.
-type vendor_adsprpcd, domain;
-type vendor_adsprpcd_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_adsprpcd)
-
-allow vendor_adsprpcd ion_device:chr_file r_file_perms;
-allow vendor_adsprpcd vendor_qdsp_device:chr_file r_file_perms;
-allow vendor_adsprpcd vendor_xdsp_device:chr_file r_file_perms;
-
-allow vendor_adsprpcd system_file:dir r_dir_perms;
-
-r_dir_file(vendor_adsprpcd, adsprpcd_file)
-get_prop(vendor_adsprpcd, vendor_adsprpc_prop)
-
-allow vendor_adsprpcd vendor_persist_sensors_file:dir create_dir_perms;
-allow vendor_adsprpcd vendor_persist_sensors_file:file create_file_perms;
-allow vendor_adsprpcd mnt_vendor_file:dir r_dir_perms;
diff --git a/generic/vendor/common/app.te b/generic/vendor/common/app.te
deleted file mode 100644
index 064a52b..0000000
--- a/generic/vendor/common/app.te
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright (c) 2018, 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.
-
-# Allow all apps to open and send ioctl to qdsp device
-allow appdomain vendor_qdsp_device:chr_file r_file_perms;
-
-# For the camera app
-get_prop(appdomain, vendor_camera_prop)
-
-#Allow all apps to have read access to vendor_adsprpc_prop
-get_prop(appdomain, vendor_adsprpc_prop)
-
-# Allow all apps to open and send ioctl to npu device
-allow appdomain vendor_npu_device:chr_file r_file_perms;
-
-dontaudit appdomain vendor_hal_qspmhal_hwservice:hwservice_manager find;
diff --git a/generic/vendor/common/atfwd.te b/generic/vendor/common/atfwd.te
deleted file mode 100644
index 43a11b7..0000000
--- a/generic/vendor/common/atfwd.te
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright (c) 2018, 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.
-type vendor_atfwd, domain;
-type vendor_atfwd_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_atfwd)
-
-allow vendor_atfwd self:socket create_socket_perms;
-allow vendor_atfwd self:qipcrtr_socket create_socket_perms_no_ioctl;
-allowxperm vendor_atfwd self:socket ioctl msm_sock_ipc_ioctls;
-
-binder_call(vendor_atfwd, system_app);
-
-r_dir_file(vendor_atfwd, vendor_sysfs_data);
-
-set_prop(vendor_atfwd, vendor_radio_prop)
-
-hwbinder_use(vendor_atfwd)
-get_prop(vendor_atfwd, hwservicemanager_prop)
diff --git a/generic/vendor/common/attribute/attributes b/generic/vendor/common/attribute/attributes
deleted file mode 100644
index 32e41f8..0000000
--- a/generic/vendor/common/attribute/attributes
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2016-2020, 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.
-
-attribute vendor_qmcs_file_type;
diff --git a/generic/vendor/common/audioadsprpcd.te b/generic/vendor/common/audioadsprpcd.te
deleted file mode 100644
index 3a08650..0000000
--- a/generic/vendor/common/audioadsprpcd.te
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright (c) 2020, 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.
-type vendor_audioadsprpcd, domain;
-type vendor_audioadsprpcd_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_audioadsprpcd)
-
-allow vendor_audioadsprpcd ion_device:chr_file r_file_perms;
-allow vendor_audioadsprpcd vendor_qdsp_device:chr_file r_file_perms;
-allow vendor_audioadsprpcd vendor_xdsp_device:chr_file r_file_perms;
-
-r_dir_file(vendor_audioadsprpcd, adsprpcd_file)
-get_prop(vendor_audioadsprpcd, vendor_adsprpc_prop)
-
-allow vendor_audioadsprpcd mnt_vendor_file:dir r_dir_perms;
diff --git a/generic/vendor/common/audioserver.te b/generic/vendor/common/audioserver.te
deleted file mode 100644
index f861b65..0000000
--- a/generic/vendor/common/audioserver.te
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (c) 2018, 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.
-binder_call(audioserver, bootanim)
-
-# audio properties
-get_prop(audioserver, vendor_audio_prop)
-
-userdebug_or_eng(`
-    diag_use(audioserver)
-')
diff --git a/generic/vendor/common/bluetooth.te b/generic/vendor/common/bluetooth.te
deleted file mode 100644
index 305dc15..0000000
--- a/generic/vendor/common/bluetooth.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2018, 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.
-# Allow access to net_admin ioctls
-allowxperm bluetooth self:udp_socket ioctl priv_sock_ioctls;
-get_prop(bluetooth, vendor_bluetooth_prop)
diff --git a/generic/vendor/common/bootanim.te b/generic/vendor/common/bootanim.te
deleted file mode 100644
index 21172a6..0000000
--- a/generic/vendor/common/bootanim.te
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2018,2020, 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.
-allow bootanim hwservicemanager:binder call;
-
-# TODO(b/62954877). On Android Wear, bootanim reads the time
-# during boot to display. It currently gets that time from a file
-# in /data/system. This should be moved. In the meantime, suppress
-# this denial on phones since this functionality is not used.
-dontaudit bootanim system_data_file:dir read;
-
-dontaudit bootanim vendor_hal_qspmhal_hwservice:hwservice_manager find;
\ No newline at end of file
diff --git a/generic/vendor/common/cameraserver.te b/generic/vendor/common/cameraserver.te
deleted file mode 100644
index a7b9cd7..0000000
--- a/generic/vendor/common/cameraserver.te
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright (c) 2018, 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.
-allow cameraserver gpu_device:chr_file rw_file_perms;
-
-get_prop(cameraserver, vendor_camera_prop)
-
-allow cameraserver vendor_sysfs_camera:file r_file_perms;
-allow cameraserver vendor_sysfs_camera:dir search;
-allow cameraserver system_file:dir r_dir_perms;
-
-allow cameraserver system_server:unix_stream_socket { read write };
-
-# TODO (b/37688918) Verify that this is actually needed and not a violation of treble
-binder_call(cameraserver, mediacodec)
-
-#allow cameraserver to read adsprpc_prop
-get_prop(cameraserver, vendor_adsprpc_prop)
diff --git a/generic/vendor/common/cdsprpcd.te b/generic/vendor/common/cdsprpcd.te
deleted file mode 100644
index 80c1cb7..0000000
--- a/generic/vendor/common/cdsprpcd.te
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright (c) 2018, 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.
-
-# vendor_cdsprpcd daemon
-type vendor_cdsprpcd, domain;
-type vendor_cdsprpcd_exec, exec_type, vendor_file_type, file_type;
-
-# Started by init
-init_daemon_domain(vendor_cdsprpcd)
-
-# For reading dir/files on /dsp
-r_dir_file(vendor_cdsprpcd, adsprpcd_file)
-
-# For reading adsprpc_prop
-get_prop(vendor_cdsprpcd, vendor_adsprpc_prop)
-
-allow vendor_cdsprpcd vendor_qdsp_device:chr_file r_file_perms;
-allow vendor_cdsprpcd vendor_xdsp_device:chr_file r_file_perms;
-allow vendor_cdsprpcd ion_device:chr_file r_file_perms;
-
-r_dir_file(vendor_cdsprpcd, vendor_sysfs_devfreq)
-allow vendor_cdsprpcd vendor_sysfs_devfreq_l3cdsp:dir r_dir_perms;
-allow vendor_cdsprpcd vendor_sysfs_devfreq_l3cdsp:file rw_file_perms;
diff --git a/generic/vendor/common/charger.te b/generic/vendor/common/charger.te
deleted file mode 100644
index 68d82ef..0000000
--- a/generic/vendor/common/charger.te
+++ /dev/null
@@ -1,37 +0,0 @@
-# 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.
-allow charger self:capability2 wake_alarm;
-r_dir_file(charger, vendor_sysfs_battery_supply)
-r_dir_file(charger, vendor_sysfs_usb_supply)
-
-allow charger {
-    vendor_sysfs_battery_supply
-    vendor_sysfs_usb_supply
-}:file w_file_perms;
-
-dontaudit charger device:dir r_dir_perms;
-dontaudit charger self:capability sys_admin;
diff --git a/generic/vendor/common/chre.te b/generic/vendor/common/chre.te
deleted file mode 100644
index 5026498..0000000
--- a/generic/vendor/common/chre.te
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright (c) 2018, 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.
-# This daemon loads the Context Hub Runtime Environment (CHRE) dynamic modules
-# onto the SLPI using FastRPC, and exposes a sockets interface for clients on
-# the applications processor to interact CHRE
-type vendor_chre, domain;
-type vendor_chre_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_chre)
-r_dir_file(vendor_chre, adsprpcd_file)
-#allow vendor_chre to read adsprpc_prop
-get_prop(vendor_chre, vendor_adsprpc_prop)
-
-allow vendor_chre ion_device:chr_file r_file_perms;
-allow vendor_chre vendor_qdsp_device:chr_file r_file_perms;
-allow vendor_chre vendor_xdsp_device:chr_file r_file_perms;
-allow vendor_chre vendor_dsp_device:chr_file r_file_perms;
diff --git a/generic/vendor/common/cnd.te b/generic/vendor/common/cnd.te
deleted file mode 100644
index 831643e..0000000
--- a/generic/vendor/common/cnd.te
+++ /dev/null
@@ -1,87 +0,0 @@
-# Copyright (c) 2018-2020, 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.
-type vendor_cnd, domain;
-type vendor_cnd_exec, exec_type, vendor_file_type, file_type;
-file_type_auto_trans(vendor_cnd, socket_device, vendor_cnd_socket);
-
-# vendor_cnd is started by init, type transit from init domain to vendor_cnd domain
-init_daemon_domain(vendor_cnd)
-
-#communicating with QTI wlan driver for WFC/ VTiWLAN quality
-allow vendor_cnd self:capability net_bind_service;
-unix_socket_send(vendor_cnd, wpa, hal_wifi_supplicant)
-allow vendor_cnd wpa_data_file:dir w_dir_perms;
-allow vendor_cnd wpa_data_file:sock_file create_file_perms;
-
-#allow processing of VoWifi indications from modem over QMI while dozing
-allow vendor_cnd self:capability2 block_suspend;
-
-allow vendor_cnd self:udp_socket create_socket_perms;
-allow vendor_cnd self:{
-    # Allow receiving NETLINK responses from WLAN driver.
-    netlink_socket
-    netlink_generic_socket
-    qipcrtr_socket
-} create_socket_perms_no_ioctl;
-
-allowxperm vendor_cnd self:udp_socket ioctl SIOCGIFMTU;
-
-allow vendor_cnd vendor_sysfs_timestamp_switch:file r_file_perms;
-allow vendor_cnd vendor_sysfs_data:file r_file_perms;
-
-allow vendor_cnd proc_meminfo:file r_file_perms;
-
-set_prop(vendor_cnd, vendor_cnd_prop)
-
-# allow vendor_cnd to access vendor_cnd_data_file
-allow vendor_cnd vendor_cnd_data_file:file create_file_perms;
-allow vendor_cnd vendor_cnd_data_file:sock_file { unlink create setattr };
-allow vendor_cnd vendor_cnd_data_file:dir rw_dir_perms;
-
-# allow vendor_cnd to obtain wakelock
-wakelock_use(vendor_cnd)
-
-allow vendor_cnd vendor_ipa_vendor_data_file:dir r_dir_perms;
-allow vendor_cnd vendor_ipa_vendor_data_file:file r_file_perms;
-
-# To register vendor_cnd to hwbinder
-add_hwservice(vendor_cnd, vendor_hal_datafactory_hwservice)
-hwbinder_use(vendor_cnd)
-get_prop(vendor_cnd, hwservicemanager_prop)
-binder_call(vendor_cnd, vendor_dataservice_app)
-binder_call(vendor_cnd, vendor_qtidataservices_app)
-binder_call(vendor_cnd, vendor_ims)
-binder_call(vendor_cnd, vendor_ims_service)
-binder_call(vendor_cnd, vendor_location)
-
-r_dir_file(vendor_cnd, vendor_sysfs_ssr)
-
-#diag
-userdebug_or_eng(`
-    diag_use(vendor_cnd)
-	r_dir_file(vendor_cnd, vendor_sysfs_diag)
-')
diff --git a/generic/vendor/common/dataservice_app.te b/generic/vendor/common/dataservice_app.te
deleted file mode 100644
index 2c3f58a..0000000
--- a/generic/vendor/common/dataservice_app.te
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright (c) 2018-2020, 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.
-
-get_prop(vendor_dataservice_app, vendor_cnd_prop)
-
-allow vendor_dataservice_app vendor_hal_imsrcsd_hwservice:hwservice_manager find;
-allow vendor_dataservice_app vendor_hal_datafactory_hwservice:hwservice_manager find;
-
-allow vendor_dataservice_app vendor_sysfs_data:file r_file_perms;
-
-binder_call(vendor_dataservice_app, vendor_cnd)
-
-# imsrcsd to bind with UceShimService.apk
-binder_call(vendor_dataservice_app, vendor_hal_rcsservice)
-
-hal_client_domain(vendor_dataservice_app , vendor_hal_perf)
-# imsdaemon to bind with UceShimService.apk
-binder_call(vendor_dataservice_app, vendor_ims_service)
diff --git a/generic/vendor/common/device.te b/generic/vendor/common/device.te
deleted file mode 100644
index e80846f..0000000
--- a/generic/vendor/common/device.te
+++ /dev/null
@@ -1,69 +0,0 @@
-# Copyright (c) 2018-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.
-type vendor_ab_block_device, dev_type;
-type vendor_at_device, dev_type;
-type vendor_avtimer_device, dev_type;
-type vendor_bt_device, dev_type;
-type vendor_bu21150_device, dev_type;
-type vendor_citadel_device, dev_type;
-type vendor_custom_ab_block_device, dev_type;
-type vendor_diag_device, dev_type, mlstrustedobject;
-type vendor_dsp_device, dev_type;
-type vendor_xdsp_device, dev_type;
-type vendor_easel_device, dev_type;
-type vendor_hbtp_device, dev_type;
-type vendor_hvdcp_device, dev_type;
-type vendor_ipa_dev, dev_type;
-type vendor_latency_device, dev_type;
-type vendor_limits_block_device, dev_type;
-type vendor_modem_block_device, dev_type;
-type vendor_modem_efs_partition_device, dev_type;
-type vendor_mdtp_device, dev_type;
-type vendor_persist_block_device, dev_type;
-type vendor_vm_data_block_device, dev_type;
-type vendor_qsee_ipc_irq_spss_device, dev_type;
-type vendor_qdsp_device, dev_type, mlstrustedobject;
-type vendor_ramdump_device, dev_type;
-type vendor_ramdump_microdump_modem_device, dev_type;
-type vendor_rmnet_device, dev_type;
-type vendor_gpt_block_device, dev_type;
-type vendor_ramdump_block_device, dev_type;
-type vendor_rpmb_device, dev_type;
-type vendor_seemplog_device, dev_type;
-type vendor_sg_device, dev_type;
-type vendor_bsg_device, dev_type;
-type vendor_smd_device, dev_type;
-type vendor_spcom_device, dev_type;
-type vendor_ssd_block_device, dev_type;
-type vendor_ssr_device, dev_type;
-type vendor_synx_device, dev_type;
-type vendor_wlan_device, dev_type;
-type vendor_xbl_block_device, dev_type;
-type vendor_uefi_block_device, dev_type;
-type vendor_qce_device, dev_type;
-type vendor_npu_device, dev_type;
-type vendor_qmcs_block_device, dev_type;
diff --git a/generic/vendor/common/diag-router.te b/generic/vendor/common/diag-router.te
deleted file mode 100644
index 8346526..0000000
--- a/generic/vendor/common/diag-router.te
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright (c) 2020, 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.
-
-type vendor_diag-router, domain;
-type vendor_diag-router_exec, exec_type, vendor_file_type, file_type;
-userdebug_or_eng(`
-  init_daemon_domain(vendor_diag-router)
-  allow vendor_diag-router functionfs:dir r_dir_perms;
-  allow vendor_diag-router functionfs:file rw_file_perms;
-  allow vendor_diag-router self:qipcrtr_socket create_socket_perms_no_ioctl;
-  allow vendor_diag-router vendor_mhi_diag_device:chr_file rw_file_perms;
-  allow { domain -coredomain -hal_configstore -vendor_init} vendor_diag-router:unix_stream_socket connectto;
-')
diff --git a/generic/vendor/common/diag.te b/generic/vendor/common/diag.te
deleted file mode 100644
index 02a9edf..0000000
--- a/generic/vendor/common/diag.te
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright (c) 2018, 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.
-type vendor_diag, domain;
-type vendor_diag_exec, exec_type, vendor_file_type, file_type;
-userdebug_or_eng(`
-  domain_auto_trans(shell, vendor_diag_exec, vendor_diag)
-  #domain_auto_trans(adbd, vendor_diag_exec, vendor_diag)
-  allow vendor_diag {
-      vendor_diag_device
-      devpts
-      tty_device
-      # allow access to qseecom for drmdiagapp
-      tee_device
-  }:chr_file rw_file_perms;
-  allow vendor_diag {
-      shell
-      su
-  }:fd use;
-
-  allow vendor_diag {
-      cgroup
-      fuse
-      vendor_persist_drm_file
-  }:dir create_dir_perms;
-
-  allow vendor_diag port:tcp_socket name_connect;
-  allow vendor_diag self:capability { setuid net_raw sys_admin setgid };
-  allow vendor_diag self:capability2 syslog;
-  allow vendor_diag self:tcp_socket { create connect setopt};
-  wakelock_use(vendor_diag)
-  allow vendor_diag kernel:system syslog_mod;
-  # allow drmdiagapp access to drm related paths
-  allow vendor_diag mnt_vendor_file:dir r_dir_perms;
-  r_dir_file(vendor_diag, vendor_persist_data_file)
-  # Write to drm related pieces of persist partition
-  allow vendor_diag vendor_persist_drm_file:file create_file_perms;
-
-  # For DiagExample daemon
-  init_daemon_domain(vendor_diag)
-  net_domain(vendor_diag)
-
-  allow vendor_diag fuse:dir r_dir_perms;
-  allow vendor_diag fuse:file r_file_perms;
-  r_dir_file(vendor_diag, storage_file)
-  r_dir_file(vendor_diag, mnt_user_file)
-')
diff --git a/generic/vendor/common/domain.te b/generic/vendor/common/domain.te
deleted file mode 100644
index 5de2632..0000000
--- a/generic/vendor/common/domain.te
+++ /dev/null
@@ -1,72 +0,0 @@
-# Copyright (c) 2018, 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.
-userdebug_or_eng(`
-  allow domain vendor_diag_device:chr_file rw_file_perms;
-')
-
-# In order for /sys/kernel/debug/kgsl/proc/<pid>/mem
-# to be created for memory tracking, the domain of
-# the tracked process must have permission to search
-# in /sys/kernel/debug/kgsl
-allow domain vendor_debugfs_kgsl:dir search;
-
-allow domain vendor_debugfs_ion:dir search;
-
-get_prop(domain, vendor_gralloc_prop)
-
-r_dir_file({domain - isolated_app}, vendor_sysfs_soc);
-r_dir_file({domain - isolated_app}, vendor_sysfs_esoc);
-r_dir_file({domain - isolated_app}, vendor_sysfs_ssr);
-r_dir_file({domain - isolated_app}, sysfs_thermal);
-
-get_prop(domain, vendor_public_vendor_default_prop)
-
-dontaudit domain kernel:system module_request;
-
-# For compliance testing test suite reads vendor_security_path_level
-# Which is the public readable property “ ro.vendor.build.security_patch
-get_prop(domain, vendor_security_patch_level_prop)
-neverallow {
-     coredomain
-     -init
-     -ueventd
-     -vold
-     } vendor_persist_type: { dir file } *;
-
-allow { domain - isolated_app } vendor_sysfs_kgsl:dir search;
-# Allow all context to read gpu model
-allow { domain - isolated_app } vendor_sysfs_kgsl_gpu_model:file r_file_perms;
-allow { domain - isolated_app } vendor_sysfs_kgsl_gpubusy:file r_file_perms;
-allow { domain - isolated_app } vendor_sysfs_kgsl_max_gpuclk:file r_file_perms;
-allow { domain - isolated_app } vendor_sysfs_gpu_max_clock:file r_file_perms;
-
-neverallow {
-    coredomain
-    -init
-    -ueventd
-    -hal_graphics_composer_default
-} vendor_qmcs_file_type: { dir file } *;
diff --git a/generic/vendor/common/dontaudit.te b/generic/vendor/common/dontaudit.te
deleted file mode 100644
index f2b4e2d..0000000
--- a/generic/vendor/common/dontaudit.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2020, 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.
-
-dontaudit vendor_qti_init_shell self:capability dac_override;
-dontaudit vendor_modprobe proc_cmdline:file read;
diff --git a/generic/vendor/common/dspservice.te b/generic/vendor/common/dspservice.te
deleted file mode 100644
index 7d10574..0000000
--- a/generic/vendor/common/dspservice.te
+++ /dev/null
@@ -1,60 +0,0 @@
-# Copyright (c) 2020, 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.
-
-# Policy for DSP HAL service
-type vendor_dspservice, domain;
-type vendor_dspservice_exec, exec_type, vendor_file_type, file_type;
-
-# Started by init
-init_daemon_domain(vendor_dspservice)
-
-# Allow permissions required for this HAL server to offer a
-# HAL implementation of the specified type over HwBinder
-hal_server_domain(vendor_dspservice, vendor_hal_dspmanager)
-
-# Allow DSP clients to perform binder IPC to DSP HAL server
-binder_call(vendor_hal_dspmanager_client, vendor_hal_dspmanager_server)
-binder_call(vendor_hal_dspmanager_server, vendor_hal_dspmanager_client)
-
-# Add dspservice to hwservice_manager and allow it to be discovered
-hal_attribute_hwservice(vendor_hal_dspmanager, vendor_hal_dspmanager_hwservice)
-
-# For reading dir/files on "/vendor/dsp"
-r_dir_file(vendor_dspservice, adsprpcd_file)
-
-# For reading "vendor.fastrpc." properties
-get_prop(vendor_dspservice, vendor_adsprpc_prop)
-
-# Allow access to adsprpc secure and non-secure devices
-allow vendor_dspservice vendor_qdsp_device:chr_file r_file_perms;
-allow vendor_dspservice vendor_xdsp_device:chr_file r_file_perms;
-
-# Allow access to adsprpc ION device
-allow vendor_dspservice ion_device:chr_file r_file_perms;
-
-# Access to wakelock sysfs
-wakelock_use(vendor_dspservice)
diff --git a/generic/vendor/common/embmssl_app.te b/generic/vendor/common/embmssl_app.te
deleted file mode 100644
index 87cbd0d..0000000
--- a/generic/vendor/common/embmssl_app.te
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (c) 2020, 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.
-
-type vendor_embmssl_app, domain;
-app_domain(vendor_embmssl_app);
-
-#============= vendor_embmssl_app ==============
-net_domain(vendor_embmssl_app)
-unix_socket_connect(vendor_embmssl_app, vendor_dpmtcm, vendor_dpmd)
-allow vendor_embmssl_app { app_api_service radio_service }:service_manager find;
-
-#allow embmssl app to access embmssl hal
-hal_client_domain(vendor_embmssl_app, vendor_hal_embmssl);
-hal_client_domain(vendor_embmssl_app, vendor_hal_perf);
diff --git a/generic/vendor/common/fastbootd.te b/generic/vendor/common/fastbootd.te
deleted file mode 100644
index cf6d07d..0000000
--- a/generic/vendor/common/fastbootd.te
+++ /dev/null
@@ -1,50 +0,0 @@
-# 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.
-
-#Allow fastbootd
-recovery_only(`
-allow fastbootd {
-	vendor_custom_ab_block_device
-	recovery_block_device
-	vendor_xbl_block_device
-	vendor_uefi_block_device
-	vendor_ssd_block_device
-	vendor_modem_block_device
-	vendor_mdtp_device
-}:blk_file { rw_file_perms };
-
-
-# Allow fastbootd to read /sys/class/power_supply directory
-# and access to power supply, usb nodes.
-allow fastbootd sysfs:dir r_dir_perms;
-r_dir_file(fastbootd, vendor_sysfs_battery_supply)
-r_dir_file(fastbootd, vendor_sysfs_usb_supply)
-allow fastbootd {
-    vendor_sysfs_battery_supply
-    vendor_sysfs_usb_supply
-}:file w_file_perms;
-')
diff --git a/generic/vendor/common/feature_enabler_client.te b/generic/vendor/common/feature_enabler_client.te
deleted file mode 100644
index 3df91c2..0000000
--- a/generic/vendor/common/feature_enabler_client.te
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright (c) 2019 - 2020, 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.
-
-type vendor_feature_enabler_client, domain;
-type vendor_feature_enabler_client_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_feature_enabler_client)
-allow vendor_feature_enabler_client tee_device:chr_file rw_file_perms;
-allow vendor_feature_enabler_client ion_device:chr_file rw_file_perms;
-allow vendor_feature_enabler_client vendor_smcinvoke_device:chr_file rw_file_perms;
-unix_socket_connect(vendor_feature_enabler_client , vendor_ssgtzd, vendor_ssgtzd)
-
-
-# Allow read permission to /mnt/vendor/persist/vendor_feature_enabler_client/*
-allow vendor_feature_enabler_client mnt_vendor_file:dir search;
-r_dir_file(vendor_feature_enabler_client, vendor_persist_feature_enabler_file)
-
-# Allow read permission to /mnt/vendor/persist/data/*
-r_dir_file(vendor_feature_enabler_client, vendor_persist_data_file)
-
-# Binder access for featenab_client.service
-vndbinder_use(vendor_feature_enabler_client)
-allow vendor_feature_enabler_client vendor_qfeatenab_client_service:service_manager { add find };
-
-#Allow access to display services and graphics_device for DRM
-allow vendor_feature_enabler_client vendor_qdisplay_service:service_manager find;
-hal_client_domain(vendor_feature_enabler_client, hal_graphics_composer)
-allow vendor_feature_enabler_client graphics_device:chr_file rw_file_perms;
diff --git a/generic/vendor/common/file.te b/generic/vendor/common/file.te
deleted file mode 100644
index 76ad0ad..0000000
--- a/generic/vendor/common/file.te
+++ /dev/null
@@ -1,234 +0,0 @@
-# Copyright (c) 2018-2020 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.
-type vendor_sysfs_audio, fs_type, sysfs_type;
-type vendor_sysfs_battery_supply, sysfs_type, fs_type;
-type vendor_sysfs_bond0, fs_type, sysfs_type;
-type vendor_sysfs_boot_adsp, sysfs_type, fs_type;
-type vendor_sysfs_camera, sysfs_type, fs_type;
-type vendor_sysfs_cpu_boost, fs_type, sysfs_type;
-type vendor_sysfs_devfreq, fs_type, sysfs_type;
-type vendor_sysfs_easel, sysfs_type, fs_type;
-type vendor_sysfs_esoc, sysfs_type, fs_type;
-type vendor_sysfs_fingerprint, sysfs_type, fs_type;
-type vendor_sysfs_graphics, sysfs_type, fs_type;
-type vendor_sysfs_kgsl, sysfs_type, fs_type;
-type vendor_sysfs_kgsl_proc, sysfs_type, fs_type;
-type sysfs_kgsl_shell, sysfs_type, fs_type;
-type vendor_hbtp_kernel_sysfs, sysfs_type, fs_type;
-type vendor_sysfs_irqbalance, sysfs_type, fs_type;
-type vendor_sysfs_laser, sysfs_type, fs_type;
-type vendor_sysfs_mdss_mdp_caps, sysfs_type, fs_type;
-type vendor_sysfs_devfreq_l3cdsp, fs_type, sysfs_type;
-type vendor_sysfs_mmc_host, fs_type, sysfs_type;
-type vendor_sysfs_msm_perf, fs_type, sysfs_type;
-type vendor_sysfs_msm_power, fs_type, sysfs_type;
-type vendor_sysfs_msm_stats, fs_type, sysfs_type;
-type vendor_sysfs_msm_subsys_restart, sysfs_type, fs_type;
-type vendor_sysfs_sensors, sysfs_type, fs_type;
-type vendor_sysfs_sectouch, sysfs_type, fs_type;
-type vendor_sysfs_soc, sysfs_type, fs_type;
-type vendor_sysfs_scsi_host, fs_type, sysfs_type;
-type vendor_sysfs_scsi_target, fs_type, sysfs_type;
-type vendor_sysfs_slpi, fs_type, sysfs_type;
-type vendor_sysfs_spmi_dev, sysfs_type, fs_type;
-type vendor_sysfs_ssr, sysfs_type, fs_type;
-type vendor_sysfs_ssr_toggle, sysfs_type, fs_type;
-type vendor_sysfs_timestamp_switch, sysfs_type, fs_type;
-type vendor_sysfs_touch, sysfs_type, fs_type;
-type vendor_sysfs_uio_file, sysfs_type, fs_type;
-type vendor_sysfs_usb_c, sysfs_type, fs_type;
-type vendor_sysfs_usb_device, sysfs_type, fs_type;
-type vendor_sysfs_usb_supply, sysfs_type, fs_type;
-type vendor_sysfs_usbpd_device, sysfs_type, fs_type;
-type vendor_sysfs_vadc_dev, sysfs_type, fs_type;
-type vendor_sysfs_lcd, sysfs_type, fs_type;
-type vendor_sysfs_adsp_ssr, sysfs_type, fs_type;
-type vendor_sysfs_svm_neuron, sysfs_type, fs_type;
-type vendor_sysfs_trusted_touch_enable, sysfs_type, fs_type;
-type vendor_sysfs_trusted_touch_event, sysfs_type, fs_type;
-
-type vendor_debugfs_clk, debugfs_type, fs_type;
-type vendor_debugfs_ion, debugfs_type, fs_type;
-type vendor_debugfs_ipc, debugfs_type, fs_type;
-type vendor_debugfs_kgsl, debugfs_type, fs_type;
-type vendor_debugfs_rpm, debugfs_type, fs_type;
-type vendor_debugfs_rmt_storage, debugfs_type, fs_type;
-type vendor_debugfs_usb, debugfs_type, fs_type;
-type vendor_debugfs_wlan, debugfs_type, fs_type;
-type vendor_debugfs_mdp, debugfs_type, fs_type;
-type vendor_debugfs_icnss, debugfs_type, fs_type;
-
-# /proc
-type vendor_proc_wifi_dbg, fs_type, proc_type;
-type vendor_proc_audiod, fs_type, proc_type;
-type vendor_proc_shs, fs_type, proc_type;
-
-type vendor_qmuxd_socket, file_type;
-type vendor_rild_socket, file_type;
-type vendor_netmgrd_socket, file_type;
-type vendor_port-bridge_socket, file_type;
-type vendor_thermal_socket, file_type;
-
-#Define the qti socket type
-type vendor_dataqti_socket, file_type;
-
-type vendor_ims_socket, file_type;
-type vendor_ipacm_socket, file_type;
-type vendor_cnd_socket, file_type;
-type vendor_chre_socket, file_type;
-type vendor_hal_bootctl_socket, file_type;
-type vendor_location_socket, file_type;
-type vendor_wifihal_socket, file_type;
-type vendor_pps_socket, file_type;
-
-# imshelper_app file types
-type vendor_imshelper_app_data_file, file_type, data_file_type;
-
-type firmware_file, file_type, contextmount_type, vendor_file_type;
-
-type vendor_cnd_data_file, file_type, data_file_type;
-type vendor_location_data_file, file_type, data_file_type;
-type vendor_audio_data_file, file_type, data_file_type;
-type vendor_radio_data_file, file_type, data_file_type;
-type vendor_wifi_vendor_log_data_file, file_type, data_file_type;
-type vendor_log_wifi_data_file, file_type, data_file_type;
-# for mount /persist
-typeattribute mnt_vendor_file vendor_persist_type;
-type vendor_persist_file, file_type, vendor_persist_type;
-type vendor_persist_data_file, file_type , vendor_persist_type;
-type vendor_persist_display_file, file_type;
-type vendor_persist_drm_file, file_type, vendor_persist_type;
-type vendor_persist_elabel_file, file_type, vendor_persist_type;
-type vendor_persist_haptics_file, file_type, vendor_persist_type;
-type vendor_persist_rfs_file, file_type, vendor_persist_type;
-type vendor_persist_rfs_shared_hlos_file, file_type, vendor_persist_type;
-type vendor_persist_sensors_file, file_type, vendor_persist_type;
-type vendor_persist_time_file, file_type, vendor_persist_type;
-type vendor_persist_audio_file, file_type, vendor_persist_type;
-type vendor_persist_bluetooth_file, file_type, vendor_persist_type;
-type vendor_persist_alarm_file, file_type, vendor_persist_type;
-type vendor_persist_feature_enabler_file, file_type, vendor_persist_type;
-
-type vendor_netmgr_data_file, file_type, data_file_type;
-type vendor_netmgr_recovery_data_file, file_type, data_file_type;
-type vendor_qmipriod_data_file, file_type, data_file_type;
-type vendor_ipa_vendor_data_file, file_type, data_file_type;
-type vendor_shsusr_data_file, file_type, data_file_type;
-
-type vendor_tombstone_data_file, file_type, data_file_type;
-type vendor_camera_data_file, file_type, data_file_type;
-type vendor_display_vendor_data_file, file_type, data_file_type;
-type vendor_nfc_vendor_data_file, file_type, data_file_type;
-type vendor_radio_vendor_data_file, file_type, data_file_type, mlstrustedobject;
-type vendor_ramdump_vendor_data_file, file_type, data_file_type, mlstrustedobject;
-type vendor_pddump_data_file, file_type, data_file_type;
-type vendor_modem_dump_file, file_type, data_file_type;
-type vendor_sensors_vendor_data_file, file_type, data_file_type;
-type vendor_port_bridge_data_file, file_type, data_file_type;
-type bt_firmware_file, file_type, contextmount_type, vendor_file_type;
-type vendor_firmware_file, vendor_file_type, file_type;
-type vendor_mdmhelperdata_data_file, file_type, data_file_type;
-type vendor_mbn_data_file, file_type, data_file_type;
-type vendor_firmware_data_file, file_type, data_file_type;
-type vendor_qmcs_file, file_type, vendor_qmcs_file_type;
-allow { vendor_qmcs_file }self:filesystem associate;
-
-#vendor capability configstore hal
-type vendor_capabilityconfigstore_data_file, file_type, data_file_type;
-
-#widevine data file
-type vendor_mediadrm_vendor_data_file, file_type, data_file_type;
-
-#time-services data file
-type vendor_time_data_file, file_type, data_file_type;
-
-#data sysfs files
-type vendor_sysfs_data, fs_type, sysfs_type;
-
-#diag sysfs files
-type vendor_sysfs_diag, fs_type, sysfs_type;
-
-type vendor_hexagon_halide_file, vendor_file_type, file_type;
-
-# vendor media files
-type vendor_media_data_file, file_type, data_file_type;
-
-type adsprpcd_file, file_type, mlstrustedobject, vendor_file_type;
-
-# vm system files
-type vendor_vm_system_file, file_type, vendor_file_type;
-
-type vendor_hbtp_log_file, file_type, data_file_type;
-type vendor_hbtp_cfg_file, file_type, vendor_file_type;
-
-#tloc data files
-type vendor_tlocd_data_file, file_type, data_file_type;
-
-#qseecom
-type vendor_data_qsee_file, file_type, data_file_type;
-
-#TUI Files
-type vendor_tui_data_file, file_type, data_file_type;
-
-# SFS listener data file
-type vendor_data_tzstorage_file, file_type, data_file_type;
-
-#NNHAL files
-type vendor_hal_neuralnetworks_data_file, file_type, data_file_type;
-
-#BT Files
-type vendor_bt_data_file, file_type, data_file_type;
-
-type vendor_sysfs_usb_controller, sysfs_type, fs_type;
-
-#for qdss
-type vendor_sysfs_qdss_dev, sysfs_type, fs_type;
-
-#Define the qdcmss socket type
-type vendor_qdcmsocket_socket, file_type;
-type vendor_sysfs_mhi, sysfs_type, fs_type;
-
-type vendor_sysfs_suspend, fs_type, sysfs_type;
-
-# kgsl gpu model file type for sysfs access
-type vendor_sysfs_kgsl_gpu_model, sysfs_type, fs_type;
-
-# kgsl max gpuclk file type for sysfs access
-type vendor_sysfs_kgsl_max_gpuclk, sysfs_type, fs_type;
-
-#gpu max clock file type for sysfs acces
-type vendor_sysfs_gpu_max_clock, sysfs_type, fs_type;
-
-type vendor_sysfs_kgsl_gpuclk, sysfs_type, fs_type;
-type vendor_sysfs_kgsl_gpubusy, sysfs_type, fs_type;
-
-type vendor_sysfs_devicetree_cpu, sysfs_type, fs_type;
-
-type vendor_sysfs_devicetree_soc, sysfs_type, fs_type;
-
-# for qfprom0 node access
-type vendor_sysfs_qfprom, fs_type, sysfs_type;
diff --git a/generic/vendor/common/file_contexts b/generic/vendor/common/file_contexts
deleted file mode 100644
index 7c10df0..0000000
--- a/generic/vendor/common/file_contexts
+++ /dev/null
@@ -1,516 +0,0 @@
-# Copyright (c) 2018-2020 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.
-# dev nodes
-/dev/btpower                                    u:object_r:vendor_bt_device:s0
-/dev/diag                                       u:object_r:vendor_diag_device:s0
-/dev/kgsl-3d0                                   u:object_r:gpu_device:s0
-/dev/rtc0                                       u:object_r:rtc_device:s0
-/dev/smd.*                                      u:object_r:vendor_smd_device:s0
-/dev/msm_npu                                    u:object_r:vendor_npu_device:s0
-# TODO: does ttyMSM0 need to be more specific
-/dev/ttyMSM0                                    u:object_r:tty_device:s0
-/dev/ipa                                        u:object_r:vendor_ipa_dev:s0
-/dev/wwan_ioctl                                 u:object_r:vendor_ipa_dev:s0
-/dev/ipaNatTable                                u:object_r:vendor_ipa_dev:s0
-/dev/cpu_dma_latency                            u:object_r:vendor_latency_device:s0
-/dev/dpl_ctrl                                   u:object_r:vendor_rmnet_device:s0
-/dev/rmnet_ctrl.*                               u:object_r:vendor_rmnet_device:s0
-/dev/at_.*                                      u:object_r:vendor_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
-/dev/qsee_ipc_irq_spss                          u:object_r:vendor_qsee_ipc_irq_spss_device:s0
-/dev/seemplog                                   u:object_r:vendor_seemplog_device:s0
-/dev/spcom                                      u:object_r:vendor_spcom_device:s0
-/dev/jpeg[0-9]*                                 u:object_r:video_device:s0
-/dev/adsprpc-smd                                u:object_r:vendor_qdsp_device:s0
-/dev/adsprpc-smd-secure                         u:object_r:vendor_xdsp_device:s0
-/dev/sdsprpc-smd                                u:object_r:vendor_dsp_device:s0
-/dev/wcd-dsp-glink                              u:object_r:audio_device:s0
-/dev/wcd_dsp0_control                           u:object_r:audio_device:s0
-/dev/wcd-spi-ac-client                          u:object_r:audio_device:s0
-/dev/msm_.*                                     u:object_r:audio_device:s0
-/dev/avtimer                                    u:object_r:vendor_avtimer_device:s0
-/dev/subsys_.*                                  u:object_r:vendor_ssr_device:s0
-/dev/ramdump_.*                                 u:object_r:vendor_ramdump_device:s0
-/dev/ramdump_microdump_modem                    u:object_r:vendor_ramdump_microdump_modem_device:s0
-/dev/hbtp_input                                 u:object_r:vendor_hbtp_device:s0
-/dev/hbtp_vm                                    u:object_r:vendor_hbtp_device:s0
-/dev/sg[0-9]+                                   u:object_r:vendor_sg_device:s0
-/dev/ufs-bsg.*                                   u:object_r:vendor_bsg_device:s0
-/dev/0:0:0:49476                                u:object_r:vendor_bsg_device:s0
-/dev/sensors                                    u:object_r:sensors_device:s0
-/dev/mnh_sm                                     u:object_r:vendor_easel_device:s0
-/dev/easelcomm-client                           u:object_r:vendor_easel_device:s0
-/dev/citadel0                                   u:object_r:vendor_citadel_device:s0
-/dev/jdi-bu21150                                u:object_r:vendor_bu21150_device:s0
-/dev/usb_ext_chg                                u:object_r:vendor_hvdcp_device:s0
-/dev/synx_device                                u:object_r:vendor_synx_device:s0
-/dev/ipa_odl_ctl                                u:object_r:vendor_ipa_dev:s0
-/dev/ipa_adpl                                   u:object_r:vendor_ipa_dev:s0
-
-# dev socket nodes
-/dev/socket/chre                                u:object_r:vendor_chre_socket:s0
-/dev/socket/oemlock                             u:object_r:vendor_hal_bootctl_socket:s0
-/dev/socket/ims_qmid                            u:object_r:vendor_ims_socket:s0
-/dev/socket/ims_datad                           u:object_r:vendor_ims_socket:s0
-/dev/socket/ipacm_log_file                      u:object_r:vendor_ipacm_socket:s0
-/dev/socket/cnd                                 u:object_r:vendor_cnd_socket:s0
-/dev/socket/thermal-send-client                 u:object_r:vendor_thermal_socket:s0
-/dev/socket/thermal-recv-client                 u:object_r:vendor_thermal_socket:s0
-/dev/socket/thermal-recv-passive-client         u:object_r:vendor_thermal_socket:s0
-/dev/socket/thermal-send-rule                   u:object_r:vendor_thermal_socket:s0
-/dev/socket/netmgr(/.*)?                        u:object_r:vendor_netmgrd_socket:s0
-/dev/socket/port-bridge(/.*)?                   u:object_r:vendor_port-bridge_socket:s0
-/dev/socket/qti_dpm_uds_file                    u:object_r:vendor_dataqti_socket:s0
-/dev/socket/location(/.*)?                      u:object_r:vendor_location_socket:s0
-/dev/socket/wifihal(/.*)?                       u:object_r:vendor_wifihal_socket:s0
-/dev/socket/pps                                 u:object_r:vendor_pps_socket:s0
-/dev/nq-nci                                     u:object_r:nfc_device:s0
-/dev/ttyHS0                                     u:object_r:hci_attach_dev:s0
-/dev/wlan                                       u:object_r:vendor_wlan_device:s0
-/dev/socket/qmux_radio(/.*)?                    u:object_r:vendor_qmuxd_socket:s0
-/dev/socket/qcrild(/.*)?                        u:object_r:vendor_rild_socket:s0
-/data/vendor/modem_config(/.*)?                 u:object_r:vendor_mbn_data_file:s0
-/dev/socket/qdcmsocket                          u:object_r:vendor_qdcmsocket_socket:s0
-/dev/qce                                        u:object_r:vendor_qce_device:s0
-# Block device holding the GPT, where the A/B attributes are stored.
-/dev/block/sda                                  u:object_r:vendor_gpt_block_device:s0
-
-# Block devices for the drive that holds the xbl_a and xbl_b partitions.
-/dev/block/sd[bc]1?                             u:object_r:vendor_xbl_block_device:s0
-
-# Block device for hal_bootctl
-/dev/block/sde                                  u:object_r:boot_block_device:s0
-
-# Block device for ZRAM
-/dev/block/zram0                                u:object_r:swap_block_device:s0
-
-# files in /vendor
-/vendor/firmware(/.*)?          u:object_r:vendor_firmware_file:s0
-/vendor/bt_firmware(/.*)?       u:object_r:vendor_firmware_file:s0
-
-/vendor/bin/ATFWD-daemon        u:object_r:vendor_atfwd_exec:s0
-/vendor/bin/hw/android\.hardware\.vr@1\.0-service.crosshatch      u:object_r:hal_vr_default_exec:s0
-/vendor/bin/hw/android\.hardware\.biometrics\.fingerprint@2\.1-service\.fpc u:object_r:hal_fingerprint_default_exec:s0
-/vendor/bin/hw/android.hardware.thermal@2.0-service.qti      u:object_r:hal_thermal_default_exec:s0
-/vendor/bin/thermal-engine      u:object_r:vendor_thermal-engine_exec:s0
-/vendor/bin/sensors.qcom        u:object_r:vendor_sensors_exec:s0
-/vendor/bin/sensors.qti         u:object_r:vendor_sensors_exec:s0
-/vendor/bin/ssr_setup           u:object_r:vendor_ssr_setup_exec:s0
-/vendor/bin/ssr_diag            u:object_r:vendor_ssr_diag_exec:s0
-/vendor/bin/pm-service          u:object_r:vendor_per_mgr_exec:s0
-/vendor/bin/pm-proxy            u:object_r:vendor_per_proxy_exec:s0
-/vendor/bin/vmmgr               u:object_r:vendor_vm_mgr_exec:s0
-/vendor/bin/qseecomd            u:object_r:tee_exec:s0
-/vendor/bin/keymasterd          u:object_r:vendor_keymasterd_exec:s0
-/vendor/bin/subsystem_ramdump   u:object_r:vendor_subsystem_ramdump_exec:s0
-/vendor/bin/adsprpcd            u:object_r:vendor_adsprpcd_exec:s0
-/vendor/bin/cdsprpcd            u:object_r:vendor_cdsprpcd_exec:s0
-/vendor/bin/audioadsprpcd       u:object_r:vendor_audioadsprpcd_exec:s0
-/vendor/bin/dspservice          u:object_r:vendor_dspservice_exec:s0
-/vendor/bin/irsc_util           u:object_r:vendor_irsc_util_exec:s0
-/vendor/bin/rmt_storage         u:object_r:vendor_rmt_storage_exec:s0
-/vendor/bin/tftp_server         u:object_r:vendor_rfs_access_exec:s0
-/vendor/bin/cnss-daemon         u:object_r:vendor_wcnss_service_exec:s0
-/vendor/bin/cnss_diag           u:object_r:vendor_wcnss_service_exec:s0
-/vendor/bin/diag_mdlog          u:object_r:vendor_qlogd_exec:s0
-/vendor/bin/netmgrd             u:object_r:vendor_netmgrd_exec:s0
-/vendor/bin/qmipriod            u:object_r:vendor_qmipriod_exec:s0
-/vendor/bin/shsusrd             u:object_r:vendor_shsusrd_exec:s0
-/vendor/bin/port-bridge         u:object_r:vendor_port-bridge_exec:s0
-/vendor/bin/qti                 u:object_r:vendor_qti_exec:s0
-/vendor/bin/loc_launcher        u:object_r:vendor_location_exec:s0
-/vendor/bin/lowi-server         u:object_r:vendor_location_exec:s0
-/vendor/bin/xtra-daemon         u:object_r:vendor_location_exec:s0
-/vendor/bin/pd-mapper           u:object_r:vendor_pd_mapper_exec:s0
-/vendor/bin/imsqmidaemon        u:object_r:vendor_ims_exec:s0
-/vendor/bin/imsdatadaemon       u:object_r:vendor_ims_exec:s0
-/vendor/bin/ims_rtp_daemon      u:object_r:vendor_hal_imsrtp_exec:s0
-/vendor/bin/imsdaemon           u:object_r:vendor_ims_service_exec:s0
-/vendor/bin/ipacm               u:object_r:hal_tetheroffload_default_exec:s0
-/vendor/bin/ipacm-diag          u:object_r:hal_tetheroffload_default_exec:s0
-/vendor/bin/cnd                 u:object_r:vendor_cnd_exec:s0
-/vendor/bin/oemlock_provision   u:object_r:hal_bootctl_default_exec:s0
-/vendor/bin/oemlock-bridge      u:object_r:hal_bootctl_default_exec:s0
-/vendor/bin/diag-router         u:object_r:vendor_diag-router_exec:s0
-/(vendor|system/vendor)/bin/msm_irqbalance u:object_r:vendor_msm_irqbalanced_exec:s0
-/vendor/bin/hw/android\.hardware\.usb@1\.1-service.crosshatch             u:object_r:hal_usb_default_exec:s0
-/vendor/bin/chre                u:object_r:vendor_chre_exec:s0
-/vendor/bin/time_daemon         u:object_r:vendor_time_daemon_exec:s0
-/vendor/bin/imsrcsd             u:object_r:vendor_hal_rcsservice_exec:s0
-/vendor/bin/tloc_daemon         u:object_r:vendor_tlocd_exec:s0
-/(vendor|system/vendor)/bin/hw/android\.hardware\.power@1\.2-service        u:object_r:hal_power_default_exec:s0
-/(vendor|system/vendor)/bin/hw/android\.hardware\.power-service        u:object_r:hal_power_default_exec:s0
-
-/vendor/bin/hw/qcrild           u:object_r:rild_exec:s0
-/vendor/bin/hw/qcrilNrd         u:object_r:rild_exec:s0
-/vendor/bin/hw/android\.hardware\.vibrator@1\.1-service.crosshatch        u:object_r:hal_vibrator_default_exec:s0
-/vendor/bin/hw/android\.hardware\.keymaster@3\.0-service-qti         u:object_r:vendor_hal_keymaster_qti_exec:s0
-/vendor/bin/hw/android\.hardware\.keymaster@4\.0-service-qti         u:object_r:vendor_hal_keymaster_qti_exec:s0
-/vendor/bin/hw/android\.hardware\.keymaster@4\.1-service-qti         u:object_r:vendor_hal_keymaster_qti_exec:s0
-/vendor/bin/init\.qti\.keymaster\.sh                                 u:object_r:vendor_init-qti-keymaster-sh_exec:s0
-/vendor/bin/hw/android\.hardware\.gatekeeper@1\.0-service-qti        u:object_r:vendor_hal_gatekeeper_qti_exec:s0
-/(vendor|system/vendor)/bin/hw/android\.hardware\.gnss@.*-service-qti u:object_r:vendor_hal_gnss_qti_exec:s0
-/vendor/bin/hw/android\.hardware\.bluetooth@1\.0-service-qti         u:object_r:hal_bluetooth_default_exec:s0
-/(vendor|system/vendor)/bin/hw/android\.hardware\.drm@[0-9]+\.[0-9]+-service.widevine    u:object_r:vendor_hal_drm_widevine_exec:s0
-/(vendor|system/vendor)/bin/hw/android\.hardware\.drm@[0-9]+\.[2-9]+-service-lazy.widevine    u:object_r:vendor_hal_drm_widevine_exec:s0
-/(vendor|system/vendor)/bin/hw/android\.hardware\.drm-service\.widevine          u:object_r:vendor_hal_drm_widevine_exec:s0
-/(vendor|system/vendor)/bin/hw/android\.hardware\.drm-service-lazy\.widevine  u:object_r:vendor_hal_drm_widevine_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.display\.allocator@1\.0-service   u:object_r:hal_graphics_allocator_default_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.display\.allocator-service   u:object_r:hal_graphics_allocator_default_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.display\.composer@1\.0-service   u:object_r:hal_graphics_composer_default_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.display\.composer-service   u:object_r:hal_graphics_composer_default_exec:s0
-/(vendor|system/vendor)/bin/init\.qti\.display_boot\.sh  u:object_r:qti_display_boot_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.tui_comm@1\.0-service-qti u:object_r:vendor_hal_tui_comm_qti_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.qdutils_disp@1\.0-service-qti u:object_r:vendor_hal_qdutils_disp_qti_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.trustedui@1\.0-service-qti u:object_r:vendor_hal_trustedui_qti_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.capabilityconfigstore@1\.0-service u:object_r:vendor_hal_capabilityconfigstore_qti_default_exec:s0
-
-/(vendor|system/vendor)/bin/power_off_alarm        u:object_r:vendor_power_off_alarm_exec:s0
-
-/(vendor|system/vendor)/bin/grep                   u:object_r:vendor_toolbox_exec:s0
-
-/vendor/bin/hw/vendor\.display\.color@1\.0-service            u:object_r:vendor_hal_display_color_default_exec:s0
-/vendor/bin/hw/vendor\.qti\.media\.c2@1\.0-service               u:object_r:mediacodec_exec:s0
-/vendor/bin/hw/hardware\.google\.media\.c2@1\.0-service-software u:object_r:mediacodec_exec:s0
-/vendor/bin/feature_enabler_client          u:object_r:vendor_feature_enabler_client_exec:s0
-/(vendor|system/vendor)/bin/qdcmss              u:object_r:vendor_qdcm-ss_exec:s0
-
-###############################################
-# same-process HAL files and their dependencies
-#
-/vendor/lib(64)?/hw/gralloc\.qcom\.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)?/vendor\.qti\.hardware\.display\.mapper@1\.1\.so   u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/vendor\.qti\.hardware\.display\.mapper@2\.0\.so   u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/vendor\.qti\.hardware\.display\.mapperextensions@1\.0\.so   u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/vendor\.qti\.hardware\.display\.mapperextensions@1\.1\.so   u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/hw/android\.hardware\.graphics\.mapper@3\.0-impl-qti-display\.so   u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/vendor\.qti\.hardware\.display\.mapper@3\.0\.so   u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/hw/android\.hardware\.graphics\.mapper@4\.0-impl-qti-display\.so   u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/vendor\.qti\.hardware\.display\.mapper@4\.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)?/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
-/vendor/lib(64)?/libgralloc\.qti\.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
-/vendor/lib(64)?/libadreno_utils\.so       u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libgsl\.so                u:object_r:same_process_hal_file:s0
-
-/vendor/lib(64)?/hw/vulkan\.adreno\.so         u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libEGL_adreno\.so             u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libGLESv1_CM_adreno\.so       u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libGLESv2_adreno\.so          u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libadreno_app_profiles\.so    u:object_r:same_process_hal_file:s0
-
-/vendor/lib(64)?/libdrmutils\.so           u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libdrm\.so                u:object_r:same_process_hal_file:s0
-
-# /vendor/app/TimeService/TimeService.apk
-/vendor/lib(64)?/libTimeService\.so        u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libtime_genoff\.so        u:object_r:same_process_hal_file:s0
-
-# hbtp dependencies
-/vendor/lib(64)?/libhbtpitsjni\.so          u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libhbtpdbgclientjni\.so    u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libhbtpjni\.so             u:object_r:same_process_hal_file:s0
-
-# framework detect libs libvndfwk_detect_jni.qti and libqti_vndfwk_detect
-/vendor/lib(64)?/libvndfwk_detect_jni\.qti\.so             u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libqti_vndfwk_detect\.so             u:object_r:same_process_hal_file:s0
-
-# NPU files
-/vendor/lib(64)?/libnpu\.so                           u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libhta_controller\.so                u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libhta_hexagon_runtime\.so           u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/unnhal-acc-hta\.so                   u:object_r:same_process_hal_file:s0
-
-# RenderScript dependencies.
-# To test: run cts -m CtsRenderscriptTestCases
-/vendor/lib(64)?/libRSDriver_adreno\.so     u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libCB\.so                  u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libllvm-qgl\.so            u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libbccQTI\.so              u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libllvm-qcom\.so           u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/librs_adreno\.so           u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/librs_adreno_sha1\.so      u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libqti-perfd-client\.so    u:object_r:same_process_hal_file:s0
-
-# TODO(b/36895509): remove the following 2 lines once this bug is resolved
-# needed by radio
-/vendor/lib(64)?/libimsmedia_jni\.so        u:object_r:same_process_hal_file:s0
-
-# libGLESv2_adreno depends on this
-/vendor/lib(64)?/libllvm-glnext\.so         u:object_r:same_process_hal_file:s0
-
-# libOpenCL and its dependencies
-/vendor/lib(64)?/libOpenCL\.so              u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libq3dtools_adreno\.so     u:object_r:same_process_hal_file:s0
-
-# Loaded by native loader (zygote) for all processes
-/vendor/lib(64)?/libadsprpc\.so             u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libcdsprpc\.so             u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libsdsprpc\.so             u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libmdsprpc\.so             u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/vendor.qti.hardware.dsp@1.0\.so     u:object_r:same_process_hal_file:s0
-/vendor/lib/dsp/fastrpc_shell_0             u:object_r:same_process_hal_file:s0
-
-# Fastcv libs
-/vendor/lib(64)?/libfastcvdsp_stub\.so      u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libfastcvadsp_stub\.so     u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libfastcvopt\.so           u:object_r:same_process_hal_file:s0
-
-# data files
-/data/vendor/netmgr(/.*)?              u:object_r:vendor_netmgr_data_file:s0
-/data/vendor/netmgr/recovery(/.*)?     u:object_r:vendor_netmgr_recovery_data_file:s0
-/data/vendor/qmipriod(/.*)?            u:object_r:vendor_qmipriod_data_file:s0
-/data/vendor/shsusr(/.*)?              u:object_r:vendor_shsusr_data_file:s0
-/data/vendor/location(/.*)?            u:object_r:vendor_location_data_file:s0
-/data/vendor/camera(/.*)?              u:object_r:vendor_camera_data_file:s0
-/data/vendor/display(/.*)?             u:object_r:vendor_display_vendor_data_file:s0
-/data/vendor/nfc(/.*)?                 u:object_r:vendor_nfc_vendor_data_file:s0
-/data/vendor/radio(/.*)?               u:object_r:vendor_radio_vendor_data_file:s0
-/data/vendor/wifi/wlan_logs(/.*)?      u:object_r:vendor_wifi_vendor_log_data_file:s0
-/data/vendor/log/wifi(/.*)?            u:object_r:vendor_log_wifi_data_file:s0
-/data/vendor/ramdump(/.*)?             u:object_r:vendor_ramdump_vendor_data_file:s0
-/data/vendor/ssrdump(/.*)?             u:object_r:vendor_ramdump_vendor_data_file:s0
-/data/vendor/pddump(/.*)?              u:object_r:vendor_pddump_data_file:s0
-/data/vendor/modem_dump(/.*)?          u:object_r:vendor_modem_dump_file:s0
-/data/vendor/ipa(/.*)?                 u:object_r:vendor_ipa_vendor_data_file:s0
-/data/vendor/sensors(/.*)?             u:object_r:vendor_sensors_vendor_data_file:s0
-/data/vendor/port_bridge(/.*)?         u:object_r:vendor_port_bridge_data_file:s0
-/data/vendor/tloc(/.*)?                u:object_r:vendor_tlocd_data_file:s0
-/data/vendor/connectivity(/.*)?        u:object_r:vendor_cnd_data_file:s0
-/data/vendor/misc/qsee(/.*)?           u:object_r:vendor_data_qsee_file:s0
-/data/vendor/tui(/.*)?                 u:object_r:vendor_tui_data_file:s0
-/data/vendor/tzstorage(/.*)?           u:object_r:vendor_data_tzstorage_file:s0
-/data/vendor/tombstones(/.*)?       u:object_r:vendor_tombstone_data_file:s0
-/data/vendor/time(/.*)?                u:object_r:vendor_time_data_file:s0
-/data/vendor/firmware(/.*)?                u:object_r:vendor_firmware_data_file:s0
-
-/data/vendor/mdmhelperdata(/.*)?       u:object_r:vendor_mdmhelperdata_data_file:s0
-/data/vendor/bluetooth(/.*)?           u:object_r:vendor_bt_data_file:s0
-# audio_data_file
-/data/vendor/audio(/.*)? u:object_r:vendor_audio_data_file:s0
-
-# /
-/tombstones                          u:object_r:rootfs:s0
-/vendor/dsp(/.*)?                    u:object_r:adsprpcd_file:s0
-/vendor/vm-system(/.*)?              u:object_r:vendor_vm_system_file:s0
-
-# /persist
-/mnt/vendor/persist/data(/.*)?       u:object_r:vendor_persist_data_file:s0
-/mnt/vendor/persist/display(/.*)?    u:object_r:vendor_persist_display_file:s0
-/mnt/vendor/persist/drm(/.*)?        u:object_r:vendor_persist_drm_file:s0
-/mnt/vendor/persist/elabel(/.*)?     u:object_r:vendor_persist_elabel_file:s0
-/mnt/vendor/persist/haptics(/.*)?    u:object_r:vendor_persist_haptics_file:s0
-/mnt/vendor/persist/hlos_rfs(/.*)?   u:object_r:vendor_persist_rfs_shared_hlos_file:s0
-/mnt/vendor/persist/rfs(/.*)?        u:object_r:vendor_persist_rfs_file:s0
-/mnt/vendor/persist/sensors(/.*)?    u:object_r:vendor_persist_sensors_file:s0
-/mnt/vendor/persist/time(/.*)?       u:object_r:vendor_persist_time_file:s0
-/mnt/vendor/persist/audio(/.*)?      u:object_r:vendor_persist_audio_file:s0
-/mnt/vendor/persist/feature_enabler_client(/.*)? u:object_r:vendor_persist_feature_enabler_file:s0
-
-# /qmcs
-/mnt/vendor/qmcs(/.*)?         u:object_r:vendor_qmcs_file:s0
-
-# graphics device
-/dev/mdss_rotator                               u:object_r:graphics_device:s0
-/dev/dri/card0                                  u:object_r:graphics_device:s0
-/dev/dri/controlD64                             u:object_r:graphics_device:s0
-/dev/dri/renderD128                             u:object_r:graphics_device:s0
-
-#TODO: move this to genfs_context or target based file_context
-# sysfs_leds
-/sys/devices/platform/soc/[a-f0-9]+.qcom,spmi/spmi-0/spmi0-0[0-9]/[a-f0-9]+.qcom,spmi:qcom,[a-z0-9]+@[0-9]:qcom,haptics@c000/leds/vibrator(/.*)?   u:object_r:sysfs_leds:s0
-
-# vendor_sysfs_devfreq
-/sys/devices(/platform)?/soc/soc:qcom,l3-cpu[0-9]/devfreq/soc:qcom,l3-cpu[0-9](/.*)? u:object_r:vendor_sysfs_devfreq:s0
-
-#vendor_sysfs_data
-/sys/devices/virtual/xt_hardidletimer/timers(/.*)?                  u:object_r:vendor_sysfs_data:s0
-/sys/devices/virtual/xt_idletimer/timers(/.*)?                      u:object_r:vendor_sysfs_data:s0
-
-#persist_bluetooth_file
-/mnt/vendor/persist/bluetooth(/.*)?                                 u:object_r:vendor_persist_bluetooth_file:s0
-
-#power off alarm file
-/mnt/vendor/persist/alarm(/.*)?                                     u:object_r:vendor_persist_alarm_file:s0
-
-/(vendor|system/vendor)/bin/hbtp_daemon                             u:object_r:vendor_hbtp_exec:s0
-/(vendor|system/vendor)/bin/sscrpcd                                 u:object_r:vendor_sensors_exec:s0
-/(vendor|system/vendor)/bin/lowirpcd                                u:object_r:vendor_lowirpcd_service_exec:s0
-
-# vendor_sysfs_graphics
-/sys/class/graphics/fb0/mdp/caps                                    u:object_r:vendor_sysfs_graphics:s0
-/sys/class/thermal(/.*)?                                            u:object_r:sysfs_thermal:s0
-/sys/devices/virtual/graphics/fb([0-3])+/idle_time                  u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/dynamic_fps                u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/product_description        u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/vendor_name                u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/hdcp/tp                    u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/msm_fb_panel_status        u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/hpd                        u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/res_info                   u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/s3d_mode                   u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/msm_fb_panel_info          u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/msm_fb_type                u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/msm_fb_split               u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/show_blank_event           u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/bl_event                   u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/ad_event                   u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/ad_bl_event                u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/hist_event                 u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/vsync_event                u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/lineptr_event              u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/idle_notify                u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/msm_fb_thermal_level       u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/idle_power_collapse        u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/mode                       u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/name                       u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/connected                  u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/msm_cmd_autorefresh_en     u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/mdp/bw_mode_bitmap         u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/edid_modes                 u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/hdcp2p2(/.*)               u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/scan_info                  u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/edid_3d_modes              u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/msm_fb_dfps_mode           u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/msm_fb_src_split_info      u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/hdr_stream                 u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/cec(/.*)                   u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/msmfb_b10(/.*)             u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/modes                      u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/edid_raw_data              u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/packpattern                u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/dyn_pu                     u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/ad                         u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/graphics/fb([0-3])+/pp_bl_event                u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/rotator/mdss_rotator/caps                      u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/hdcp/msm_hdcp/min_level_change                 u:object_r:vendor_sysfs_graphics:s0
-/sys/class/lcd_bias/secure_mode                                     u:object_r:vendor_sysfs_graphics:s0
-/sys/class/leds/wled/secure_mode                                    u:object_r:vendor_sysfs_graphics:s0
-
-/sys/devices/platform/vfb.([0-3])+/graphics/fb([0-3])+/modes        u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/platform/vfb.([0-3])+/graphics/fb([0-3])+/mode         u:object_r:vendor_sysfs_graphics:s0
-/sys/module/drm/parameters/vblankoffdelay                           u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/platform/soc/[a-f0-9]+.qcom,mdss_mdp/drm/card([0-3])+/card([0-3])+-DSI-1/modes u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/platform/soc/[a-f0-9]+.qcom,mdss_mdp/drm/card([0-3])+/card([0-3])+-DSI-1/status u:object_r:vendor_sysfs_graphics:s0
-/sys/class/graphics/fb([0-3])+/mdp/caps                             u:object_r:vendor_sysfs_graphics:s0
-/sys/class/graphics/fb([0-3])+/ad                                   u:object_r:vendor_sysfs_graphics:s0
-/sys/devices(/platform)?/soc/[0-9a-f]+.qcom,spmi/spmi-[0-9]+/spmi[0-9]+-[0-9]+/[0-9a-f]+.qcom,spmi:qcom,pmi[0-9]+@[0-9]+:qcom,leds@[a-f0-9]+(/.*)? u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/platform/soc/ae00000.qcom,mdss_mdp/backlight(/.*)?     u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/virtual/switch/hdmi(/.*)?                              u:object_r:vendor_sysfs_graphics:s0
-/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,mdss_mdp/[a-f0-9]+.qcom,mdss_mdp:qcom,mdss_fb_primary/leds/lcd-backlight(/.*)?   u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/soc.0/[a-f0-9]+.qcom,mdss_mdp/qcom,mdss_fb_primary.+[a-f0-9]/leds/lcd-backlight(/.*)?   u:object_r:vendor_sysfs_graphics:s0
-/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,mdss_mdp/caps           u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/soc/[a-f0-9]+.qcom,mdss_mdp/bw_mode_bitmap             u:object_r:vendor_sysfs_graphics:s0
-/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,mdss_mdp/bw_mode_bitmap             u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/soc.0/[a-f0-9]+.qcom,mdss_mdp/bw_mode_bitmap            u:object_r:vendor_sysfs_graphics:s0
-/sys/devices/soc.0/[a-f0-9]+.qcom,mdss_mdp/caps                      u:object_r:vendor_sysfs_graphics:s0
-/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,mdss_cam/video4linux/video[0-33]/name(/.*)?   u:object_r:vendor_sysfs_graphics:s0
-/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,mdss_rotator/video4linux/video[0-33]/name(/.*)?   u:object_r:vendor_sysfs_graphics:s0
-/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,mdss_rotator/caps       u:object_r:vendor_sysfs_graphics:s0
-/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,vidc/video4linux/video[0-33]/name(/.*)?   u:object_r:vendor_sysfs_graphics:s0
-/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,cci/[a-f0-9]+.qcom,cci:qcom,camera@[0-2]/video4linux/video[0-33]/name(/.*)?   u:object_r:vendor_sysfs_graphics:s0
-
-/sys/devices(/platform)?/soc/[a-f0-9]+.sdhci/mmc_host/mmc0/clk_scaling(/.*)? u:object_r:vendor_sysfs_mmc_host:s0
-/sys/devices(/platform)?/soc/[a-f0-9]+.ufshc/clkscale_enable        u:object_r:vendor_sysfs_scsi_host:s0
-/sys/devices(/platform)?/soc/[a-f0-9]+.ufshc/auto_hibern8           u:object_r:vendor_sysfs_scsi_host:s0
-/sys/devices(/platform)?/soc/[a-f0-9]+/host0/scsi_host/host0(/.*)?  u:object_r:vendor_sysfs_scsi_host:s0
-/sys/devices(/platform)?/soc/[a-f0-9]+.ufshc/host0/target0:0:0/0:0:0:[0-9]+/scsi_generic(/.*)?     u:object_r:vendor_sysfs_scsi_target:s0
-
-# VM Neuron block device mapping node
-/sys/devices/platform/soc/soc:qcom,svm_neuron_block/soc:qcom,svm_neuron_block:application/blk_name  u:object_r:vendor_sysfs_svm_neuron:s0
-
-/data/vendor/media(/.*)?                                            u:object_r:vendor_media_data_file:s0
-/data/vendor/mediadrm(/.*)?                                         u:object_r:vendor_mediadrm_vendor_data_file:s0
-/data/vendor/nnhal(/.*)?                                            u:object_r:vendor_hal_neuralnetworks_data_file:s0
-
-# Moved to target specfic folder so removing this from common file
-#/sys/devices(/platform)?/soc/[a-f0-9\.:]+,[a-f0-9\-\_]+/subsys[0-9]+/name u:object_r:vendor_sysfs_ssr:s0
-
-/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,kgsl-3d0/kgsl/kgsl-3d0(/.*)? u:object_r:vendor_sysfs_kgsl:s0
-/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,kgsl-3d0/devfreq/[a-f0-9]+.qcom,kgsl-3d0(/.*)? u:object_r:vendor_sysfs_kgsl:s0
-/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,kgsl-3d0/kgsl/kgsl-3d0/gpu_model u:object_r:vendor_sysfs_kgsl_gpu_model:s0
-/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,kgsl-3d0/kgsl/kgsl-3d0/gpuclk u:object_r:vendor_sysfs_kgsl_gpuclk:s0
-/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,kgsl-3d0/kgsl/kgsl-3d0/max_gpuclk u:object_r:vendor_sysfs_kgsl_max_gpuclk:s0
-/sys/devices/platform/soc/3d00000\.qcom,kgsl-3d0/kgsl/kgsl-3d0/gpubusy u:object_r:vendor_sysfs_kgsl_gpubusy:s0
-
-/sys/devices/soc/[a-f0-9]+.ssusb/power_supply/usb(/.*)?             u:object_r:vendor_sysfs_usb_supply:s0
-
-/data/(misc|vendor)/hbtp(/.*)?                                      u:object_r:vendor_hbtp_log_file:s0
-/vendor/etc/hbtp/*                                                  u:object_r:vendor_hbtp_cfg_file:s0
-
-/sys/devices/soc/qpnp-vadc-[0-9]+(/.*)?                             u:object_r:vendor_sysfs_vadc_dev:s0
-
-# Files in /sys/kernel/gpu/
-/sys/kernel/gpu/gpu_max_clock                                       u:object_r:vendor_sysfs_gpu_max_clock:s0
-
-#Android NN Driver
-/vendor/bin/hw/android\.hardware\.neuralnetworks@1\.3-service-qti   u:object_r:vendor_hal_neuralnetworks_default_exec:s0
-
-#Light AIDL HAL
-/(vendor|system/vendor)/bin/hw/android\.hardware\.lights-service\.qti   u:object_r:hal_light_default_exec:s0
-
-/(vendor|system/vendor)/bin/init\.class_main\.sh        u:object_r:vendor_qti_init_shell_exec:s0
-/(vendor|system/vendor)/bin/init\.crda\.sh              u:object_r:vendor_qti_init_shell_exec:s0
-/(vendor|system/vendor)/bin/init\.mdm\.sh               u:object_r:vendor_qti_init_shell_exec:s0
-/(vendor|system/vendor)/bin/init\.qcom\.sh              u:object_r:vendor_qti_init_shell_exec:s0
-/(vendor|system/vendor)/bin/init\.qcom\.class_core\.sh  u:object_r:vendor_qti_init_shell_exec:s0
-/(vendor|system/vendor)/bin/init\.qcom\.coex\.sh        u:object_r:vendor_qti_init_shell_exec:s0
-/(vendor|system/vendor)/bin/init\.qcom\.crashdata\.sh   u:object_r:vendor_init-qcom-crashdata-sh_exec:s0
-/(vendor|system/vendor)/bin/init\.qcom\.debug\.sh       u:object_r:vendor_qti_init_shell_exec:s0
-/(vendor|system/vendor)/bin/init\.qcom\.debug-sdm660\.sh    u:object_r:vendor_qti_init_shell_exec:s0
-/(vendor|system/vendor)/bin/init\.qcom\.debug-sdm670\.sh    u:object_r:vendor_qti_init_shell_exec:s0
-/(vendor|system/vendor)/bin/init\.qcom\.early_boot\.sh  u:object_r:vendor_qti_init_shell_exec:s0
-/(vendor|system/vendor)/bin/init\.qcom\.efs\.sync\.sh   u:object_r:vendor_qti_init_shell_exec:s0
-/(vendor|system/vendor)/bin/init\.qcom\.post_boot\.sh   u:object_r:vendor_qti_init_shell_exec:s0
-/(vendor|system/vendor)/bin/init\.qti\.dcvs\.sh        u:object_r:vendor_init-qti-dcvs-sh_exec:s0
-/(vendor|system/vendor)/bin/init\.qcom\.sdio\.sh        u:object_r:vendor_qti_init_shell_exec:s0
-/(vendor|system/vendor)/bin/init\.qcom\.sensors\.sh     u:object_r:vendor_init-qcom-sensors-sh_exec:s0
-/(vendor|system/vendor)/bin/init\.qcom\.syspart_fixup\.sh   u:object_r:vendor_qti_init_shell_exec:s0
-/(vendor|system/vendor)/bin/init\.qcom\.usb\.sh         u:object_r:vendor_qti_init_shell_exec:s0
-/(vendor|system/vendor)/bin/init\.qcom\.wifi\.sh        u:object_r:vendor_qti_init_shell_exec:s0
-/(vendor|system/vendor)/bin/init\.qti\.ims\.sh          u:object_r:vendor_init-qti-ims-sh_exec:s0
-/(vendor|system/vendor)/bin/qca6234-service.sh          u:object_r:vendor_qti_init_shell_exec:s0
-/(vendor|system/vendor)/bin/init\.qti\.kernel\.sh       u:object_r:vendor_qti_init_shell_exec:s0
-/(vendor|system/vendor)/bin/init\.kernel\.post_boot\.sh       u:object_r:vendor_qti_init_shell_exec:s0
-/(vendor|system/vendor)/bin/init\.qti\.qcv\.sh          u:object_r:vendor_qti_init_shell_exec:s0
-
-#Limits sysfs node
-/sys/module/msm_isense_cdsp/data                        u:object_r:sysfs_thermal:s0
-
-/(vendor|system/vendor)/bin/vendor_modprobe\.sh        u:object_r:vendor_modinstall-sh_exec:s0
-
-/vendor/bin/embmsslServer       u:object_r:vendor_hal_embmssl_qti_exec:s0
diff --git a/generic/vendor/common/fsck.te b/generic/vendor/common/fsck.te
deleted file mode 100644
index 488eff2..0000000
--- a/generic/vendor/common/fsck.te
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (c) 2017, 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.
-
-
-allow fsck vendor_persist_block_device:blk_file rw_file_perms;
-allow fsck vendor_qmcs_block_device:blk_file rw_file_perms;
-allowxperm fsck vendor_qmcs_block_device:blk_file ioctl { BLKGETSIZE };
diff --git a/generic/vendor/common/genfs_contexts b/generic/vendor/common/genfs_contexts
deleted file mode 100644
index 6d30b48..0000000
--- a/generic/vendor/common/genfs_contexts
+++ /dev/null
@@ -1,152 +0,0 @@
-# Copyright (c) 2018, 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.
-genfscon proc /debug/fwdump                           u:object_r:vendor_proc_wifi_dbg:s0
-genfscon proc /debugdriver/driverdump                 u:object_r:vendor_proc_wifi_dbg:s0
-genfscon proc /ath_pktlog/cld                         u:object_r:vendor_proc_wifi_dbg:s0
-genfscon proc /shs                                    u:object_r:vendor_proc_shs:s0
-
-genfscon sysfs /android_touch                         u:object_r:vendor_sysfs_touch:s0
-genfscon sysfs /devices/virtual/input/ftm4_touch      u:object_r:vendor_sysfs_touch:s0
-
-#genfscon sysfs /class/rfkill/rfkill0/state            u:object_r:sysfs_bluetooth_writable:s0
-genfscon sysfs /kernel/irq_helper/irq_blacklist_on    u:object_r:vendor_sysfs_irqbalance:s0
-
-genfscon sysfs /kernel/wcd_cpe0                                         u:object_r:vendor_sysfs_audio:s0
-genfscon sysfs /class/uio                                               u:object_r:sysfs_uio:s0
-genfscon sysfs /devices/soc/soc:bt_wcn3990                              u:object_r:sysfs_bluetooth_writable:s0
-genfscon sysfs /class/devfreq                                           u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpubw/devfreq 		u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,memlat-cpu0/devfreq 	u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,memlat-cpu2/devfreq 	u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,memlat-cpu4/devfreq 	u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,memlat-cpu6/devfreq 	u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,l3-cpu0/devfreq 		u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,l3-cpu2/devfreq 		u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,l3-cpu4/devfreq 		u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,l3-cpu6/devfreq		u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,mincpubw/devfreq		u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,llccbw/devfreq 		u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/soc/soc:qcom,cpubw/devfreq 			u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/soc/soc:qcom,memlat-cpu0/devfreq 		u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/soc/soc:qcom,memlat-cpu2/devfreq 		u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/soc/soc:qcom,memlat-cpu4/devfreq 		u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/soc/soc:qcom,memlat-cpu6/devfreq 		u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/soc/soc:qcom,mincpubw/devfreq 			u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom.qcom,mdss_mdp/caps             u:object_r:vendor_sysfs_mdss_mdp_caps:s0
-genfscon sysfs /devices/platform/soc/c17a000.i2c/i2c-6/6-005a/leds               u:object_r:sysfs_leds:s0
-genfscon sysfs /devices/platform/soc/c1b5000.i2c/i2c-7/7-0030/leds               u:object_r:sysfs_leds:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/c900000.qcom,mdss_mdp:qcom,mdss_fb_primary/leds u:object_r:sysfs_leds:s0
-genfscon sysfs /devices/platform/soc/800f000.qcom,spmi/spmi-0/spmi0-03/800f000.qcom,spmi:qcom,pmi8998@3:qcom,leds@d000/leds u:object_r:sysfs_leds:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,ipa_fws@1e08000                    u:object_r:vendor_sysfs_data:s0
-genfscon sysfs /devices/platform/soc/0.qcom,rmtfs_sharedmem/uio		u:object_r:vendor_sysfs_uio_file:s0
-genfscon sysfs /devices/platform/soc/soc:fp_fpc1020                              u:object_r:vendor_sysfs_fingerprint:s0
-genfscon sysfs /devices/virtual/wahoo_laser                             u:object_r:vendor_sysfs_laser:s0
-genfscon sysfs /module/cpu_boost                                        u:object_r:vendor_sysfs_cpu_boost:s0
-genfscon sysfs /devices/virtual/thermal                                 u:object_r:sysfs_thermal:s0
-genfscon sysfs /class/thermal                                           u:object_r:sysfs_thermal:s0
-genfscon sysfs /class/lcd_bias                                          u:object_r:vendor_sysfs_lcd:s0
-genfscon sysfs /module/msm_thermal                                      u:object_r:sysfs_thermal:s0
-genfscon sysfs /devices/platform/battery_current_limit                  u:object_r:sysfs_thermal:s0
-genfscon sysfs /module/diagchar/parameters/timestamp_switch             u:object_r:vendor_sysfs_timestamp_switch:s0
-genfscon sysfs /module/msm_performance                                  u:object_r:vendor_sysfs_msm_perf:s0
-genfscon sysfs /module/lpm_levels                                       u:object_r:vendor_sysfs_msm_power:s0
-genfscon sysfs /module/lpm_stats                                        u:object_r:vendor_sysfs_msm_stats:s0
-genfscon sysfs /devices/virtual/graphics/fb0                            u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/virtual/graphics/fb1                            u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/soc/8c0000.qcom,msm-cam                         u:object_r:vendor_sysfs_camera:s0
-genfscon sysfs /devices/soc0                                            u:object_r:vendor_sysfs_soc:s0
-genfscon sysfs /devices/soc/caa0000.qcom,jpeg                           u:object_r:vendor_sysfs_camera:s0
-genfscon sysfs /devices/soc/caa4000.qcom,fd                             u:object_r:vendor_sysfs_camera:s0
-genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qpnp,fg/power_supply/bms/capacity               u:object_r:sysfs_batteryinfo:s0
-genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,qpnp-smb2/power_supply/battery/capacity    u:object_r:sysfs_batteryinfo:s0
-genfscon sysfs /bus/msm_subsys                                          u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /module/subsystem_restart                                u:object_r:vendor_sysfs_msm_subsys_restart:s0
-genfscon sysfs /kernel/boot_adsp/boot                                   u:object_r:vendor_sysfs_boot_adsp:s0
-genfscon sysfs /kernel/boot_slpi                                        u:object_r:vendor_sysfs_slpi:s0
-genfscon sysfs /devices/soc/c1b7000.i2c/i2c-9/9-0008                    u:object_r:vendor_sysfs_easel:s0
-genfscon sysfs /class/typec                                             u:object_r:vendor_sysfs_usb_c:s0
-genfscon sysfs /class/typec/usbc0                                       u:object_r:vendor_sysfs_usb_c:s0
-genfscon sysfs /devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto/usb1 u:object_r:vendor_sysfs_usb_device:s0
-genfscon sysfs /devices/soc/a800000.ssusb/a800000.dwc3/xhci-hcd.0.auto/usb2 u:object_r:vendor_sysfs_usb_device:s0
-genfscon sysfs /devices/platform/soc/a600000.ssusb/mode                 u:object_r:vendor_sysfs_usb_device:s0
-genfscon sysfs /devices/platform/soc/a800000.ssusb/mode                 u:object_r:vendor_sysfs_usb_device:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-0/retire_frame_event u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-1/retire_frame_event u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-2/retire_frame_event u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/5e00000.qcom,mdss_mdp/drm/card0/sde-crtc-0/retire_frame_event u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/5e00000.qcom,mdss_mdp/drm/card0/sde-crtc-1/retire_frame_event u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/5e00000.qcom,mdss_mdp/drm/card0/sde-crtc-2/retire_frame_event u:object_r:vendor_sysfs_graphics:s0
-
-genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,usb-pdphy@1700/usbpd0/typec     u:object_r:vendor_sysfs_usb_c:s0
-genfscon sysfs /module/diagchar                                         u:object_r:vendor_sysfs_diag:s0
-
-genfscon sysfs /devices/virtual/kgsl                                           u:object_r:vendor_sysfs_kgsl:s0
-genfscon sysfs /class/kgsl                                                     u:object_r:vendor_sysfs_kgsl:s0
-genfscon sysfs /class/kgsl/kgsl-3d0/perfcounter                                u:object_r:sysfs_kgsl_shell:s0
-genfscon sysfs /devices/virtual/kgsl/kgsl/proc                            u:object_r:vendor_sysfs_kgsl_proc:s0
-genfscon sysfs /devices/virtual/workqueue/kgsl-events/cpumask                  u:object_r:vendor_sysfs_kgsl:s0
-genfscon sysfs /devices/virtual/workqueue/kgsl-events/nice                     u:object_r:vendor_sysfs_kgsl:s0
-genfscon sysfs /devices/virtual/workqueue/kgsl-workqueue/cpumask               u:object_r:vendor_sysfs_kgsl:s0
-genfscon sysfs /devices/virtual/workqueue/kgsl-workqueue/nice                  u:object_r:vendor_sysfs_kgsl:s0
-
-genfscon sysfs /module/drm/parameters/vblankoffdelay                           u:object_r:vendor_sysfs_graphics:s0
-
-genfscon sysfs /class/sensors u:object_r:vendor_sysfs_sensors:s0
-genfscon sysfs /bus/esoc u:object_r:vendor_sysfs_esoc:s0
-
-genfscon sysfs /devices/soc/soc:hbtp/secure_touch                           u:object_r:vendor_hbtp_kernel_sysfs:s0
-genfscon sysfs /devices/soc/soc:hbtp/secure_touch_enable                    u:object_r:vendor_hbtp_kernel_sysfs:s0
-genfscon sysfs /devices/soc/soc:hbtp/secure_touch_userspace             u:object_r:vendor_hbtp_kernel_sysfs:s0
-genfscon sysfs /kernel/hbtp/display_pwr                                     u:object_r:vendor_hbtp_kernel_sysfs:s0
-
-genfscon sysfs /devices/virtual/net/bond0/bonding/queue_id u:object_r:vendor_sysfs_bond0:s0
-genfscon sysfs /devices/virtual/net/bond0/queues/rx-0/rps_cpus u:object_r:vendor_sysfs_bond0:s0
-
-genfscon sysfs /firmware/devicetree/base/cpus u:object_r:vendor_sysfs_devicetree_cpu:s0
-
-genfscon sysfs /bus/spmi/devices u:object_r:vendor_sysfs_spmi_dev:s0
-
-genfscon sysfs /power/mem_sleep u:object_r:vendor_sysfs_suspend:s0
-genfscon sysfs /kernel/boot_adsp/ssr                                   u:object_r:vendor_sysfs_adsp_ssr:s0
-genfscon sysfs /firmware/devicetree/base/soc  u:object_r:vendor_sysfs_devicetree_soc:s0
-
-genfscon debugfs /kgsl/proc                           u:object_r:vendor_debugfs_kgsl:s0
-genfscon debugfs /clk/debug_suspend                   u:object_r:vendor_debugfs_clk:s0
-genfscon debugfs /wlan0                               u:object_r:vendor_debugfs_wlan:s0
-
-genfscon debugfs /rpm_stats                           u:object_r:vendor_debugfs_rpm:s0
-genfscon debugfs /rpm_master_stats                    u:object_r:vendor_debugfs_rpm:s0
-genfscon debugfs /ion                                 u:object_r:vendor_debugfs_ion:s0
-genfscon debugfs /ipc_logging                         u:object_r:vendor_debugfs_ipc:s0
-genfscon debugfs /system_stats                        u:object_r:vendor_debugfs_rpm:s0
-genfscon debugfs /tcpm/usbpd0                         u:object_r:vendor_debugfs_usb:s0
-genfscon debugfs /pd_engine/usbpd0                    u:object_r:vendor_debugfs_usb:s0
-genfscon debugfs /ipc_logging/smblib/log              u:object_r:vendor_debugfs_usb:s0
-genfscon debugfs /msm_ipc_router                      u:object_r:vendor_debugfs_ipc:s0
-genfscon debugfs /mdp                                 u:object_r:vendor_debugfs_mdp:s0
-genfscon debugfs /rmt_storage                         u:object_r:vendor_debugfs_rmt_storage:s0
-genfscon debugfs /icnss                               u:object_r:vendor_debugfs_icnss:s0
diff --git a/generic/vendor/common/gmscore_app.te b/generic/vendor/common/gmscore_app.te
deleted file mode 100644
index e13612a..0000000
--- a/generic/vendor/common/gmscore_app.te
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright (c) 2020, 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.
-
-dontaudit gmscore_app vendor_hal_qspmhal_default:binder {call};
-
-unix_socket_connect(gmscore_app, vendor_dpmtcm, vendor_dpmd);
-
-dontaudit gmscore_app vendor_hal_qspmhal_hwservice:hwservice_manager find;
diff --git a/generic/vendor/common/hal_alarm_qti_default.te b/generic/vendor/common/hal_alarm_qti_default.te
deleted file mode 100755
index c65d2e9..0000000
--- a/generic/vendor/common/hal_alarm_qti_default.te
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright (c) 2017, 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.
-
-type vendor_hal_alarm_qti_default, domain;
-
-hal_server_domain(vendor_hal_alarm_qti_default,  vendor_hal_alarm_qti)
-
-type vendor_hal_alarm_qti_default_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_hal_alarm_qti_default)
-
-allow vendor_hal_alarm_qti_default rtc_device:chr_file r_file_perms;
diff --git a/generic/vendor/common/hal_atfwd.te b/generic/vendor/common/hal_atfwd.te
deleted file mode 100644
index 2afa522..0000000
--- a/generic/vendor/common/hal_atfwd.te
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (c) 2017, 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.
-
-
-binder_call(vendor_atfwd, vendor_qtelephony);
-allow vendor_atfwd vendor_hal_atfwd_hwservice:hwservice_manager find;
diff --git a/generic/vendor/common/hal_audio_default.te b/generic/vendor/common/hal_audio_default.te
deleted file mode 100644
index ddb7b9c..0000000
--- a/generic/vendor/common/hal_audio_default.te
+++ /dev/null
@@ -1,61 +0,0 @@
-# Copyright (c) 2018, 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.
-
-userdebug_or_eng(`
-  allow hal_audio vendor_diag_device:chr_file rw_file_perms;
-  allow hal_audio_default debugfs:dir r_dir_perms;
-')
-
-hal_client_domain(hal_audio_default, vendor_hal_perf)
-hal_client_domain(hal_audio_default, hal_power)
-
-# read-only permission to obtain the calibration data
-r_dir_file(hal_audio_default, vendor_persist_audio_file);
-allow hal_audio_default mnt_vendor_file:dir search;
-
-#Allow access to firmware
-allow hal_audio firmware_file:dir r_dir_perms;
-allow hal_audio firmware_file:file r_file_perms;
-
-# Allow hal_audio to read soundcard state under /proc/asound
-allow hal_audio vendor_proc_audiod:file r_file_perms;
-
-allow hal_audio_default vendor_audio_data_file:dir rw_dir_perms;
-allow hal_audio_default vendor_audio_data_file:file create_file_perms;
-
-#Allow hal audio to use Binder IPC
-vndbinder_use(hal_audio)
-
-#allow acess to wcd_cpe
-allow hal_audio vendor_sysfs_audio:file rw_file_perms;
-allow hal_audio vendor_sysfs_audio:dir r_dir_perms ;
-
-# audio properties
-get_prop(hal_audio, vendor_audio_prop)
-
-#to read bluetooth prop
-get_prop(hal_audio, vendor_bluetooth_prop)
diff --git a/generic/vendor/common/hal_bluetooth_default.te b/generic/vendor/common/hal_bluetooth_default.te
deleted file mode 100644
index ec05489..0000000
--- a/generic/vendor/common/hal_bluetooth_default.te
+++ /dev/null
@@ -1,61 +0,0 @@
-# Copyright (c) 2018, 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.
-allow hal_bluetooth_default vendor_bt_device:chr_file rw_file_perms;
-
-# talk to system_server to set priority
-allow hal_bluetooth fwk_scheduler_hwservice:hwservice_manager find;
-allow hal_bluetooth system_server:binder call;
-
-# bluetooth properties
-set_prop(hal_bluetooth, vendor_bluetooth_prop)
-
-#For bluetooth firmware
-r_dir_file(hal_bluetooth_default, bt_firmware_file)
-
-allow hal_bluetooth_default vendor_persist_bluetooth_file:dir rw_dir_perms;
-allow hal_bluetooth_default vendor_persist_bluetooth_file:file create_file_perms;
-#For QMI socket
-allow hal_bluetooth_default self:{ qipcrtr_socket } create_socket_perms_no_ioctl;
-
-userdebug_or_eng(`
-diag_use(hal_bluetooth)
-allow hal_bluetooth_default vendor_ramdump_vendor_data_file:file create_file_perms;
-allow hal_bluetooth_default vendor_ramdump_vendor_data_file:dir create_dir_perms;
-
-allow hal_bluetooth_default proc_sysrq:file rw_file_perms;
-
-allow hal_bluetooth_default vendor_debugfs_ipc:file rw_file_perms;
-allow hal_bluetooth_default vendor_debugfs_ipc:dir  rw_dir_perms;
-allow hal_bluetooth_default vendor_bt_data_file:dir ra_dir_perms;
-allow hal_bluetooth_default vendor_bt_data_file:file create_file_perms;
-allow hal_bluetooth_default self:{ socket } create_socket_perms_no_ioctl;
-')
-
-r_dir_file(hal_bluetooth_default, mnt_vendor_file)
-
-# Access lbsoc_helper to bluetooth
-use_libsoc_helper(hal_bluetooth_default)
diff --git a/generic/vendor/common/hal_bootctl.te b/generic/vendor/common/hal_bootctl.te
deleted file mode 100644
index b3a3e58..0000000
--- a/generic/vendor/common/hal_bootctl.te
+++ /dev/null
@@ -1,75 +0,0 @@
-# Copyright (c) 2018, 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.
-# These are the permissions required to use the boot_control HAL implemented
-# here: hardware/qcom/bootctrl/boot_control.c
-
-# Getting and setting GPT attributes for the bootloader iterates over all the
-# partition names in the block_device directory /dev/block/.../by-name
-allow hal_bootctl block_device:dir r_dir_perms;
-
-#Opening /dev directory from bootctl to query /dev/ufs-bsg* filename
-allow hal_bootctl device:dir r_dir_perms;
-# Edit the attributes stored in the GPT.
-allow hal_bootctl vendor_gpt_block_device:blk_file rw_file_perms;
-allow hal_bootctl root_block_device:blk_file rw_file_perms;
-
-# Allow boot_control_hal to get attributes on all the A/B partitions.
-allow hal_bootctl boot_block_device:blk_file rw_file_perms;
-allow hal_bootctl vendor_ab_block_device:blk_file getattr;
-allow hal_bootctl vendor_xbl_block_device:blk_file getattr;
-allow hal_bootctl vendor_modem_block_device:blk_file getattr;
-allow hal_bootctl system_block_device:blk_file getattr;
-allow hal_bootctl vendor_custom_ab_block_device:blk_file getattr;
-allow hal_bootctl vendor_ab_block_device:blk_file getattr;
-allow hal_bootctl recovery_block_device:blk_file getattr;
-allow hal_bootctl vendor_mdtp_device:blk_file getattr;
-allow hal_bootctl_server misc_block_device:blk_file rw_file_perms;
-
-# Access /dev/sgN or /dev/ufs-bsg* devices (generic SCSI) to write the
-# A/B slot selection for the XBL partition. Allow also to issue a
-# UFS_IOCTL_QUERY or SG_IO ioctl.
-allow hal_bootctl vendor_sg_device:chr_file rw_file_perms;
-allow hal_bootctl vendor_bsg_device:chr_file rw_file_perms;
-
-# The sys_rawio denial message is benign, and shows up due to a capability()
-# call made by the scsi driver to check for CAP_SYS_RAWIO. Not having this
-# does not result in a error
-dontaudit hal_bootctl self:capability sys_rawio;
-
-
-#scsi driver does a capability check (CAP_SYS_RAWIO) when bootctl does
-# an ioctl to /dev/ufs-bsg .Adding this rule to avoid ioctl error.
-allow hal_bootctl_server self:capability { sys_rawio };
-# Read the sysfs to lookup what /dev/sgN device
-# corresponds to the XBL partitions.
-allow hal_bootctl vendor_sysfs_scsi_target:dir r_dir_perms;
-
-# Write to the XBL devices.
-allow hal_bootctl vendor_xbl_block_device:blk_file rw_file_perms;
-
-# Read dir permission for dt_firmware
-allow hal_bootctl sysfs_dt_firmware_android:dir r_dir_perms;
diff --git a/generic/vendor/common/hal_camera.te b/generic/vendor/common/hal_camera.te
deleted file mode 100644
index d4a7534..0000000
--- a/generic/vendor/common/hal_camera.te
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright (c) 2018-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.
-
-# This is needed to get priority for Camera process
-allow hal_camera self:capability sys_nice;
-
-# This is mandatory to open Camera Service
-hal_client_domain(hal_camera_default, hal_graphics_allocator)
-
-# This is needed to get performance boost
-hal_client_domain(hal_camera_default, vendor_hal_perf)
-
-set_prop(hal_camera, vendor_camera_prop)
-
-# ignore spurious denial
-dontaudit hal_camera graphics_device:dir search;
-
-allow hal_camera vendor_camera_data_file:dir create_dir_perms;
-allow hal_camera vendor_camera_data_file:file create_file_perms;
-unix_socket_connect(hal_camera, vendor_thermal, vendor_thermal-engine)
-
-userdebug_or_eng(`
-  allow hal_camera vendor_diag_device:chr_file rw_file_perms;
-')
-
-# access hexagon
-allow hal_camera vendor_qdsp_device:chr_file r_file_perms;
-
-#Allow camera to access synx device
-allow hal_camera vendor_synx_device:chr_file rw_file_perms;
-
-#needed for full_treble
-hal_client_domain(hal_camera_default, hal_graphics_composer)
-
-r_dir_file(hal_camera_default, vendor_sysfs_graphics)
-
-#allow camera to access /dsp
-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;
-
-# Postproc Service
-hal_attribute_hwservice(hal_camera, vendor_hal_camera_postproc_hwservice);
diff --git a/generic/vendor/common/hal_camera_default.te b/generic/vendor/common/hal_camera_default.te
deleted file mode 100644
index 4d09d4d..0000000
--- a/generic/vendor/common/hal_camera_default.te
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright (c) 2018, 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.
-vndbinder_use(hal_camera_default);
diff --git a/generic/vendor/common/hal_contexthub.te b/generic/vendor/common/hal_contexthub.te
deleted file mode 100644
index 0df468a..0000000
--- a/generic/vendor/common/hal_contexthub.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2017, 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.
-
-# Allow context hub HAL to communicate with daemon via socket
-unix_socket_connect(hal_contexthub, vendor_chre, vendor_chre)
diff --git a/generic/vendor/common/hal_display_color.te b/generic/vendor/common/hal_display_color.te
deleted file mode 100644
index bcaa1d2..0000000
--- a/generic/vendor/common/hal_display_color.te
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright (c) 2018-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 vendor_hal_display_color_default, domain;
-hal_server_domain(vendor_hal_display_color_default, vendor_hal_display_color)
-type vendor_hal_display_color_default_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_hal_display_color_default)
-
-# Allow hwbinder call from hal client to server
-binder_call(vendor_hal_display_color_client, vendor_hal_display_color_server)
-binder_call(platform_app, vendor_hal_display_color_server)
-
-# Add hwservice related rules
-add_hwservice(vendor_hal_display_color_server, vendor_hal_display_color_hwservice)
-allow vendor_hal_display_color_client vendor_hal_display_color_hwservice:hwservice_manager find;
-allow platform_app vendor_hal_display_color_hwservice:hwservice_manager find;
-
-# Rule for display color to access graphics composer process
-unix_socket_connect(vendor_hal_display_color, vendor_pps, hal_graphics_composer_default);
-
-# Rule for vndbinder usage
-allow vendor_hal_display_color vendor_qdisplay_service:service_manager find;
-vndbinder_use(vendor_hal_display_color);
-binder_call(vendor_hal_display_color, hal_graphics_composer)
-
-#Add rules for postproc hal
-add_hwservice(vendor_hal_display_color_server, vendor_hal_display_postproc_hwservice)
-allow vendor_hal_display_postproc_client vendor_hal_display_postproc_hwservice:hwservice_manager find;
-
-# Set vendor_qdcmss property
-set_prop(vendor_hal_display_color, vendor_qdcmss_prop);
diff --git a/generic/vendor/common/hal_drm_default.te b/generic/vendor/common/hal_drm_default.te
deleted file mode 100644
index eb62746..0000000
--- a/generic/vendor/common/hal_drm_default.te
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright (c) 2018, 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.
-allow hal_drm_default vndbinder_device:chr_file rw_file_perms;
diff --git a/generic/vendor/common/hal_drm_widevine.te b/generic/vendor/common/hal_drm_widevine.te
deleted file mode 100644
index fbc0536..0000000
--- a/generic/vendor/common/hal_drm_widevine.te
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright (c) 2018, 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 SELinux domain
-type vendor_hal_drm_widevine, domain;
-hal_server_domain(vendor_hal_drm_widevine, hal_drm)
-
-type vendor_hal_drm_widevine_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_hal_drm_widevine)
-
-allow vendor_hal_drm_widevine mediacodec:fd use;
-allow vendor_hal_drm_widevine { appdomain -isolated_app }:fd use;
-allow vendor_hal_drm_widevine vendor_qce_device:chr_file rw_file_perms;
-
-#Allow access to smcinvoke device
-allow vendor_hal_drm_widevine tee_device:chr_file rw_file_perms;
-
-# The QTI DRM-HAL implementation uses a vendor-binder service provided
-# by the HWC HAL.
-vndbinder_use(vendor_hal_drm_widevine);
-allow vendor_hal_drm_widevine vendor_qdisplay_service:service_manager { find };
-#binder_call(vendor_hal_drm_widevine, hal_graphics_composer)
-hal_client_domain(vendor_hal_drm_widevine, hal_graphics_composer);
-allow vendor_hal_drm_widevine vendor_mediadrm_vendor_data_file:dir create_dir_perms;
-allow vendor_hal_drm_widevine vendor_mediadrm_vendor_data_file:file create_file_perms;
diff --git a/generic/vendor/common/hal_embmssl.te b/generic/vendor/common/hal_embmssl.te
deleted file mode 100644
index 054d9af..0000000
--- a/generic/vendor/common/hal_embmssl.te
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright (c) 2019-2020, 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.
-
-type vendor_hal_embmssl_qti, domain;
-type vendor_hal_embmssl_qti_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_hal_embmssl_qti)
-hal_server_domain(vendor_hal_embmssl_qti, vendor_hal_embmssl)
-
-# Allow hwbinder call from hal client to server
-binder_call(vendor_hal_embmssl_client, vendor_hal_embmssl_server)
-binder_call(vendor_hal_embmssl_server, vendor_hal_embmssl_client)
-
-# Add hwservice related rules
-add_hwservice(vendor_hal_embmssl_server, vendor_hal_embmssl_hwservice)
-
-allow vendor_hal_embmssl_client vendor_hal_embmssl_hwservice:hwservice_manager find;
-
-allow vendor_hal_embmssl_qti self:qipcrtr_socket create_socket_perms_no_ioctl;
-allow vendor_hal_embmssl_qti vendor_time_daemon:unix_stream_socket connectto;
-
-allow vendor_hal_embmssl_qti vendor_netmgrd_socket:dir search;
-unix_socket_connect(vendor_hal_embmssl_qti, vendor_netmgrd, vendor_netmgrd)
-
-allow vendor_hal_embmssl_qti self:netlink_generic_socket create_socket_perms_no_ioctl;
-allow vendor_hal_embmssl_qti self:tipc_socket { create_socket_perms_no_ioctl };
diff --git a/generic/vendor/common/hal_gatekeeper_qti.te b/generic/vendor/common/hal_gatekeeper_qti.te
deleted file mode 100644
index aa6ce85..0000000
--- a/generic/vendor/common/hal_gatekeeper_qti.te
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2018, 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.
-type vendor_hal_gatekeeper_qti, domain;
-hal_server_domain(vendor_hal_gatekeeper_qti, hal_gatekeeper)
-
-type vendor_hal_gatekeeper_qti_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_hal_gatekeeper_qti)
-
-dontaudit vendor_hal_gatekeeper_qti firmware_file:dir search;
-
-get_prop(vendor_hal_gatekeeper_qti, vendor_tee_listener_prop)
diff --git a/generic/vendor/common/hal_gnss_qti.te b/generic/vendor/common/hal_gnss_qti.te
deleted file mode 100644
index 196893a..0000000
--- a/generic/vendor/common/hal_gnss_qti.te
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright (c) 2018-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.
-
-# generic/vendor_hal_gnss_qti.te - generic sepolicy rules for vendor_location hidl
-
-type vendor_hal_gnss_qti, domain;
-hal_server_domain(vendor_hal_gnss_qti, hal_gnss)
-
-type vendor_hal_gnss_qti_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_hal_gnss_qti)
-
-# vendor binder
-use_vendor_per_mgr(vendor_hal_gnss_qti)
-
-# /data/vendor/vendor_location
-allow vendor_hal_gnss_qti vendor_location_data_file:fifo_file { open read setattr write };
-allow vendor_hal_gnss_qti vendor_location_data_file:dir create_dir_perms;
-allow vendor_hal_gnss_qti vendor_location_data_file:file create_file_perms;
-
-# /dev/socket/vendor_location
-allow vendor_hal_gnss_qti vendor_location_socket: {sock_file lnk_file } create_file_perms;
-allow vendor_hal_gnss_qti vendor_location_socket:dir rw_dir_perms;
-allow vendor_hal_gnss_qti vendor_location:unix_stream_socket connectto;
-allow vendor_hal_gnss_qti vendor_location:unix_dgram_socket sendto;
-
-# allow reading /sys/bus/mhi/devices/.../time_us files, this files hold the
-# time offset between local and remote for dual SoC architectures
-allow vendor_hal_gnss_qti vendor_sysfs_mhi:file r_file_perms;
-
-# Allow Gnss HAL to get updates from health hal
-hal_client_domain(vendor_hal_gnss_qti, hal_health)
-
-# Most HALs are not allowed to use network sockets. QTI library
-# libqdi is used across multiple processes which are clients of
-# netmgrd including the GNSS HAL. libqdi first attempts to get the network
-# interface using an IOCTL on a UDP INET socket, which isn't allowed here.
-# If that fails, it falls back to using libc's if_nameindex() which requires
-# a netlink route socket, which HALs may use. Due to the initial
-# attempt to use a UDP socket, we still see a selinux denial,
-# but it is safe to ignore.
-# TODO (b/37730994) Remove udp_socket requirement from
-# libqdi and have all its clients use netlink route
-# sockets.
-dontaudit vendor_hal_gnss_qti self:udp_socket create;
diff --git a/generic/vendor/common/hal_graphics_composer_default.te b/generic/vendor/common/hal_graphics_composer_default.te
deleted file mode 100644
index 14272c6..0000000
--- a/generic/vendor/common/hal_graphics_composer_default.te
+++ /dev/null
@@ -1,106 +0,0 @@
-# Copyright (c) 2018-2020, 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.
-# Binder access (for display.qservice)
-vndbinder_use(hal_graphics_composer_default)
-hal_client_domain(hal_graphics_composer_default, hal_graphics_allocator);
-allow hal_graphics_composer_default vendor_qdisplay_service:service_manager { add find };
-
-allow hal_graphics_composer_default vendor_persist_display_file:dir search;
-allow hal_graphics_composer_default vendor_persist_display_file:file r_file_perms;
-
-# Allow reading/writing to '/mnt/vendor/persist/display/*'
-allow hal_graphics_composer_default vendor_persist_display_file:dir rw_dir_perms;
-allow hal_graphics_composer_default vendor_persist_display_file:file create_file_perms;
-
-allow hal_graphics_composer vendor_sysfs_graphics:dir r_dir_perms;
-allow hal_graphics_composer vendor_sysfs_graphics:file rw_file_perms;
-allow hal_graphics_composer_default mnt_vendor_file:dir search;
-
-allow hal_graphics_composer oemfs:dir r_dir_perms;
-
-get_prop(hal_graphics_composer, vendor_display_prop)
-
-allow hal_graphics_composer_default hal_graphics_mapper_hwservice:hwservice_manager find;
-
-r_dir_file(hal_graphics_composer_default, sysfs_leds)
-
-# TODO(b/37666508): Remove the following line upon resolution of the bug
-allow hal_graphics_composer_default video_device:chr_file rw_file_perms;
-allow hal_graphics_composer_default graphics_device:chr_file rw_file_perms;
-
-# Allow access to QMCS partition files
-allow hal_graphics_composer_default vendor_qmcs_file:dir create_dir_perms;
-allow hal_graphics_composer_default vendor_qmcs_file:file create_file_perms;
-
-# HWC_UeventThread
-allow hal_graphics_composer_default self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl;
-
-# Allow ion_device read/write permission
-allow hal_graphics_composer_default ion_device:chr_file rw_file_perms;
-
-# Access /sys/devices/virtual/graphics/fb0
-r_dir_file(hal_graphics_composer_default, sysfs_type)
-
-# Allow reading/writing to '/data/vendor/display/*'
-allow hal_graphics_composer_default vendor_display_vendor_data_file:dir create_dir_perms;
-allow hal_graphics_composer_default vendor_display_vendor_data_file:file create_file_perms;
-
-userdebug_or_eng(`
-        allow hal_graphics_composer_default vendor_debugfs_mdp:dir r_dir_perms;
-        allow hal_graphics_composer_default vendor_debugfs_mdp:file r_file_perms;
-')
-
-userdebug_or_eng(`
-    # Allow read to /sys/kernel/debug/*
-    allow hal_graphics_composer vendor_qti_display_debugfs:dir r_dir_perms;
-    allow hal_graphics_composer vendor_qti_display_debugfs:file r_file_perms;
-    allow hal_graphics_composer_default vendor_qti_display_debugfs:dir r_dir_perms;
-    allow hal_graphics_composer_default vendor_qti_display_debugfs:file r_file_perms;
-')
-
-# Allow sensor service access
-allow hal_graphics_composer fwk_sensor_hwservice:hwservice_manager find;
-binder_call(hal_graphics_composer, system_server)
-
-# Allow writing to pps socket
-allow hal_graphics_composer_default vendor_pps_socket:sock_file write;
-
-# allow composer to register display config
-add_hwservice(hal_graphics_composer_server, vendor_hal_display_config_hwservice);
-# allow composer client to find display config service.
-allow hal_graphics_composer_client vendor_hal_display_config_hwservice:hwservice_manager find;
-
-# Allow qdcmss socket access
-unix_socket_connect(hal_graphics_composer_default, vendor_qdcmsocket, vendor_qdcm-ss)
-
-#allow composer to find hal_perf
-hal_client_domain(hal_graphics_composer_default, vendor_hal_perf);
-
-# Allow access to qipcrtr_socket
-# Remove this when QMI service moves to pfmd
-allow hal_graphics_composer self:{ socket qipcrtr_socket } create_socket_perms;
-allowxperm hal_graphics_composer self:{ socket qipcrtr_socket } ioctl msm_sock_ipc_ioctls;
diff --git a/generic/vendor/common/hal_health.te b/generic/vendor/common/hal_health.te
deleted file mode 100644
index 83d699a..0000000
--- a/generic/vendor/common/hal_health.te
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright (c) 2017-2018, 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.
-
-r_dir_file(hal_health, vendor_sysfs_battery_supply);
-r_dir_file(hal_health, vendor_sysfs_usb_supply);
-
-allow hal_health hal_health_default:dir search;
-
-allow hal_health {
-    vendor_sysfs_battery_supply
-    vendor_sysfs_usb_supply
-}:file rw_file_perms;
diff --git a/generic/vendor/common/hal_imsrtp.te b/generic/vendor/common/hal_imsrtp.te
deleted file mode 100644
index a9bcb73..0000000
--- a/generic/vendor/common/hal_imsrtp.te
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright (c) 2018,2020 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.
-#vendor_ims rtp service
-type vendor_hal_imsrtp, domain;
-type vendor_hal_imsrtp_exec, exec_type, vendor_file_type, file_type;
-
-# Started by init
-init_daemon_domain(vendor_hal_imsrtp)
-net_domain(vendor_hal_imsrtp)
-
-hwbinder_use(vendor_hal_imsrtp)
-get_prop(vendor_hal_imsrtp, hwservicemanager_prop)
-add_hwservice(vendor_hal_imsrtp, vendor_hal_imsrtp_hwservice)
-
-allow vendor_hal_imsrtp self: qipcrtr_socket  create_socket_perms_no_ioctl;
-unix_socket_connect(vendor_hal_imsrtp, vendor_ims, vendor_ims)
-
-#allow ims_rtp_daemon to connect to server socket hosted in imsdaemon
-unix_socket_connect(vendor_hal_imsrtp, vendor_ims, vendor_ims_service)
-
-allow vendor_hal_imsrtp self:capability net_bind_service;
-
-allow vendor_hal_imsrtp vendor_sysfs_timestamp_switch:file r_file_perms;
-allow vendor_hal_imsrtp ion_device:chr_file r_file_perms;
-allow vendor_hal_imsrtp vendor_sysfs_data:file r_file_perms;
-r_dir_file(vendor_hal_imsrtp, vendor_sysfs_diag)
-
-get_prop(vendor_hal_imsrtp, vendor_ims_prop)
-binder_call(vendor_hal_imsrtp, vendor_qtelephony)
-
-crash_dump_fallback(vendor_hal_imsrtp)
-
diff --git a/generic/vendor/common/hal_keymaster_qti.te b/generic/vendor/common/hal_keymaster_qti.te
deleted file mode 100644
index b9f6f33..0000000
--- a/generic/vendor/common/hal_keymaster_qti.te
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2018, 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.
-type vendor_hal_keymaster_qti, domain;
-hal_server_domain(vendor_hal_keymaster_qti, hal_keymaster)
-
-type vendor_hal_keymaster_qti_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_hal_keymaster_qti)
-
-dontaudit vendor_hal_keymaster_qti firmware_file:dir search;
-
-get_prop(vendor_hal_keymaster_qti, vendor_tee_listener_prop)
diff --git a/generic/vendor/common/hal_light.te b/generic/vendor/common/hal_light.te
deleted file mode 100644
index 7784c62..0000000
--- a/generic/vendor/common/hal_light.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2018, 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.
-allow hal_light vendor_sysfs_graphics:dir search;
-allow hal_light vendor_sysfs_graphics:file rw_file_perms;
diff --git a/generic/vendor/common/hal_memtrack_default.te b/generic/vendor/common/hal_memtrack_default.te
deleted file mode 100644
index e396946..0000000
--- a/generic/vendor/common/hal_memtrack_default.te
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (c) 2018, 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.
-
-#Acess to kgsl memory /sys/class/kgsl/kgsl/proc/<pid>/mtrack
-r_dir_file(hal_memtrack_default, vendor_sysfs_kgsl_proc);
-
-allow hal_memtrack_default vendor_sysfs_kgsl:dir search;
diff --git a/generic/vendor/common/hal_neuralnetworks.te b/generic/vendor/common/hal_neuralnetworks.te
deleted file mode 100644
index e1b67d9..0000000
--- a/generic/vendor/common/hal_neuralnetworks.te
+++ /dev/null
@@ -1,47 +0,0 @@
-# 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.
-
-type vendor_hal_neuralnetworks_default, domain;
-hal_server_domain(vendor_hal_neuralnetworks_default, hal_neuralnetworks)
-hal_client_domain(vendor_hal_neuralnetworks_default, hal_graphics_allocator)
-
-type vendor_hal_neuralnetworks_default_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_hal_neuralnetworks_default)
-
-allow vendor_hal_neuralnetworks_default fwk_sensor_hwservice:hwservice_manager find;
-allow vendor_hal_neuralnetworks_default vendor_qdsp_device:chr_file r_file_perms;
-allow vendor_hal_neuralnetworks_default vendor_xdsp_device:chr_file r_file_perms;
-allow vendor_hal_neuralnetworks_default ion_device:chr_file r_file_perms;
-
-allow vendor_hal_neuralnetworks_default app_data_file:file { read getattr map };
-allow vendor_hal_neuralnetworks_default shell_data_file:file { read getattr map };
-allow vendor_hal_neuralnetworks_default vendor_hal_neuralnetworks_data_file:dir create_dir_perms;
-allow vendor_hal_neuralnetworks_default vendor_hal_neuralnetworks_data_file:{ file fifo_file } create_file_perms;
-allow vendor_hal_neuralnetworks_default gpu_device:chr_file rw_file_perms;
-allow vendor_hal_neuralnetworks_default vendor_npu_device:chr_file r_file_perms;
-
-r_dir_file(vendor_hal_neuralnetworks_default, adsprpcd_file)
diff --git a/generic/vendor/common/hal_power_default.te b/generic/vendor/common/hal_power_default.te
deleted file mode 100644
index 6f16e8a..0000000
--- a/generic/vendor/common/hal_power_default.te
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (c) 2018, 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.
-
-allow hal_power_default vendor_hbtp_kernel_sysfs:file rw_file_perms;
-
-hal_client_domain(hal_power_default, vendor_hal_perf)
diff --git a/generic/vendor/common/hal_qccvndhalservice.te b/generic/vendor/common/hal_qccvndhalservice.te
deleted file mode 100644
index bfaf7ea..0000000
--- a/generic/vendor/common/hal_qccvndhalservice.te
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright (c) 2020 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.
-
-type vendor_hal_qccvndhal_qti, domain;
-type vendor_hal_qccvndhal_qti_exec, exec_type, vendor_file_type, file_type;
-
-hal_server_domain(vendor_hal_qccvndhal_qti, vendor_hal_qccvndhal)
-
-#Allow for transition from init domain to vendor_hal_qccvndhal
-init_daemon_domain(vendor_hal_qccvndhal_qti)
-
-#Allow vendor_hal_qccvndhal to use Vendor Binder IPC
-vndbinder_use(vendor_hal_qccvndhal)
-
-#Allow hwbinder call from hal client to server
-binder_call(vendor_hal_qccvndhal_client, vendor_hal_qccvndhal_server)
-binder_call(vendor_hal_qccvndhal_server, vendor_hal_qccvndhal_client)
-
-#Add hwservice related rules
-#add_hwservice(vendor_hal_qccvndhal_server, vendor_hal_qccvndhal_hwservice)
-#allow vendor_hal_qccvndhal_client vendor_hal_qccvndhal_hwservice:hwservice_manager find;
-hal_attribute_hwservice(vendor_hal_qccvndhal, vendor_hal_qccvndhal_hwservice)
-
-allow vendor_hal_qccvndhal_qti vendor_qcc_trd_data_file:file create_file_perms;
-allow vendor_hal_qccvndhal_qti vendor_qcc_trd_data_file:dir create_dir_perms;
diff --git a/generic/vendor/common/hal_qdutils_disp_qti.te b/generic/vendor/common/hal_qdutils_disp_qti.te
deleted file mode 100644
index 0625f48..0000000
--- a/generic/vendor/common/hal_qdutils_disp_qti.te
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright (c) 2017, 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.
-
-type vendor_hal_qdutils_disp_qti, domain;
-hal_server_domain(vendor_hal_qdutils_disp_qti, vendor_hal_qdutils_disp)
-
-type vendor_hal_qdutils_disp_qti_exec, exec_type, file_type, vendor_file_type;
-init_daemon_domain(vendor_hal_qdutils_disp_qti)
-
-binder_call(vendor_hal_qdutils_disp_client, vendor_hal_qdutils_disp_server)
-binder_call(vendor_hal_qdutils_disp_server, vendor_hal_qdutils_disp_client)
-
-add_hwservice(vendor_hal_qdutils_disp_server, vendor_hal_qdutils_disp_hwservice)
-allow vendor_hal_qdutils_disp_client vendor_hal_qdutils_disp_hwservice:hwservice_manager find;
-vndbinder_use(vendor_hal_qdutils_disp_qti);
-allow vendor_hal_qdutils_disp_qti vendor_qdisplay_service:service_manager find;
-#hal_client_domain(vendor_hal_qdutils_disp_qti, hal_display_config);
-hal_client_domain(vendor_hal_qdutils_disp_qti, hal_graphics_composer);
diff --git a/generic/vendor/common/hal_rcsservice.te b/generic/vendor/common/hal_rcsservice.te
deleted file mode 100644
index d9c449b..0000000
--- a/generic/vendor/common/hal_rcsservice.te
+++ /dev/null
@@ -1,71 +0,0 @@
-# Copyright (c) 2018-2020, 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.
-type vendor_hal_rcsservice, domain;
-type vendor_hal_rcsservice_exec, exec_type, vendor_file_type, file_type;
-
-# Started by init
-init_daemon_domain(vendor_hal_rcsservice)
-net_domain(vendor_hal_rcsservice)
-
-
-get_prop(vendor_hal_rcsservice, vendor_ims_prop)
-set_prop(vendor_hal_rcsservice, vendor_ims_prop)
-
-# To register imsrcsd to hwBinder
-hwbinder_use(vendor_hal_rcsservice)
-# add IUceSerive and IService to Hidl interface
-add_hwservice(vendor_hal_rcsservice, vendor_hal_imsrcsd_hwservice)
-add_hwservice(vendor_hal_rcsservice, vendor_hal_imscallinfo_hwservice)
-#add imsfactory to HIDl interface
-add_hwservice(vendor_hal_rcsservice, vendor_hal_imsfactory_hwservice)
-
-get_prop(vendor_hal_rcsservice, hwservicemanager_prop)
-
-allow vendor_hal_rcsservice vendor_sysfs_timestamp_switch:file r_file_perms;
-allow vendor_hal_rcsservice vendor_sysfs_data:file r_file_perms;
-allow vendor_hal_rcsservice self: { socket qipcrtr_socket } create_socket_perms_no_ioctl;
-#required for socket creation
-unix_socket_connect(vendor_hal_rcsservice, vendor_ims, vendor_ims)
-
-# imsrcsd to bind with UceShimService.apk
-binder_call(vendor_hal_rcsservice, vendor_dataservice_app)
-
-# imsrcsd needs read/write access to devpts
-allow vendor_hal_rcsservice devpts:chr_file rw_file_perms;
-
-# allow imsrcsd capabilities
-wakelock_use(vendor_hal_rcsservice)
-allow vendor_hal_rcsservice self:capability net_bind_service;
-allow vendor_hal_rcsservice self:capability2 wake_alarm;
-
-#diag
-userdebug_or_eng(`
-  diag_use(vendor_hal_rcsservice)
-  binder_call(vendor_hal_rcsservice, radio)
-')
-
-set_prop(vendor_hal_rcsservice, vendor_ctl_vendor_imsrcsservice_prop)
diff --git a/generic/vendor/common/hal_sensors_default.te b/generic/vendor/common/hal_sensors_default.te
deleted file mode 100644
index 6392839..0000000
--- a/generic/vendor/common/hal_sensors_default.te
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright (c) 2018, 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.
-# read factory calibration and sensor configuration data
-allow hal_sensors_default mnt_vendor_file:dir search;
-r_dir_file(hal_sensors_default, vendor_persist_sensors_file)
-get_prop(hal_sensors_default, vendor_sensors_prop)
-
-# Access to tests from userdebug/eng builds
-userdebug_or_eng(`
-  diag_use(hal_sensors_default)
-  get_prop(hal_sensors_default, vendor_sensors_dbg_prop)
-  # allow to trigger force crash to collect ramdump
-  allow hal_sensors_default proc_sysrq:file rw_file_perms;
-  allow hal_sensors_default vendor_sysfs_timestamp_switch:file r_file_perms;
-')
-
-allow hal_sensors_default vendor_qdsp_device:chr_file r_file_perms;
-allow hal_sensors_default vendor_xdsp_device:chr_file r_file_perms;
-
-allow hal_sensors vendor_sysfs_data:file r_file_perms;
-allow hal_sensors vendor_sysfs_sensors:dir r_dir_perms;
-allow hal_sensors vendor_sysfs_sensors:file rw_file_perms;
-allow hal_sensors vendor_sysfs_sensors:lnk_file read;
-
-#following to set the ssr
-allow hal_sensors_default vendor_sysfs_slpi:dir search;
-allow hal_sensors_default vendor_sysfs_slpi:file w_file_perms;
-allow hal_sensors_default vendor_sysfs_adsp_ssr:file w_file_perms;
-
-allow hal_sensors_default vendor_persist_sensors_file:dir rw_dir_perms;
-allow hal_sensors_default vendor_persist_sensors_file:file create_file_perms;
-allow hal_sensors_default mnt_vendor_file:dir rw_dir_perms;
-allow hal_sensors_default mnt_vendor_file:file create_file_perms;
-
-#interact with the sensors low power island (SLPI) CPU
-allow hal_sensors_default self:{ socket qipcrtr_socket } create_socket_perms;
-allowxperm hal_sensors_default self:{ socket qipcrtr_socket } ioctl msm_sock_ipc_ioctls;
-
-allow hal_sensors_default system_server:fd use;
-hal_client_domain(hal_sensors_default, hal_graphics_allocator)
-
-# allow to read adsprpc related properties
-get_prop(hal_sensors_default, vendor_adsprpc_prop)
diff --git a/generic/vendor/common/hal_telephony.te b/generic/vendor/common/hal_telephony.te
deleted file mode 100644
index b134fad..0000000
--- a/generic/vendor/common/hal_telephony.te
+++ /dev/null
@@ -1,28 +0,0 @@
-#Copyright (c) 2018, 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.
-
-set_prop(hal_telephony_server, vendor_radio_prop);
diff --git a/generic/vendor/common/hal_tetheroffload_default.te b/generic/vendor/common/hal_tetheroffload_default.te
deleted file mode 100644
index 2fa02f2..0000000
--- a/generic/vendor/common/hal_tetheroffload_default.te
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright (c) 2018-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.
-
-allow hal_tetheroffload_default vendor_ipa_dev:chr_file rw_file_perms;
-allow hal_tetheroffload_default vendor_ipacm_socket:sock_file w_file_perms;
-
-allow hal_tetheroffload_default vendor_ipa_vendor_data_file:dir w_dir_perms;
-allow hal_tetheroffload_default vendor_ipa_vendor_data_file:file create_file_perms;
-
-#add_hwservice(hal_tetheroffload_default, hal_tetheroffload_hwservice)
-
-#diag
-userdebug_or_eng(`
-    r_dir_file(hal_tetheroffload_default, vendor_sysfs_diag)
-    allow hal_tetheroffload_default vendor_sysfs_timestamp_switch:file r_file_perms;
-')
diff --git a/generic/vendor/common/hal_thermal_default.te b/generic/vendor/common/hal_thermal_default.te
deleted file mode 100644
index 883df11..0000000
--- a/generic/vendor/common/hal_thermal_default.te
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2018, 2020, 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.
-
-# This is required to access proc stat for fetching CPU usage
-allow hal_thermal_default proc_stat:file { getattr open read };
-
-# This is required for thermal sysfs access
-allow hal_thermal_default sysfs_thermal:file w_file_perms;
-
-# netlink access
-allow hal_thermal_default self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl;
diff --git a/generic/vendor/common/hal_trustedui_qti.te b/generic/vendor/common/hal_trustedui_qti.te
deleted file mode 100644
index 8aa2b86..0000000
--- a/generic/vendor/common/hal_trustedui_qti.te
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright (c) 2019-2020, 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.
-
-type vendor_hal_trustedui_qti, domain;
-hal_server_domain(vendor_hal_trustedui_qti, vendor_hal_trustedui)
-
-type vendor_hal_trustedui_qti_exec, exec_type, file_type, vendor_file_type;
-init_daemon_domain(vendor_hal_trustedui_qti)
-
-binder_call(vendor_hal_trustedui_client, vendor_hal_trustedui_server)
-binder_call(vendor_hal_trustedui_server, vendor_hal_trustedui_client)
-
-hal_attribute_hwservice(vendor_hal_trustedui, vendor_hal_trustedui_hwservice)
-
-hal_client_domain(vendor_hal_trustedui_qti, hal_graphics_allocator);
-hal_client_domain(vendor_hal_trustedui_qti, hal_graphics_composer);
-hal_client_domain(vendor_hal_trustedui_qti, vendor_hal_systemhelper);
-
-allow vendor_hal_trustedui_qti vendor_sysfs_sectouch:file rw_file_perms;
-allow vendor_hal_trustedui_qti vendor_tui_data_file:file rw_file_perms;
-allow vendor_hal_trustedui_qti vendor_tui_data_file:dir r_dir_perms;
-allow vendor_hal_trustedui_qti self:qipcrtr_socket create_socket_perms_no_ioctl;
-allow vendor_hal_trustedui_qti sysfs:dir r_dir_perms;
-allow vendor_hal_trustedui_qti vendor_sysfs_trusted_touch_enable:file rw_file_perms;
-allow vendor_hal_trustedui_qti vendor_sysfs_trusted_touch_event:file rw_file_perms;
-
-allow vendor_hal_trustedui_qti ion_device:chr_file r_file_perms;
-allow vendor_hal_trustedui_qti surfaceflinger:fd use;
-
-allow vendor_hal_trustedui_qti sysfs_devices_system_cpu:file rw_file_perms;
-
-allow vendor_hal_trustedui_qti tee_device:chr_file rw_file_perms;
-binder_call(vendor_hal_trustedui_qti, vendor_systemhelper_app)
diff --git a/generic/vendor/common/hal_tui_comm_qti.te b/generic/vendor/common/hal_tui_comm_qti.te
deleted file mode 100644
index a0895f8..0000000
--- a/generic/vendor/common/hal_tui_comm_qti.te
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright (c) 2017, 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.
-
-type vendor_hal_tui_comm_qti, domain;
-hal_server_domain(vendor_hal_tui_comm_qti, vendor_hal_tui_comm)
-
-type vendor_hal_tui_comm_qti_exec, exec_type, file_type, vendor_file_type;
-init_daemon_domain(vendor_hal_tui_comm_qti)
-
-binder_call(vendor_hal_tui_comm_client, vendor_hal_tui_comm_server)
-binder_call(vendor_hal_tui_comm_server, vendor_hal_tui_comm_client)
-
-add_hwservice(vendor_hal_tui_comm_server, vendor_hal_tui_comm_hwservice)
-allow vendor_hal_tui_comm_client vendor_hal_tui_comm_hwservice:hwservice_manager find;
-hal_client_domain(vendor_hal_tui_comm_qti, hal_graphics_allocator);
diff --git a/generic/vendor/common/hal_usb_default.te b/generic/vendor/common/hal_usb_default.te
deleted file mode 100644
index b695c5c..0000000
--- a/generic/vendor/common/hal_usb_default.te
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (c) 2017, 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.
-
-allow hal_usb_default vendor_sysfs_usbpd_device:dir r_dir_perms;
-allow hal_usb_default vendor_sysfs_usbpd_device:lnk_file r_file_perms;
-allow hal_usb_default vendor_sysfs_usbpd_device:file rw_file_perms;
-r_dir_file(hal_usb_default, vendor_sysfs_usb_supply);
diff --git a/generic/vendor/common/hal_vibrator_default.te b/generic/vendor/common/hal_vibrator_default.te
deleted file mode 100644
index d65b92a..0000000
--- a/generic/vendor/common/hal_vibrator_default.te
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright (c) 2018, 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.
-r_dir_file(hal_vibrator_default, sysfs_leds)
-allow hal_vibrator_default sysfs_leds:file rw_file_perms;
-
-# read-only permission to obtain the calibration data
-r_dir_file(hal_vibrator_default, vendor_persist_haptics_file)
-allow hal_vibrator_default mnt_vendor_file:dir search;
diff --git a/generic/vendor/common/hal_wifi.te b/generic/vendor/common/hal_wifi.te
deleted file mode 100644
index b2304a0..0000000
--- a/generic/vendor/common/hal_wifi.te
+++ /dev/null
@@ -1,53 +0,0 @@
-#Copyright (c) 2017, 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.
-#
-#
-
-# allow hal_wifi to write into /proc/debugdriver/driverdump
-r_dir_file(hal_wifi_default, vendor_proc_wifi_dbg)
-
-# write to files owned by location daemon
-allow hal_wifi_default vendor_location_socket:dir search;
-allow hal_wifi_default vendor_location:unix_dgram_socket sendto;
-
-# Connect to vendor_location via vendor_location socket.
-unix_socket_connect(hal_wifi, vendor_location, vendor_location)
-
-allow hal_wifi_default vendor_wifihal_socket:dir rw_dir_perms;
-allow hal_wifi_default vendor_wifihal_socket:sock_file create_file_perms;
-
-# Write wlan driver/fw version into property
-set_prop(hal_wifi_default, vendor_wifi_version)
-
-# allow hal_wifi to write into /proc/sys/net/ipv4
-allow hal_wifi proc_net:file write;
-
-# allow hal_wifi to write into /data/vendor/tombstones/wifi
-userdebug_or_eng(`
-  allow hal_wifi_server vendor_tombstone_data_file:dir rw_dir_perms;
-  allow hal_wifi_server vendor_tombstone_data_file:file create_file_perms;
-')
diff --git a/generic/vendor/common/hal_wifi_default.te b/generic/vendor/common/hal_wifi_default.te
deleted file mode 100644
index 3eea24c..0000000
--- a/generic/vendor/common/hal_wifi_default.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2018, 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.
-
-allow hal_wifi vendor_wlan_device:chr_file rw_file_perms;
diff --git a/generic/vendor/common/hal_wifi_hostapd.te b/generic/vendor/common/hal_wifi_hostapd.te
deleted file mode 100644
index 87adce4..0000000
--- a/generic/vendor/common/hal_wifi_hostapd.te
+++ /dev/null
@@ -1,32 +0,0 @@
-#Copyright (c) 2017-2018, 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.
-#
-#
-
-userdebug_or_eng(`
-allow hal_wifi_hostapd vendor_wifi_vendor_log_data_file:dir search;
-')
diff --git a/generic/vendor/common/hal_wifi_supplicant.te b/generic/vendor/common/hal_wifi_supplicant.te
deleted file mode 100644
index 5beaad8..0000000
--- a/generic/vendor/common/hal_wifi_supplicant.te
+++ /dev/null
@@ -1,43 +0,0 @@
-#Copyright (c) 2017-2020, 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.
-#
-#
-
-# Allow access to create socket and ioctl.
-allow hal_wifi_supplicant_default self:socket create_socket_perms;
-# ioctlcmd=c304, c302
-allowxperm hal_wifi_supplicant_default self:socket ioctl msm_sock_ipc_ioctls;
-
-allow hal_wifi_supplicant_default wpa_data_file:dir create_dir_perms;
-allow hal_wifi_supplicant_default wpa_data_file:dir w_dir_perms;
-allow hal_wifi_supplicant_default wpa_data_file:file create_file_perms;
-# Permission for wpa socket which IMS use to communicate
-# # Allow wpa_supplicant to send back wifi information to cnd
-allow hal_wifi_supplicant_default { vendor_cnd vendor_ims vendor_mutualex}:unix_dgram_socket sendto;
-# # Allow wpa_supplicant to send back wifi information to vendor_location
-allow hal_wifi_supplicant_default vendor_location:unix_dgram_socket sendto;
-
diff --git a/generic/vendor/common/hbtp.te b/generic/vendor/common/hbtp.te
deleted file mode 100644
index 05fbc50..0000000
--- a/generic/vendor/common/hbtp.te
+++ /dev/null
@@ -1,83 +0,0 @@
-# Copyright (c) 2018, 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.
-# Policies for vendor_hbtp (host based touch processing)
-type vendor_hbtp, domain;
-type vendor_hbtp_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_hbtp)
-hal_server_domain(vendor_hbtp, vendor_hal_hbtp)
-# Allow access for /dev/vendor_hbtp_input and /dev/jdi-bu21150
-allow vendor_hbtp { vendor_hbtp_device vendor_qdsp_device vendor_dsp_device vendor_bu21150_device vendor_xdsp_device }:chr_file rw_file_perms;
-
-allow vendor_hbtp vendor_hbtp_log_file:dir rw_dir_perms;
-allow vendor_hbtp vendor_hbtp_log_file:file create_file_perms;
-
-allow vendor_hbtp vendor_hbtp_cfg_file:dir r_dir_perms;
-allow vendor_hbtp vendor_hbtp_cfg_file:file r_file_perms;
-
-allow vendor_hbtp firmware_file:dir r_dir_perms;
-allow vendor_hbtp firmware_file:file r_file_perms;
-
-allow vendor_hbtp vendor_firmware_file:dir r_dir_perms;
-allow vendor_hbtp vendor_firmware_file:file r_file_perms;
-
-allow vendor_hbtp vendor_sysfs_usb_supply:file r_file_perms;
-allow vendor_hbtp vendor_sysfs_usb_supply:dir r_dir_perms;
-
-allow vendor_hbtp vendor_hbtp_kernel_sysfs:file rw_file_perms;
-
-allow vendor_hbtp vendor_sysfs_graphics:file r_file_perms;
-allow vendor_hbtp vendor_sysfs_graphics:dir r_dir_perms;
-
-allow vendor_hbtp vendor_sysfs_battery_supply:file r_file_perms;
-allow vendor_hbtp vendor_sysfs_battery_supply:dir r_dir_perms;
-
-allow vendor_hbtp ion_device:chr_file r_file_perms;
-
-allow vendor_hbtp self:netlink_kobject_uevent_socket { create read setopt bind };
-
-# Allow the service to access wakelock sysfs
-allow vendor_hbtp sysfs_wake_lock:file r_file_perms;
-
-# Allow the service to change to system from root
-allow vendor_hbtp self:capability { setgid setuid sys_nice };
-
-# Allow load touch driver as touchPD
-r_dir_file(vendor_hbtp, adsprpcd_file)
-#allow the service to read adsprpc_prop
-get_prop(vendor_hbtp, vendor_adsprpc_prop)
-
-# Allow the service to access wakelock capability
-wakelock_use(vendor_hbtp)
-
-# Allow hwbinder call from hal client to server and vice-versa
-binder_call(vendor_hal_hbtp_client, vendor_hal_hbtp_server)
-binder_call(vendor_hal_hbtp_server, vendor_hal_hbtp_client)
-
-# Allow hwservice related rules
-add_hwservice(vendor_hal_hbtp_server, vendor_hal_hbtp_hwservice)
-allow vendor_hal_hbtp_client vendor_hal_hbtp_hwservice:hwservice_manager find;
-hal_client_domain(vendor_hbtp, hal_allocator);
diff --git a/generic/vendor/common/healthd.te b/generic/vendor/common/healthd.te
deleted file mode 100644
index bf85bab..0000000
--- a/generic/vendor/common/healthd.te
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2018, 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.
-allow healthd self:capability2 wake_alarm;
-r_dir_file(healthd, vendor_sysfs_battery_supply)
-r_dir_file(healthd, vendor_sysfs_usb_supply)
-r_dir_file(healthd, sysfs_thermal);
-
-allow healthd {
-    vendor_sysfs_battery_supply
-    vendor_sysfs_usb_supply
-}:file rw_file_perms;
diff --git a/generic/vendor/common/hwservice.te b/generic/vendor/common/hwservice.te
deleted file mode 100644
index 859a351..0000000
--- a/generic/vendor/common/hwservice.te
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright (c) 2018-2020, 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.
-type vendor_hal_cne_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_cacert_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_dataconnection_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_iwlan_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_display_config_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_imsrcsd_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_imsrtp_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_imscallinfo_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_ipacm_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_hbtp_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_perf_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_tui_comm_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_qdutils_disp_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_trustedui_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_display_color_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_display_postproc_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_capabilityconfigstore_qti_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_camera_postproc_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_embmssl_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_dspmanager_hwservice, hwservice_manager_type;
-type vendor_hal_qccvndhal_hwservice , hwservice_manager_type, protected_hwservice;
diff --git a/generic/vendor/common/hwservice_contexts b/generic/vendor/common/hwservice_contexts
deleted file mode 100644
index 22f3d67..0000000
--- a/generic/vendor/common/hwservice_contexts
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright (c) 2018-2020, 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.
-com.qualcomm.qti.ant::IAntHci                                   u:object_r:hal_bluetooth_hwservice:s0
-com.dsi.ant::IAnt                                               u:object_r:hal_bluetooth_hwservice:s0
-vendor.qti.hardware.data.iwlan::IIWlan                          u:object_r:vendor_hal_iwlan_hwservice:s0
-com.qualcomm.qti.uceservice::IUceService                        u:object_r:vendor_hal_imsrcsd_hwservice:s0
-com.qualcomm.qti.imscmservice::IImsCmService                    u:object_r:vendor_hal_imsrcsd_hwservice:s0
-vendor.qti.ims.callinfo::IService                               u:object_r:vendor_hal_imscallinfo_hwservice:s0
-vendor.qti.imsrtpservice::IRTPService                          u:object_r:vendor_hal_imsrtp_hwservice:s0
-vendor.qti.data.factory::IFactory                               u:object_r:vendor_hal_datafactory_hwservice:s0
-vendor.qti.ims.factory::IImsFactory                             u:object_r:vendor_hal_imsfactory_hwservice:s0
-vendor.qti.hardware.data.connection::IDataConnection            u:object_r:vendor_hal_dataconnection_hwservice:s0
-vendor.qti.hardware.cacert::IService                            u:object_r:vendor_hal_cacert_hwservice:s0
-vendor.display.config::IDisplayConfig                           u:object_r:vendor_hal_display_config_hwservice:s0
-vendor.display.color::IDisplayColor                             u:object_r:vendor_hal_display_color_hwservice:s0
-vendor.display.postproc::IDisplayPostproc                       u:object_r:vendor_hal_display_postproc_hwservice:s0
-vendor.qti.hardware.data.iwlan::IIWlan                          u:object_r:vendor_hal_iwlan_hwservice:s0
-vendor.qti.hardware.capabilityconfigstore::ICapabilityConfigStore     u:object_r:vendor_hal_capabilityconfigstore_qti_hwservice:s0
-vendor.qti.hardware.improvetouch.touchcompanion::ITouchCompanion       u:object_r:vendor_hal_hbtp_hwservice:s0
-vendor.qti.hardware.improvetouch.gesturemanager::IGestureManager       u:object_r:vendor_hal_hbtp_hwservice:s0
-vendor.qti.hardware.improvetouch.blobmanager::IBlobManager             u:object_r:vendor_hal_hbtp_hwservice:s0
-vendor.qti.hardware.perf::IPerf                                 u:object_r:vendor_hal_perf_hwservice:s0
-vendor.qti.hardware.radio.atcmdfwd::IAtCmdFwd                   u:object_r:vendor_hal_atfwd_hwservice:s0
-vendor.qti.hardware.radio.qcrilhook::IQtiOemHook                u:object_r:hal_telephony_hwservice:s0
-vendor.qti.hardware.radio.am::IQcRilAudio                       u:object_r:hal_telephony_hwservice:s0
-vendor.qti.hardware.radio.internal.deviceinfo::IDeviceInfo      u:object_r:hal_telephony_hwservice:s0
-vendor.qti.hardware.radio.lpa::IUimLpa                          u:object_r:hal_telephony_hwservice:s0
-vendor.qti.hardware.radio.ims::IImsRadio                        u:object_r:hal_telephony_hwservice:s0
-vendor.qti.hardware.radio.uim::IUim                             u:object_r:hal_telephony_hwservice:s0
-vendor.qti.hardware.radio.uim_remote_client::IUimRemoteServiceClient u:object_r:hal_telephony_hwservice:s0
-vendor.qti.hardware.radio.uim_remote_server::IUimRemoteServiceServer u:object_r:hal_telephony_hwservice:s0
-vendor.qti.hardware.display.allocator::IQtiAllocator         u:object_r:hal_graphics_allocator_hwservice:s0
-vendor.qti.hardware.display.composer::IQtiComposer           u:object_r:hal_graphics_composer_hwservice:s0
-vendor.qti.hardware.tui_comm::ITuiComm                       u:object_r:vendor_hal_tui_comm_hwservice:s0
-vendor.qti.hardware.qdutils_disp::IQdutilsDisp               u:object_r:vendor_hal_qdutils_disp_hwservice:s0
-vendor.qti.hardware.trustedui::ITrustedUI                 u:object_r:vendor_hal_trustedui_hwservice:s0
-vendor.qti.hardware.trustedui::ITrustedInput              u:object_r:vendor_hal_trustedui_hwservice:s0
-android.hardware.media.c2::IConfigurable                     u:object_r:hal_codec2_hwservice:s0
-vendor.qti.hardware.display.mapper::IQtiMapper               u:object_r:hal_graphics_mapper_hwservice:s0
-vendor.qti.hardware.camera.postproc::IPostProcService        u:object_r:vendor_hal_camera_postproc_hwservice:s0
-vendor.qti.hardware.embmssl::IEmbms                          u:object_r:vendor_hal_embmssl_hwservice:s0
-vendor.qti.hardware.dsp::IDspService                         u:object_r:vendor_hal_dspmanager_hwservice:s0
-vendor.qti.hardware.qccvndhal::IQccvndhal                     u:object_r:vendor_hal_qccvndhal_hwservice:s0
diff --git a/generic/vendor/common/ims.te b/generic/vendor/common/ims.te
deleted file mode 100644
index 83f6c1b..0000000
--- a/generic/vendor/common/ims.te
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright (c) 2018-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.
-type vendor_ims, domain;
-type vendor_ims_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_ims)
-net_domain(vendor_ims)
-
-get_prop(vendor_ims, hwservicemanager_prop)
-set_prop(vendor_ims, vendor_ims_prop)
-get_prop(vendor_ims, vendor_ims_prop)
-get_prop(vendor_ims, vendor_cnd_prop)
-
-allow vendor_ims vendor_sysfs_timestamp_switch:file r_file_perms;
-allow vendor_ims vendor_sysfs_data:file r_file_perms;
-
-allow vendor_ims self:capability net_bind_service;
-
-allow vendor_ims ion_device:chr_file r_file_perms;
-
-unix_socket_connect(vendor_ims, vendor_cnd, vendor_cnd)
-
-allow vendor_ims self:socket create_socket_perms_no_ioctl;
-allow vendor_ims vendor_ims_socket:sock_file write;
-allow vendor_ims self:{ qipcrtr_socket } create_socket_perms_no_ioctl;
-allow vendor_ims self:{ netlink_generic_socket } create_socket_perms_no_ioctl;
-netmgr_socket(vendor_ims);
-allowxperm vendor_ims self:udp_socket ioctl RMNET_IOCTL_EXTENDED;
-allow vendor_ims self:tipc_socket { create_socket_perms_no_ioctl };
-
-#diag
-userdebug_or_eng(`
-    diag_use(vendor_ims)
-')
-
-hwbinder_use(vendor_ims)
-allow vendor_ims vendor_hal_cne_hwservice:hwservice_manager find;
-allow vendor_ims vendor_hal_datafactory_hwservice:hwservice_manager find;
-binder_call(vendor_ims, vendor_cnd)
diff --git a/generic/vendor/common/imshelper_app.te b/generic/vendor/common/imshelper_app.te
deleted file mode 100644
index 7c0b7c9..0000000
--- a/generic/vendor/common/imshelper_app.te
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright (c) 2019-2020, 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.
-
-type vendor_imshelper_app, domain;
-app_domain(vendor_imshelper_app);
-unix_socket_connect(vendor_imshelper_app, vendor_ims, vendor_ims)
-#allow imshelper_app to connect to server socket hosted in imsdaemon
-unix_socket_connect(vendor_imshelper_app, vendor_ims, vendor_ims_service)
-allow vendor_imshelper_app app_api_service:service_manager find;
-
-#allow qsee_svc_app vendor_imshelper_app_data_file:dir create_dir_perms;
-#allow qsee_svc_app vendor_imshelper_app_data_file:file create_file_perms;
-
-allow vendor_imshelper_app system_app_data_file:dir { getattr search };
-allow vendor_imshelper_app vendor_radio_data_file:dir { getattr search };
diff --git a/generic/vendor/common/imsservice.te b/generic/vendor/common/imsservice.te
deleted file mode 100644
index 56d62a1..0000000
--- a/generic/vendor/common/imsservice.te
+++ /dev/null
@@ -1,71 +0,0 @@
-# Copyright (c) 2020, 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.
-
-type vendor_ims_service, domain;
-type vendor_ims_service_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_ims_service)
-net_domain(vendor_ims_service)
-
-set_prop(vendor_ims_service, vendor_ims_prop)
-get_prop(vendor_ims_service, vendor_ims_prop)
-get_prop(vendor_ims_service, vendor_cnd_prop)
-
-allow vendor_ims_service vendor_sysfs_data:file r_file_perms;
-
-wakelock_use(vendor_ims_service)
-allow vendor_ims_service self:capability net_bind_service;
-allow vendor_ims_service self:capability2 wake_alarm;
-
-allow vendor_ims_service ion_device:chr_file r_file_perms;
-
-unix_socket_connect(vendor_ims_service, vendor_cnd, vendor_cnd)
-
-allow vendor_ims_service self: { socket qipcrtr_socket } create_socket_perms_no_ioctl;
-allow vendor_ims_service vendor_ims_socket:sock_file write;
-netmgr_socket(vendor_ims_service);
-allowxperm vendor_ims_service self:udp_socket ioctl RMNET_IOCTL_EXTENDED;
-allow vendor_ims_service self:tipc_socket { create_socket_perms_no_ioctl };
-
-#diag
-userdebug_or_eng(`
-    diag_use(vendor_ims_service)
-    binder_call(vendor_ims_service, radio)
-')
-
-set_prop(vendor_ims_service, vendor_ctl_vendor_imsrcsservice_prop)
-
-hwbinder_use(vendor_ims_service)
-allow vendor_ims_service vendor_hal_cne_hwservice:hwservice_manager find;
-allow vendor_ims_service vendor_hal_datafactory_hwservice:hwservice_manager find;
-binder_call(vendor_ims_service, vendor_cnd)
-
-# imsdaemon to bind with UceShimService.apk
-binder_call(vendor_ims_service, vendor_dataservice_app)
-
-# imsdaemon needs read/write access to devpts
-allow vendor_ims_service devpts:chr_file rw_file_perms;
diff --git a/generic/vendor/common/init-qcom-crashdata-sh.te b/generic/vendor/common/init-qcom-crashdata-sh.te
deleted file mode 100644
index f88b72d..0000000
--- a/generic/vendor/common/init-qcom-crashdata-sh.te
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_init-qcom-crashdata-sh, domain;
-type vendor_init-qcom-crashdata-sh_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_init-qcom-crashdata-sh)
-
-allow vendor_init-qcom-crashdata-sh vendor_shell_exec:file rx_file_perms;
-allow vendor_init-qcom-crashdata-sh vendor_toolbox_exec:file rx_file_perms;
-
-set_prop(vendor_init-qcom-crashdata-sh, vendor_crash_cnt_prop)
-set_prop(vendor_init-qcom-crashdata-sh, vendor_crash_detect_prop)
diff --git a/generic/vendor/common/init-qcom-sensors-sh.te b/generic/vendor/common/init-qcom-sensors-sh.te
deleted file mode 100644
index 94aee89..0000000
--- a/generic/vendor/common/init-qcom-sensors-sh.te
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_init-qcom-sensors-sh, domain;
-type vendor_init-qcom-sensors-sh_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_init-qcom-sensors-sh)
-
-get_prop(vendor_init-qcom-sensors-sh, vendor_sensors_prop)
-
-allow vendor_init-qcom-sensors-sh vendor_shell_exec:file rx_file_perms;
-allow vendor_init-qcom-sensors-sh vendor_toolbox_exec:file rx_file_perms;
-
-r_dir_file(vendor_init-qcom-sensors-sh, mnt_vendor_file)
-r_dir_file(vendor_init-qcom-sensors-sh, vendor_persist_sensors_file)
-
-allow vendor_init-qcom-sensors-sh vendor_sensors_vendor_data_file:dir create_dir_perms;
-allow vendor_init-qcom-sensors-sh vendor_sensors_vendor_data_file:file create_file_perms;
-
-allow vendor_init-qcom-sensors-sh sensors_device:chr_file r_file_perms;
-
-r_dir_file(vendor_init-qcom-sensors-sh, vendor_sysfs_devicetree_soc)
-
-set_prop(vendor_init-qcom-sensors-sh, vendor_sensors_prop)
diff --git a/generic/vendor/common/init-qti-dcvs-sh.te b/generic/vendor/common/init-qti-dcvs-sh.te
deleted file mode 100644
index 2a500f0..0000000
--- a/generic/vendor/common/init-qti-dcvs-sh.te
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright (c) 2020, 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.
-
-type vendor_init-qti-dcvs-sh, domain;
-type vendor_init-qti-dcvs-sh_exec, exec_type, file_type, vendor_file_type;
-
-init_daemon_domain(vendor_init-qti-dcvs-sh)
-
-allow vendor_init-qti-dcvs-sh vendor_shell_exec:file rx_file_perms;
-
-# execute toybox/toolbox
-allow vendor_init-qti-dcvs-sh self:perf_event { open cpu };
-neverallow vendor_init-qti-dcvs-sh self:perf_event ~{ open cpu };
-
-allow vendor_init-qti-dcvs-sh sysfs:dir { open read };
-allow vendor_init-qti-dcvs-sh vendor_sysfs_devfreq:dir r_dir_perms;
-allow vendor_init-qti-dcvs-sh vendor_sysfs_devfreq:file w_file_perms;
-allow vendor_init-qti-dcvs-sh sysfs_devices_system_cpu:file rw_file_perms;
diff --git a/generic/vendor/common/init-qti-ims-sh.te b/generic/vendor/common/init-qti-ims-sh.te
deleted file mode 100644
index 1c1fbda..0000000
--- a/generic/vendor/common/init-qti-ims-sh.te
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_init-qti-ims-sh, domain;
-type vendor_init-qti-ims-sh_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_init-qti-ims-sh)
-
-allow vendor_init-qti-ims-sh vendor_shell_exec:file rx_file_perms;
-allow vendor_init-qti-ims-sh vendor_toolbox_exec:file rx_file_perms;
-
-set_prop(vendor_init-qti-ims-sh, vendor_ims_prop)
-get_prop(vendor_init-qti-ims-sh, vendor_ims_prop)
-
-# for ro.build.product
-get_prop(vendor_init-qti-ims-sh, exported2_default_prop)
diff --git a/generic/vendor/common/init-qti-keymaster-sh.te b/generic/vendor/common/init-qti-keymaster-sh.te
deleted file mode 100644
index 0bf2af1..0000000
--- a/generic/vendor/common/init-qti-keymaster-sh.te
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (c) 2020, 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.
-
-type vendor_init-qti-keymaster-sh, domain;
-type vendor_init-qti-keymaster-sh_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_init-qti-keymaster-sh)
-
-# Set vendor.keymaster.strongbox.version to 40 or 41
-set_prop(vendor_init-qti-keymaster-sh, vendor_km_strongbox_version_prop);
-set_prop(vendor_init-qti-keymaster-sh, vendor_disable_spu_prop)
-
-allow vendor_init-qti-keymaster-sh vendor_shell_exec:file rx_file_perms;
-allow vendor_init-qti-keymaster-sh vendor_toolbox_exec:file rx_file_perms;
diff --git a/generic/vendor/common/init.te b/generic/vendor/common/init.te
deleted file mode 100644
index 7665df2..0000000
--- a/generic/vendor/common/init.te
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright (c) 2018, 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.
-allow init {
-    adsprpcd_file
-    cache_file
-    mnt_vendor_file
-    storage_file
-    vendor_vm_system_file
-}:dir mounton;
-
-# symlink /sdcard to backing block
-allow init tmpfs:lnk_file create;
-
-allow init tty_device:chr_file rw_file_perms;
-
-allow init mnt_vendor_file:dir mounton;
-
-allow init vendor_ab_block_device:lnk_file relabelto;
-
-#Allow init to mount non-hlos partitions in A/B builds
-allow init { bt_firmware_file vendor_firmware_file  firmware_file } :dir mounton;
-
-allow init { bt_firmware_file firmware_file }:filesystem  { relabelfrom  mount };
-allow { bt_firmware_file firmware_file  }self:filesystem associate;
-
-allow init vendor_qmcs_file:dir { mounton };
-allow init vendor_qmcs_file:filesystem { relabelfrom mount relabelto };
-
-dontaudit init kernel:system module_request;
-
-allow init sysfs_leds:lnk_file r_file_perms;
-
-allow init socket_device:sock_file create_file_perms;
-
-#Needed for restorecon. Init already has these permissions
-#for generic block devices, but is unable to access those
-#which have a custom lable added by us.
-allow init {
-    vendor_custom_ab_block_device
-    boot_block_device
-    vendor_xbl_block_device
-    vendor_ssd_block_device
-    vendor_modem_block_device
-    vendor_mdtp_device
-    vendor_vm_data_block_device
-}:{ blk_file lnk_file } relabelto;
-
-#Allow /sys access to write zram disksize
-allow init sysfs_zram:dir r_dir_perms;
-allow init sysfs_zram:file r_file_perms;
-
-allow init vendor_sysfs_boot_adsp:file w_file_perms;
-
-allow init bt_firmware_file:filesystem getattr;
-allow init firmware_file:filesystem getattr;
-
-# Search and write access for vendor_sysfs_graphics for backlight in recovery
-recovery_only(`
-allow init vendor_sysfs_graphics:file w_file_perms;
-allow init vendor_sysfs_graphics:dir search;
-allow init vendor_sysfs_usb_device:file w_file_perms;
-')
diff --git a/generic/vendor/common/init_shell.te b/generic/vendor/common/init_shell.te
deleted file mode 100644
index 8e92213..0000000
--- a/generic/vendor/common/init_shell.te
+++ /dev/null
@@ -1,190 +0,0 @@
-# Copyright (c) 2018-2020, 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.
-# Restricted domain for shell processes spawned by init.
-# Normally these are shell commands or scripts invoked via sh
-# from an init*.rc file.  No service should ever run in this domain.
-type vendor_qti_init_shell, domain;
-type vendor_qti_init_shell_exec, exec_type, vendor_file_type,file_type;
-
-init_daemon_domain(vendor_qti_init_shell)
-
-domain_auto_trans(init, vendor_shell_exec, vendor_qti_init_shell)
-
-# For executing init shell scripts (init.qcom.early_boot.sh)
-allow vendor_qti_init_shell vendor_qti_init_shell_exec:file { rx_file_perms entrypoint };
-#execute init scripts
-allow vendor_qti_init_shell vendor_shell_exec:file {rx_file_perms entrypoint };
-allow vendor_qti_init_shell vendor_toolbox_exec:file  rx_file_perms;
-
-# For getting idle_time value
-# this is needed for dynamic_fps and bw_mode_bitmap
-allow vendor_qti_init_shell vendor_sysfs_graphics:file {rw_file_perms setattr};
-
-allow vendor_qti_init_shell mnt_vendor_file:dir w_dir_perms;
-allow vendor_qti_init_shell mnt_vendor_file:file create_file_perms;
-allow vendor_qti_init_shell vendor_smd_device:chr_file rw_file_perms;
-
-# Run helpers from / or /system without changing domain.
-allow vendor_qti_init_shell { rootfs vendor_shell_exec }:file execute_no_trans;
-
-allow vendor_qti_init_shell gpu_device:chr_file getattr;
-
-allow vendor_qti_init_shell vendor_sysfs_cpu_boost:dir r_dir_perms;
-allow vendor_qti_init_shell vendor_sysfs_cpu_boost:file rw_file_perms;
-
-# for insmod of iris ko, this is needed.
-# fowner and fsetid are needed for chmod display nodes.
-allow vendor_qti_init_shell self:capability {
-    sys_module
-    net_admin
-    chown
-    fowner
-    fsetid
-    sys_admin
-};
-
-set_prop(vendor_qti_init_shell, vendor_ctl_netmgrd_prop)
-set_prop(vendor_qti_init_shell, vendor_ctl_port-bridge_prop)
-set_prop(vendor_qti_init_shell, vendor_ctl_rild_prop)
-set_prop(vendor_qti_init_shell, vendor_ctl_qcrild_prop)
-set_prop(vendor_qti_init_shell, vendor_ipacm-diag_prop)
-set_prop(vendor_qti_init_shell, vendor_ipacm_prop)
-set_prop(vendor_qti_init_shell, vendor_msm_irqbalance_prop)
-set_prop(vendor_qti_init_shell, vendor_dataqti_prop)
-set_prop(vendor_qti_init_shell, vendor_display_prop)
-set_prop(vendor_qti_init_shell, vendor_alarm_boot_prop)
-set_prop(vendor_qti_init_shell, vendor_gralloc_prop)
-set_prop(vendor_qti_init_shell, vendor_usb_prop)
-set_prop(vendor_qti_init_shell, vendor_system_prop)
-set_prop(vendor_qti_init_shell, vendor_mpctl_prop)
-set_prop(vendor_qti_init_shell, vendor_radio_prop)
-set_prop(vendor_qti_init_shell, vendor_audio_prop)
-get_prop(vendor_qti_init_shell, exported3_radio_prop)
-set_prop(vendor_qti_init_shell, vendor_gpu_prop)
-set_prop(vendor_qti_init_shell, vendor_sensors_prop)
-set_prop(vendor_qti_init_shell, vendor_adsprpc_prop)
-set_prop(vendor_qti_init_shell, vendor_opengles_prop)
-
-allow vendor_qti_init_shell {
-    sysfs_devices_system_cpu
-    sysfs_lowmemorykiller
-    vendor_sysfs_mmc_host
-    vendor_sysfs_process_reclaim
-}:file w_file_perms;
-
-r_dir_file(vendor_qti_init_shell, sysfs_type)
-r_dir_file(vendor_qti_init_shell, vendor_sysfs_devfreq)
-allow vendor_qti_init_shell vendor_sysfs_devfreq:file w_file_perms;
-allow vendor_qti_init_shell vendor_sysfs_soc:file write;
-allow vendor_qti_init_shell sysfs:{ dir file lnk_file } relabelfrom;
-allow vendor_qti_init_shell sysfs_devices_system_cpu: { dir file lnk_file } relabelto;
-
-# To start sensors for DSPS enabled platforms
-r_dir_file(vendor_qti_init_shell, mnt_vendor_file)
-r_dir_file(vendor_qti_init_shell, vendor_persist_bluetooth_file)
-
-allow vendor_qti_init_shell { proc proc_net}:file write;
-allow vendor_qti_init_shell proc_net:file r_file_perms;
-
-allow vendor_qti_init_shell graphics_device:dir create_dir_perms;
-allow vendor_qti_init_shell graphics_device:lnk_file create_file_perms;
-
-#insmod of ko from scripts need kernel key search
-allow vendor_qti_init_shell kernel:key search;
-
-allow vendor_qti_init_shell cgroup:dir add_name;
-
-# To allow copy for mbn files
-r_dir_file(vendor_qti_init_shell, firmware_file)
-
-# /dev/block/zram0
-allow vendor_qti_init_shell block_device:dir r_dir_perms;
-allow vendor_qti_init_shell swap_block_device:blk_file rw_file_perms;
-
-#For configfs permission
-allow vendor_qti_init_shell configfs:dir r_dir_perms;
-allow vendor_qti_init_shell configfs:file rw_file_perms;
-
-#Allow /sys access to write zram disksize
-allow vendor_qti_init_shell sysfs_zram:dir r_dir_perms;
-allow vendor_qti_init_shell sysfs_zram:file rw_file_perms;
-
-# To get GPU frequencies  and set attributes
-allow vendor_qti_init_shell vendor_sysfs_kgsl:file { r_file_perms setattr };
-
-allow vendor_qti_init_shell proc:file r_file_perms;
-allow vendor_qti_init_shell rootfs:file r_file_perms;
-
-allow vendor_qti_init_shell vendor_radio_vendor_data_file:dir create_dir_perms;
-allow vendor_qti_init_shell vendor_radio_vendor_data_file:file create_file_perms;
-
-allow vendor_qti_init_shell vendor_mbn_data_file:dir create_dir_perms;
-allow vendor_qti_init_shell vendor_mbn_data_file:file create_file_perms;
-
-set_prop(vendor_qti_init_shell, vendor_ctl_vendor_hbtp_prop)
-
-# rules for vm_bms
-allow vendor_qti_init_shell {
-    vendor_sysfs_battery_supply
-    vendor_sysfs_usb_supply
-    vendor_sysfs_usbpd_device
-}:dir r_dir_perms;
-
-allow vendor_qti_init_shell {
-    vendor_sysfs_battery_supply
-    vendor_sysfs_usb_supply
-    vendor_sysfs_usbpd_device
-}:file rw_file_perms;
-
-allow vendor_qti_init_shell vendor_sysfs_battery_supply:file setattr;
-allow vendor_qti_init_shell vendor_sysfs_usb_supply:file setattr;
-allow vendor_qti_init_shell vendor_sysfs_usbpd_device:file setattr;
-
-allow vendor_qti_init_shell sysfs_devices_system_cpu:file w_file_perms;
-
-allow vendor_qti_init_shell vendor_sysfs_msm_power:file rw_file_perms;
-
-allow vendor_qti_init_shell vendor_msm_irqbalanced_exec:file getattr;
-
-set_prop(vendor_qti_init_shell, vendor_alarm_boot_prop)
-
-set_prop(vendor_qti_init_shell, vendor_wifi_prop)
-
-# To read /proc/meminfo
-allow vendor_qti_init_shell proc_meminfo:file r_file_perms;
-
-allow vendor_qti_init_shell vendor_sysfs_suspend:file w_file_perms;
-
-# Set ro.vendor.qti.soc_id to soc_id in QCV init script
-set_prop(vendor_qti_init_shell, vendor_soc_id_prop);
-# Set ro.vendor.qti.soc_name to soc_name in QCV init script
-set_prop(vendor_qti_init_shell, vendor_soc_name_prop);
-
-# Get persist.vendor.console.silent.config for kernel console log level
-get_prop(vendor_qti_init_shell, vendor_console_log_level_prop)
-
-set_prop(vendor_qti_init_shell,vendor_dcvs_prop)
diff --git a/generic/vendor/common/ioctl_defines b/generic/vendor/common/ioctl_defines
deleted file mode 100644
index 4272c37..0000000
--- a/generic/vendor/common/ioctl_defines
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright (c) 2018, 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.
-# socket ioctls
-define(`RMNET_IOCTL_EXTENDED', `0x000089FD')
-
-# socket ioctls defined in the kernel in include/uapi/linux/msm_ipc.h
-define(`IPC_ROUTER_IOCTL_GET_VERSION', `0x0000c300')
-define(`IPC_ROUTER_IOCTL_GET_MTU', `0x0000c301')
-define(`IPC_ROUTER_IOCTL_LOOKUP_SERVER', `0x0000c302')
-define(`IPC_ROUTER_IOCTL_GET_CURR_PKT_SIZE', `0x0000c303')
-define(`IPC_ROUTER_IOCTL_BIND_CONTROL_PORT', `0x0000c304')
-define(`IPC_ROUTER_IOCTL_CONFIG_SEC_RULES', `0x0000c305')
-
-#mmc ioctls defined in the kernel in include/uapi/linux/mmc/ioctl.h
-define(`MMC_IOC_MULTI_CMD', `0xc008b301')
diff --git a/generic/vendor/common/ioctl_macros b/generic/vendor/common/ioctl_macros
deleted file mode 100644
index 500554c..0000000
--- a/generic/vendor/common/ioctl_macros
+++ /dev/null
@@ -1,93 +0,0 @@
-# Copyright (c) 2018, 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(`gpu_ioctls', `{
-IOCTL_KGSL_DEVICE_GETPROPERTY
-IOCTL_KGSL_DEVICE_WAITTIMESTAMP_CTXTID
-IOCTL_KGSL_DRAWCTXT_CREATE
-IOCTL_KGSL_DRAWCTXT_DESTROY
-IOCTL_KGSL_MAP_USER_MEM
-IOCTL_KGSL_SHAREDMEM_FREE
-IOCTL_KGSL_SETPROPERTY
-IOCTL_KGSL_TIMESTAMP_EVENT
-IOCTL_KGSL_PERFCOUNTER_GET
-IOCTL_KGSL_PERFCOUNTER_PUT
-IOCTL_KGSL_SYNCSOURCE_CREATE
-IOCTL_KGSL_SYNCSOURCE_DESTROY
-IOCTL_KGSL_SYNCSOURCE_CREATE_FENCE
-IOCTL_KGSL_SYNCSOURCE_SIGNAL_FENCE
-IOCTL_KGSL_GPUOBJ_ALLOC
-IOCTL_KGSL_GPUOBJ_FREE
-IOCTL_KGSL_GPUOBJ_INFO
-IOCTL_KGSL_GPUOBJ_IMPORT
-IOCTL_KGSL_GPUOBJ_SYNC
-IOCTL_KGSL_GPU_COMMAND
-}')
-
-define(`msm_sock_ipc_ioctls', `{
-IPC_ROUTER_IOCTL_GET_VERSION
-IPC_ROUTER_IOCTL_GET_MTU
-IPC_ROUTER_IOCTL_LOOKUP_SERVER
-IPC_ROUTER_IOCTL_GET_CURR_PKT_SIZE
-IPC_ROUTER_IOCTL_BIND_CONTROL_PORT
-IPC_ROUTER_IOCTL_CONFIG_SEC_RULES
-}')
-
-define(`msm_sock_qrtr_ioctls', `{
-TIOCOUTQ
-}')
-
-define(`rmnet_sock_ioctls', `{
-SIOCDEVPRIVATE_1
-SIOCDEVPRIVATE_2
-SIOCDEVPRIVATE_3
-SIOCDEVPRIVATE_4
-SIOCDEVPRIVATE_5
-SIOCDEVPRIVATE_6
-SIOCDEVPRIVATE_7
-SIOCDEVPRIVATE_8
-SIOCDEVPRIVATE_9
-SIOCDEVPRIVATE_A
-SIOCDEVPRIVATE_B
-SIOCDEVPRIVATE_C
-SIOCDEVPRIVATE_D
-}')
-
-define(`wlan_sock_ioctls', `{
-SIOCSIWPRIV
-SIOCIWFIRSTPRIV_15
-}')
-
-define(`lowi_server_ioctls', `{
-SIOCGIFINDEX
-SIOCGIFHWADDR
-SIOCGIFFLAGS
-SIOCIWFIRSTPRIV_05
-SIOCIWFIRSTPRIV_11
-SIOCIWFIRSTPRIV_13
-SIOCDEVPRIVATE_1
-}')
diff --git a/generic/vendor/common/ipacm.te b/generic/vendor/common/ipacm.te
deleted file mode 100644
index dc40352..0000000
--- a/generic/vendor/common/ipacm.te
+++ /dev/null
@@ -1,69 +0,0 @@
-# Copyright (c) 2018, 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.
-# General definitions
-type vendor_ipacm, domain;
-type vendor_ipacm-diag, domain;
-type vendor_ipacm_exec, exec_type, vendor_file_type, file_type;
-type vendor_ipacm-diag_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_ipacm)
-init_daemon_domain(vendor_ipacm-diag)
-
-# associate netdomain to use for accessing internet sockets
-net_domain(vendor_ipacm)
-
-hal_server_domain(vendor_ipacm, hal_tetheroffload)
-
-userdebug_or_eng(`
-    # Allow using the logging file between vendor_ipacm and vendor_ipacm-diag
-    unix_socket_send(vendor_ipacm, vendor_ipacm, vendor_ipacm-diag)
-')
-
-# Allow operations with /dev/ipa, /dev/wwan_ioctl and /dev/ipaNatTable
-allow hal_tetheroffload vendor_ipa_dev:chr_file rw_file_perms;
-
-# Allow UDP socket create and ioctl
-allow hal_tetheroffload self:udp_socket create_socket_perms;
-allowxperm vendor_ipacm self:udp_socket ioctl SIOCGIFNAME;
-
-# Allow receiving NETLINK messages
-allow hal_tetheroffload self:netlink_route_socket { nlmsg_read nlmsg_readpriv create_socket_perms_no_ioctl };
-
-
-# Allow receiving NETLINK messages
-allow hal_tetheroffload self:{
-    netlink_socket
-    # Allow querying the network stack via IOCTLs
-    netlink_generic_socket
-} create_socket_perms_no_ioctl;
-
-# Allow creating and modifying the PID file
-allow hal_tetheroffload vendor_ipa_vendor_data_file:dir w_dir_perms;
-allow hal_tetheroffload vendor_ipa_vendor_data_file:file create_file_perms;
-
-# To register vendor_ipacm to hwbinder
-#add_hwservice(vendor_ipacm, hal_vendor_ipacm_hwservice)
-#binder_call(vendor_ipacm, system_server)
diff --git a/generic/vendor/common/irsc_util.te b/generic/vendor/common/irsc_util.te
deleted file mode 100644
index afeba84..0000000
--- a/generic/vendor/common/irsc_util.te
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright (c) 2018, 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.
-type vendor_irsc_util, domain;
-type vendor_irsc_util_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_irsc_util)
-
-allow vendor_irsc_util self:socket create_socket_perms;
-allowxperm vendor_irsc_util self:socket ioctl msm_sock_ipc_ioctls;
diff --git a/generic/vendor/common/kernel.te b/generic/vendor/common/kernel.te
deleted file mode 100644
index 8127694..0000000
--- a/generic/vendor/common/kernel.te
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright (c) 2018, 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.
-# for diag over socket
-userdebug_or_eng(`
-  allow kernel self:socket create;
-  allow kernel self:qipcrtr_socket create;
-  allow kernel vendor_debugfs_wlan:dir search;
-  allow kernel vendor_debugfs_ipc:dir search;
-  allow kernel debugfs_mmc:dir search;
-')
-
-# Access firmware_file
-r_dir_file(kernel, firmware_file)
-
-
-# access vendor_firmware_file
-r_dir_file(kernel, vendor_firmware_file)
-
-dontaudit kernel kernel:system module_request;
diff --git a/generic/vendor/common/location.te b/generic/vendor/common/location.te
deleted file mode 100644
index 724d39e..0000000
--- a/generic/vendor/common/location.te
+++ /dev/null
@@ -1,99 +0,0 @@
-# Copyright (c) 2018-2020, 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.
-
-# generic/vendor_location.te - sepolicy rules for generic vendor_location modules
-
-# loc_launcher service
-# which launches various other services supporting GPS & Wifi-RTT (LOWI) vendor_location
-type vendor_location, domain;
-type vendor_location_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_location)
-
-allow vendor_location self:capability { setgid setuid };
-
-hwbinder_use(vendor_location)
-
-get_prop(vendor_location, hwservicemanager_prop)
-get_prop(vendor_location, vendor_cnd_prop)
-#xtra-daemon access to qcc properties
-get_prop(vendor_location, vendor_qcc_prop)
-
-allow vendor_location fwk_sensor_hwservice:hwservice_manager find;
-binder_call(vendor_location, system_server)
-binder_call(vendor_location, vendor_cnd)
-
-# Enable standard network access (for XTRA download)
-net_domain(vendor_location)
-
-# required for xtra-daemon, slim-daemon.
-allow vendor_location self:qipcrtr_socket create_socket_perms_no_ioctl;
-
-dontaudit vendor_location kernel:system module_request;
-
-# execute permission for vendor_location daemons in /vendor/bin/
-allow vendor_location vendor_location_exec:file rx_file_perms;
-
-# /data/vendor/vendor_location
-allow vendor_location vendor_location_data_file:dir create_dir_perms;
-allow vendor_location vendor_location_data_file:file create_file_perms;
-
-# /dev/socket/vendor_location
-allow vendor_location vendor_location_socket: {sock_file lnk_file } create_file_perms;
-allow vendor_location vendor_location_socket:dir rw_dir_perms;
-
-allow vendor_location vendor_hal_gnss_qti:unix_dgram_socket sendto;
-
-# permission for read execute vendor_location daemons in userdebug mode.
-userdebug_or_eng(`
-  allow shell vendor_location_exec:file rx_file_perms;
-')
-
-## lowi-server
-##############
-# some additional network access
-allow vendor_location self:netlink_generic_socket create_socket_perms_no_ioctl;
-allow vendor_location self:netlink_socket create_socket_perms_no_ioctl;
-allowxperm vendor_location self:udp_socket ioctl lowi_server_ioctls;
-allow vendor_location hal_wifi:unix_stream_socket { read write };
-
-# /data/vendor/wifi
-allow vendor_location vendor_wifi_vendor_data_file:dir search;
-
-# /data/vendor/wifi/wpa
-allow vendor_location wpa_data_file:dir rw_dir_perms;
-allow vendor_location wpa_data_file:sock_file create_file_perms;
-allow vendor_location hal_wifi_supplicant_default:unix_dgram_socket sendto;
-
-# /dev/socket/wifihal
-allow vendor_location vendor_wifihal_socket:dir search;
-unix_socket_send(vendor_location, vendor_wifihal,  hal_wifi_default);
-
-## xtra-daemon
-##############
-allow vendor_location {vendor_hal_cacert_hwservice vendor_hal_datafactory_hwservice vendor_hal_cne_hwservice}:hwservice_manager find;
-binder_call(vendor_location, vendor_qtidataservices_app)
diff --git a/generic/vendor/common/mdm_helper.te b/generic/vendor/common/mdm_helper.te
deleted file mode 100644
index bfa0783..0000000
--- a/generic/vendor/common/mdm_helper.te
+++ /dev/null
@@ -1,74 +0,0 @@
-# Copyright (c) 2018, 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.
-
-#Policy for vendor_mdm_helper
-#vendor_mdm_helper - vendor_mdm_helper domain
-type vendor_mdm_helper, domain;
-type vendor_mdm_helper_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_mdm_helper);
-
-#block_suspend capability is needed by kickstart(ks)
-wakelock_use(vendor_mdm_helper)
-
-#Needed to power on the peripheral
-allow vendor_mdm_helper vendor_ssr_device:chr_file r_file_perms;
-
-#Needed to access the esoc device to control the mdm
-allow vendor_mdm_helper vendor_esoc_device:dir r_dir_perms;
-allow vendor_mdm_helper vendor_esoc_device:chr_file rw_file_perms;
-
-#Needed in order to run kickstart
-allow vendor_mdm_helper vendor_shell_exec:file rx_file_perms;
-allow vendor_mdm_helper vendor_mdm_helper_exec :file x_file_perms;
-
-#Rampdump config
-#
-# User variant
-#   Probe for write access to vendor tombstones as the
-#   presense of tombstones on subsystem does not correlate
-#   to Android user/userdebug config
-allow vendor_mdm_helper vendor_tombstone_data_file:dir r_dir_perms;
-dontaudit vendor_mdm_helper vendor_tombstone_data_file:dir write;
-# Userdebug/eng variant
-userdebug_or_eng(`
-allow vendor_mdm_helper vendor_tombstone_data_file:dir create_dir_perms;
-allow vendor_mdm_helper vendor_tombstone_data_file:file create_file_perms;
-')
-#Ramdump config END
-
-#Needed to kill its own forked process on efs sync
-allow vendor_mdm_helper self:capability kill;
-
-#Needed by ks in order to access the efs sync partitions.
-allow vendor_mdm_helper block_device:dir r_dir_perms;
-allow vendor_mdm_helper vendor_efs_boot_dev:blk_file rw_file_perms;
-
-#Needed in order to access the firmware partition
-r_dir_file(vendor_mdm_helper, firmware_file)
-
-#Needed to allow boot over PCIe
-allow vendor_mdm_helper vendor_mhi_device:chr_file rw_file_perms;
diff --git a/generic/vendor/common/mediacodec.te b/generic/vendor/common/mediacodec.te
deleted file mode 100644
index 3de932d..0000000
--- a/generic/vendor/common/mediacodec.te
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright (c) 2018-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.
-allow mediacodec system_file:dir r_dir_perms;
-
-userdebug_or_eng(`
-  allow mediacodec dumpstate:fd use;
-')
-#Allow mediacodec to access vendor_media_data_file files
-allow mediacodec vendor_media_data_file:dir create_dir_perms;
-allow mediacodec vendor_media_data_file:file create_file_perms;
-
-#Allow mediacodec to access configstore
-hal_client_domain(mediacodec, vendor_hal_capabilityconfigstore_qti)
-#allow mediacodec to read adsprpc_prop
-get_prop(mediacodec, vendor_adsprpc_prop)
diff --git a/generic/vendor/common/msm_irqbalanced.te b/generic/vendor/common/msm_irqbalanced.te
deleted file mode 100644
index b97e091..0000000
--- a/generic/vendor/common/msm_irqbalanced.te
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright (c) 2018, 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.
-type vendor_msm_irqbalanced, domain;
-type vendor_msm_irqbalanced_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_msm_irqbalanced)
-
-allow vendor_msm_irqbalanced cgroup:dir { create add_name };
-allow vendor_msm_irqbalanced { proc sysfs_devices_system_cpu }:file w_file_perms;
-
-# access smp_affinity
-allow vendor_msm_irqbalanced proc:file r_file_perms;
-allow vendor_msm_irqbalanced proc_interrupts:file r_file_perms;
-allow vendor_msm_irqbalanced proc_stat:file r_file_perms;
-# irq_blacklist_on
-allow vendor_msm_irqbalanced vendor_sysfs_irqbalance:file r_file_perms;
diff --git a/generic/vendor/common/mtp.te b/generic/vendor/common/mtp.te
deleted file mode 100644
index e33d737..0000000
--- a/generic/vendor/common/mtp.te
+++ /dev/null
@@ -1,28 +0,0 @@
-#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.
-
-allow mtp self:pppox_socket create_socket_perms_no_ioctl;
diff --git a/generic/vendor/common/netd.te b/generic/vendor/common/netd.te
deleted file mode 100644
index 72c8aca..0000000
--- a/generic/vendor/common/netd.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2018, 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.
-dontaudit netd kernel:system module_request;
-dontaudit netd self:capability sys_module;
diff --git a/generic/vendor/common/netmgrd.te b/generic/vendor/common/netmgrd.te
deleted file mode 100644
index 9bad7c9..0000000
--- a/generic/vendor/common/netmgrd.te
+++ /dev/null
@@ -1,88 +0,0 @@
-# Copyright (c) 2018, 2020 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.
-type vendor_netmgrd, domain;
-type vendor_netmgrd_exec, exec_type, vendor_file_type, file_type;
-
-net_domain(vendor_netmgrd)
-init_daemon_domain(vendor_netmgrd)
-
-allow vendor_netmgrd vendor_netmgrd_socket:dir w_dir_perms;
-allow vendor_netmgrd vendor_netmgrd_socket:sock_file create_file_perms;
-allow vendor_netmgrd self:netlink_xfrm_socket { create_socket_perms_no_ioctl nlmsg_write };
-allow vendor_netmgrd self:netlink_generic_socket create_socket_perms_no_ioctl;
-allow vendor_netmgrd self:netlink_route_socket nlmsg_write;
-allow vendor_netmgrd self:netlink_socket create_socket_perms_no_ioctl;
-allow vendor_netmgrd self:socket create_socket_perms;
-allowxperm vendor_netmgrd self:socket ioctl msm_sock_ipc_ioctls;
-allowxperm vendor_netmgrd self:udp_socket ioctl priv_sock_ioctls;
-allow vendor_netmgrd self:tipc_socket { create_socket_perms_no_ioctl };
-
-#Allow connections to qmipriod
-unix_socket_connect(vendor_netmgrd, vendor_netmgrd, vendor_qmipriod);
-
-allow vendor_netmgrd sysfs_net:dir r_dir_perms;
-allow vendor_netmgrd sysfs_net:file rw_file_perms;
-allow vendor_netmgrd vendor_sysfs_data:file r_file_perms;
-
-wakelock_use(vendor_netmgrd)
-
-#Allow netutils usage
-domain_auto_trans(vendor_netmgrd, netutils_wrapper_exec, netutils_wrapper)
-
-use_netutils(vendor_netmgrd)
-
-#Allow diag logging
-allow vendor_netmgrd vendor_sysfs_timestamp_switch:file { read open };
-userdebug_or_eng(`
-  r_dir_file(vendor_netmgrd, vendor_sysfs_diag)
-  allow vendor_netmgrd vendor_debugfs_ipc:dir search;
-')
-
-#Ignore if device loading for private IOCTL failed
-dontaudit vendor_netmgrd kernel:system { module_request };
-
-allow vendor_netmgrd proc_net:file rw_file_perms;
-allow vendor_netmgrd vendor_netmgr_data_file:dir rw_dir_perms;
-allow vendor_netmgrd vendor_netmgr_data_file:file create_file_perms;
-allow vendor_netmgrd vendor_netmgr_recovery_data_file:file create_file_perms;
-allow vendor_netmgrd vendor_netmgr_recovery_data_file:dir rw_dir_perms;
-
-get_prop(vendor_netmgrd, hwservicemanager_prop)
-hwbinder_use(vendor_netmgrd)
-binder_call(vendor_netmgrd, netd)
-allow vendor_netmgrd system_net_netd_hwservice:hwservice_manager find;
-
-# Allow netmgrd to use shsusrd properties
-set_prop(vendor_netmgrd, vendor_data_shsusr_prop)
-set_prop(vendor_netmgrd, vendor_data_qmipriod_prop)
-
-allow vendor_netmgrd self:capability { net_admin net_raw setgid setpcap setuid kill };
-
-allow vendor_netmgrd vendor_toolbox_exec:file rx_file_perms;
-
-dontaudit vendor_netmgrd kernel:system module_request;
-dontaudit vendor_netmgrd self:system module_request;
diff --git a/generic/vendor/common/netutils_wrapper.te b/generic/vendor/common/netutils_wrapper.te
deleted file mode 100644
index 7c70d85..0000000
--- a/generic/vendor/common/netutils_wrapper.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# 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.
-dontaudit netutils_wrapper self:capability sys_module;
-dontaudit netutils_wrapper system_file:dir write;
diff --git a/generic/vendor/common/pd_services.te b/generic/vendor/common/pd_services.te
deleted file mode 100644
index e6361b4..0000000
--- a/generic/vendor/common/pd_services.te
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright (c) 2018, 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.
-type vendor_pd_mapper, domain;
-
-type vendor_pd_mapper_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_pd_mapper);
-
-allow vendor_pd_mapper self:capability { setgid setpcap setuid net_bind_service };
-
-allow vendor_pd_mapper firmware_file:dir r_dir_perms;
-allow vendor_pd_mapper firmware_file:file r_file_perms;
-
-allow vendor_pd_mapper self:socket create_socket_perms;
-allowxperm vendor_pd_mapper self:socket ioctl IPC_ROUTER_IOCTL_BIND_CONTROL_PORT;
-
-allow vendor_pd_mapper vendor_sysfs_data:file r_file_perms;
-get_prop(vendor_pd_mapper, vendor_pd_locater_dbg_prop)
diff --git a/generic/vendor/common/per_proxy.te b/generic/vendor/common/per_proxy.te
deleted file mode 100644
index c40ed3e..0000000
--- a/generic/vendor/common/per_proxy.te
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright (c) 2018, 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.
-# Policy for /system/bin/pm-proxy
-type vendor_per_proxy, domain;
-type vendor_per_proxy_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_per_proxy)
-
-allow vendor_per_proxy vendor_per_mgr_service:service_manager find;
-
-vndbinder_use(vendor_per_proxy)
-binder_call(vendor_per_proxy, vendor_per_mgr)
diff --git a/generic/vendor/common/peripheral_manager.te b/generic/vendor/common/peripheral_manager.te
deleted file mode 100644
index 12a95c4..0000000
--- a/generic/vendor/common/peripheral_manager.te
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright (c) 2018, 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.
-# Policy for pm-service and pm-proxy
-type vendor_per_mgr, domain;
-type vendor_per_mgr_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_per_mgr);
-
-add_service(vendor_per_mgr, vendor_per_mgr_service)
-
-vndbinder_use(vendor_per_mgr)
-binder_call(vendor_per_mgr, hal_gnss)
-binder_call(vendor_per_mgr, vendor_per_proxy)
-binder_call(vendor_per_mgr, vendor_wcnss_service)
-binder_call(vendor_per_mgr, rild)
-
-allow vendor_per_mgr self:capability net_bind_service;
-
-allow vendor_per_mgr firmware_file:file r_file_perms;
-allow vendor_per_mgr firmware_file:dir search;
-
-allow vendor_per_mgr self:socket create_socket_perms;
-allowxperm vendor_per_mgr self:socket ioctl msm_sock_ipc_ioctls;
-allow vendor_per_mgr vendor_ssr_device:chr_file { open read };
-
-# Needed by libmdmdetect to get subsystem info and to check their states
-allow vendor_per_mgr vendor_sysfs_data:file r_file_perms;
-
-# Set the peripheral state property
-set_prop(vendor_per_mgr, vendor_per_mgr_state_prop);
-
-userdebug_or_eng(`
-  allow vendor_per_mgr vendor_debugfs_ipc:dir search;
-')
diff --git a/generic/vendor/common/platform_app.te b/generic/vendor/common/platform_app.te
deleted file mode 100644
index 73a5053..0000000
--- a/generic/vendor/common/platform_app.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2018, 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.
-#allow embms app to access vendor radio property
-get_prop(radio, vendor_radio_prop)
-get_prop(platform_app, vendor_display_notch_prop)
diff --git a/generic/vendor/common/port-bridge.te b/generic/vendor/common/port-bridge.te
deleted file mode 100644
index af31cc0..0000000
--- a/generic/vendor/common/port-bridge.te
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright (c) 2018-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.
-type vendor_port-bridge, domain;
-type vendor_port-bridge_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_port-bridge)
-
-userdebug_or_eng(`
-  domain_auto_trans(shell, vendor_port-bridge_exec, vendor_netmgrd)
-  #domain_auto_trans(adbd, vendor_port-bridge_exec, netmgrd)
-  diag_use(vendor_port-bridge)
-')
-
-# Allow operations on different types of sockets
-allow vendor_port-bridge vendor_port-bridge:netlink_kobject_uevent_socket { create bind read };
-
-allow vendor_port-bridge {
-    # Allow operations on mhi transport
-    vendor_mhi_device
-    # Allow operations on ATCoP g-link transport
-    vendor_at_device
-}:chr_file rw_file_perms;
-
-#access ipa sysfs node
-allow vendor_port-bridge vendor_sysfs_data:file r_file_perms;
-
-allow vendor_port-bridge vendor_port_bridge_data_file:file create_file_perms;
-allow vendor_port-bridge vendor_port_bridge_data_file:dir w_dir_perms;
-allow vendor_port-bridge vendor_port-bridge_socket:dir w_dir_perms;
-allow vendor_port-bridge vendor_port-bridge_socket:sock_file create_file_perms;
diff --git a/generic/vendor/common/power_off_alarm.te b/generic/vendor/common/power_off_alarm.te
deleted file mode 100755
index 35f6891..0000000
--- a/generic/vendor/common/power_off_alarm.te
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (c) 2017-2019 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.
-
-type vendor_power_off_alarm, domain;
-type vendor_power_off_alarm_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_power_off_alarm)
-
-allow vendor_power_off_alarm rtc_device:chr_file r_file_perms;
-allow vendor_power_off_alarm kmsg_device:chr_file w_file_perms;
-
-allow vendor_power_off_alarm self:capability2 wake_alarm;
-
-set_prop(vendor_power_off_alarm, powerctl_prop)
diff --git a/generic/vendor/common/poweroffalarm_app.te b/generic/vendor/common/poweroffalarm_app.te
deleted file mode 100755
index 3b4a427..0000000
--- a/generic/vendor/common/poweroffalarm_app.te
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright (c) 2017-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.
-
-type vendor_poweroffalarm_app, domain;
-app_domain(vendor_poweroffalarm_app);
-
-allow vendor_poweroffalarm_app app_api_service:service_manager find;
-
-hal_client_domain(vendor_poweroffalarm_app, vendor_hal_alarm_qti);
-hal_client_domain(vendor_poweroffalarm_app, vendor_hal_perf);
-
-binder_call(vendor_poweroffalarm_app, vendor_hal_alarm_qti_default);
-
diff --git a/generic/vendor/common/ppp.te b/generic/vendor/common/ppp.te
deleted file mode 100644
index 6f7000f..0000000
--- a/generic/vendor/common/ppp.te
+++ /dev/null
@@ -1,32 +0,0 @@
-#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.
-
-# allow VPN connection via L2TP
-allow ppp mtp:pppox_socket rw_socket_perms;
-
-# ioctls needed for VPN
-allowxperm ppp mtp:pppox_socket ioctl ppp_ioctls;
diff --git a/generic/vendor/common/priv_app.te b/generic/vendor/common/priv_app.te
deleted file mode 100644
index 50e3afe..0000000
--- a/generic/vendor/common/priv_app.te
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright (c) 2017, 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.
-
-hal_client_domain(priv_app, vendor_hal_perf)
-
-# TODO(b/123050471): this grants renderscript exec permissions to the
-# priv_app domain
-allow priv_app rs_exec:file rx_file_perms;
diff --git a/generic/vendor/common/property.te b/generic/vendor/common/property.te
deleted file mode 100644
index 728750f..0000000
--- a/generic/vendor/common/property.te
+++ /dev/null
@@ -1,117 +0,0 @@
-# Copyright (c) 2018-2020, 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.
-
-vendor_internal_prop(vendor_ctl_netmgrd_prop);
-vendor_internal_prop(vendor_ctl_port-bridge_prop);
-vendor_internal_prop(vendor_ctl_rild_prop);
-vendor_internal_prop(vendor_ctl_qcrild_prop);
-vendor_restricted_prop(vendor_camera_prop);
-vendor_restricted_prop(vendor_cnd_prop);
-vendor_internal_prop(vendor_crash_cnt_prop);
-vendor_internal_prop(vendor_crash_detect_prop);
-vendor_restricted_prop(vendor_ims_prop);
-vendor_internal_prop(vendor_ipacm_prop);
-vendor_internal_prop(vendor_ipacm-diag_prop);
-vendor_internal_prop(vendor_modem_diag_prop);
-vendor_internal_prop(vendor_msm_irqbalance_prop);
-vendor_restricted_prop(vendor_per_mgr_state_prop);
-vendor_internal_prop(vendor_dataqti_prop);
-vendor_internal_prop(vendor_dataqdp_prop);
-vendor_internal_prop(vendor_ramdump_prop);
-vendor_internal_prop(vendor_sensors_prop);
-vendor_restricted_prop(vendor_tee_listener_prop);
-vendor_restricted_prop(vendor_km_strongbox_version_prop);
-vendor_restricted_prop(vendor_display_prop);
-vendor_internal_prop(vendor_usb_prop);
-vendor_restricted_prop(vendor_radio_prop);
-
-#Needed for ubwc support
-vendor_restricted_prop(vendor_gralloc_prop);
-
-#Needed for opengles version support
-vendor_restricted_prop(vendor_opengles_prop);
-
-vendor_internal_prop(vendor_system_prop);
-
-#imsrcsservice
-vendor_restricted_prop(vendor_ctl_vendor_imsrcsservice_prop);
-
-# HBTP
-vendor_internal_prop(vendor_ctl_vendor_hbtp_prop);
-
-# Bluetooth props
-vendor_restricted_prop(vendor_bluetooth_prop);
-
-#time service
-vendor_internal_prop(vendor_time_service_prop);
-
-# Audio props
-vendor_restricted_prop(vendor_audio_prop);
-
-# shsusrd props
-vendor_restricted_prop(vendor_data_shsusr_prop);
-
-vendor_restricted_prop(vendor_data_qmipriod_prop);
-
-#ss-restart
-vendor_internal_prop(vendor_ssr_prop);
-
-#ss-services (PD)
-vendor_internal_prop(vendor_pd_locater_dbg_prop);
-
-#capabilityconfigstore hal (CCHAL)
-vendor_internal_prop(vendor_cap_configstore_dbg_prop);
-
-#rmt_storage
-vendor_internal_prop(vendor_ctl_vendor_rmt_storage_prop);
-
-vendor_restricted_prop(vendor_gpu_prop);
-
-vendor_restricted_prop(vendor_public_vendor_default_prop);
-
-# alarm property
-vendor_restricted_prop(vendor_alarm_boot_prop);
-
-#wlan-vendor prop
-vendor_internal_prop(vendor_wifi_prop);
-
-#qdcmss property
-vendor_internal_prop(vendor_qdcmss_prop);
-
-#adsprpc props
-vendor_restricted_prop(vendor_adsprpc_prop);
-
-# Wifi version recorder
-vendor_internal_prop(vendor_wifi_version);
-
-# QCV properties for storing soc_id and soc_name
-vendor_internal_prop(vendor_soc_id_prop);
-vendor_internal_prop(vendor_soc_name_prop);
-
-#kernel console log level
-vendor_internal_prop(vendor_console_log_level_prop)
-vendor_internal_prop(vendor_dcvs_prop)
diff --git a/generic/vendor/common/property_contexts b/generic/vendor/common/property_contexts
deleted file mode 100644
index f5b5029..0000000
--- a/generic/vendor/common/property_contexts
+++ /dev/null
@@ -1,147 +0,0 @@
-# Copyright (c) 2018-2020, 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.
-persist.vendor.service.bdroid.       u:object_r:vendor_bluetooth_prop:s0
-persist.vendor.bluetooth.            u:object_r:vendor_bluetooth_prop:s0
-ro.vendor.bluetooth.                 u:object_r:vendor_bluetooth_prop:s0
-persist.vendor.bluetooth.a2dp.       u:object_r:vendor_bluetooth_prop:s0
-persist.vendor.qcom.bluetooth.       u:object_r:vendor_bluetooth_prop:s0
-vendor.qcom.bluetooth.               u:object_r:vendor_bluetooth_prop:s0
-vendor.wc_transport.       u:object_r:vendor_bluetooth_prop:s0
-ctl.vendor.msm_irqbalance  u:object_r:vendor_msm_irqbalance_prop:s0
-ctl.vendor.netmgrd         u:object_r:vendor_ctl_netmgrd_prop:s0
-ctl.vendor.port-bridge     u:object_r:vendor_ctl_port-bridge_prop:s0
-ctl.vendor.ril-daemon      u:object_r:vendor_ctl_rild_prop:s0
-ctl.vendor.qcrild          u:object_r:vendor_ctl_qcrild_prop:s0
-ctl.vendor.ipacm           u:object_r:vendor_ipacm_prop:s0
-ctl.vendor.ipacm-diag      u:object_r:vendor_ipacm-diag_prop:s0
-ctl.vendor.dataqti         u:object_r:vendor_dataqti_prop:s0
-ctl.vendor.sensors         u:object_r:vendor_sensors_prop:s0
-persist.vendor.sensors.    u:object_r:vendor_sensors_prop:s0
-ro.vendor.sensors.         u:object_r:vendor_sensors_prop:s0
-vendor.audio.              u:object_r:vendor_audio_prop:s0
-vendor.voice.              u:object_r:vendor_audio_prop:s0
-persist.vendor.audio.      u:object_r:vendor_audio_prop:s0
-ro.vendor.audio.           u:object_r:vendor_audio_prop:s0
-persist.vendor.audio.spkr.cal.duration  u:object_r:vendor_audio_prop:s0
-ro.vendor.alarm_boot       u:object_r:vendor_alarm_boot_prop:s0
-ro.boot.alarmboot          u:object_r:vendor_alarm_boot_prop:s0
-vendor.debug.camera.       u:object_r:vendor_camera_prop:s0
-persist.vendor.camera.     u:object_r:vendor_camera_prop:s0
-persist.vendor.sys.crash_rcu      u:object_r:vendor_ramdump_prop:s0
-persist.vendor.sys.modem.diag.    u:object_r:vendor_modem_diag_prop:s0
-persist.vendor.sys.cnd     u:object_r:vendor_cnd_prop:s0
-persist.vendor.cne.feature u:object_r:vendor_cnd_prop:s0
-persist.vendor.cnd.wqe     u:object_r:vendor_cnd_prop:s0
-persist.vendor.cne.logging.qxdm u:object_r:vendor_cnd_prop:s0
-persist.vendor.crash.cnt   u:object_r:vendor_crash_cnt_prop:s0
-persist.vendor.crash.detect u:object_r:vendor_crash_detect_prop:s0
-persist.vendor.data.dont_use_epc u:object_r:vendor_dataqdp_prop:s0
-persist.vendor.data.dont_use_npflag u:object_r:vendor_dataqdp_prop:s0
-persist.vendor.data.profile_update u:object_r:vendor_dataqdp_prop:s0
-vendor.sys.listeners.registered   u:object_r:vendor_tee_listener_prop:s0
-vendor.sys.modem.diag.     u:object_r:vendor_modem_diag_prop:s0
-vendor.usb.                u:object_r:vendor_usb_prop:s0
-vendor.wlan.driver.version       u:object_r:vendor_wifi_version:s0
-vendor.wlan.firmware.version     u:object_r:vendor_wifi_version:s0
-persist.vendor.usb.        u:object_r:vendor_usb_prop:s0
-ro.vendor.usb.             u:object_r:vendor_usb_prop:s0
-vendor.display.               u:object_r:vendor_display_prop:s0
-ro.vendor.display.            u:object_r:vendor_display_prop:s0
-persist.vendor.display.       u:object_r:vendor_display_prop:s0
-vendor.gralloc.            u:object_r:vendor_gralloc_prop:s0
-vendor.peripheral.         u:object_r:vendor_per_mgr_state_prop:s0
-vendor.ims.                u:object_r:vendor_ims_prop:s0
-ro.vendor.build.software.version  u:object_r:vendor_ims_prop:s0
-persist.vendor.ims.        u:object_r:vendor_ims_prop:s0
-persist.vendor.qti.telephony.vt_cam_interface u:object_r:vendor_ims_prop:s0
-ctl.vendor.imsrcsservice   u:object_r:vendor_ctl_vendor_imsrcsservice_prop:s0
-vendor.opengles.version    u:object_r:vendor_opengles_prop:s0
-
-# HBTP
-ctl.vendor.hbtp u:object_r:vendor_ctl_vendor_hbtp_prop:s0
-
-#time service
-persist.vendor.delta_time.enable    u:object_r:vendor_time_service_prop:s0
-vendor.debug.time_services.enable   u:object_r:vendor_time_service_prop:s0
-
-#Atel
-persist.vendor.radio       u:object_r:vendor_radio_prop:s0
-vendor.radio               u:object_r:vendor_radio_prop:s0
-ro.vendor.ril.             u:object_r:vendor_radio_prop:s0
-ro.vendor.radio            u:object_r:vendor_radio_prop:s0
-
-persist.vendor.sys.        u:object_r:vendor_system_prop:s0
-
-#ss-restart
-persist.vendor.ssr.    u:object_r:vendor_ssr_prop:s0
-
-#ss-services (PD)
-persist.vendor.pd_locater_debug    u:object_r:vendor_pd_locater_dbg_prop:s0
-
-#capabilityconfigstore (CCHAL)
-persist.vendor.cap_configstore_debug    u:object_r:vendor_cap_configstore_dbg_prop:s0
-
-#rmt_storage
-ctl.vendor.rmt_storage     u:object_r:vendor_ctl_vendor_rmt_storage_prop:s0
-
-#GPU Available frequencies
-vendor.gpu.available_frequencies u:object_r:vendor_gpu_prop:s0
-
-# vendor_public_vendor_default_prop
-ro.vendor.graphics.memory  u:object_r:vendor_public_vendor_default_prop:s0
-vendor.debug.egl.changepixelformat  u:object_r:vendor_public_vendor_default_prop:s0
-vendor.debug.prerotation.disable  u:object_r:vendor_public_vendor_default_prop:s0
-vendor.debug.egl.swapinterval  u:object_r:vendor_public_vendor_default_prop:s0
-vendor.debug.egl.profiler  u:object_r:vendor_public_vendor_default_prop:s0
-
-# shsusrd loading
-persist.vendor.data.shsusr_load u:object_r:vendor_data_shsusr_prop:s0
-persist.vendor.data.qmipriod_load u:object_r:vendor_data_qmipriod_prop:s0
-
-#vendor-wlan
-vendor.wlan.  u:object_r:vendor_wifi_prop:s0
-
-#qdcm socket service
-vendor.display.qdcm_socket_service u:object_r:vendor_qdcmss_prop:s0
-
-#keymaster strongbox service
-vendor.keymaster.strongbox.version u:object_r:vendor_km_strongbox_version_prop:s0
-ctl.keymaster-sb-4-0               u:object_r:vendor_km_strongbox_version_prop:s0
-ctl.vendor.keymaster-sb-4-0        u:object_r:vendor_km_strongbox_version_prop:s0
-ctl.vendor.authsecret.qti-1-0      u:object_r:vendor_km_strongbox_version_prop:s0
-
-#vendor-adsprpc
-vendor.fastrpc.                  u:object_r:vendor_adsprpc_prop:s0
-
-# QCV properties for storing soc_id and soc_name
-ro.vendor.qti.soc_id         u:object_r:vendor_soc_id_prop:s0
-ro.vendor.qti.soc_name       u:object_r:vendor_soc_name_prop:s0
-
-#kernel console log level
-persist.vendor.console.silent.config    u:object_r:vendor_console_log_level_prop:s0
-
-vendor.dcvs.prop                 u:object_r:vendor_dcvs_prop:s0
diff --git a/generic/vendor/common/qdcm-ss.te b/generic/vendor/common/qdcm-ss.te
deleted file mode 100644
index c8a8e7d..0000000
--- a/generic/vendor/common/qdcm-ss.te
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright (c) 2018-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.
-
-type vendor_qdcm-ss, domain;
-type vendor_qdcm-ss_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_qdcm-ss)
-
-# Rule for IPC communication
-allow vendor_qdcm-ss vendor_qdisplay_service:service_manager find;
-vndbinder_use(vendor_qdcm-ss)
-hal_client_domain(vendor_qdcm-ss, hal_graphics_composer)
-
-# Allow adbd to connect to qdcm
-unix_socket_connect(adbd, vendor_qdcmsocket, vendor_qdcm-ss);
diff --git a/generic/vendor/common/qlogd.te b/generic/vendor/common/qlogd.te
deleted file mode 100644
index b63b600..0000000
--- a/generic/vendor/common/qlogd.te
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright (c) 2018, 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.
-type vendor_qlogd, domain;
-type vendor_qlogd_exec, exec_type, vendor_file_type, file_type;
-
-userdebug_or_eng(`
-  # make transition from init to its domain
-  init_daemon_domain(vendor_qlogd)
-
-  allow vendor_qlogd vendor_diag_device:chr_file rw_file_perms;
-  allow vendor_qlogd vendor_qlogd_exec:file rx_file_perms;
-
-  allow vendor_qlogd vendor_radio_vendor_data_file:file create_file_perms;
-  allow vendor_qlogd vendor_radio_vendor_data_file:dir create_dir_perms;
-
-  set_prop(vendor_qlogd, vendor_modem_diag_prop)
-')
diff --git a/generic/vendor/common/qmipriod.te b/generic/vendor/common/qmipriod.te
deleted file mode 100644
index 92746f6..0000000
--- a/generic/vendor/common/qmipriod.te
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright (c) 2020, 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.
-type vendor_qmipriod, domain;
-type vendor_qmipriod_exec, exec_type, vendor_file_type, file_type;
-
-#set domains
-init_daemon_domain(vendor_qmipriod)
-net_domain(vendor_qmipriod)
-
-#allow use of the QRTR socket for the QMI communication
-allow vendor_qmipriod self:qipcrtr_socket create_socket_perms_no_ioctl;
-
-#allow use of netmgrd unix sockets
-netmgr_socket(vendor_qmipriod);
-allow vendor_qmipriod vendor_netmgrd_socket:dir w_dir_perms;
-allow vendor_qmipriod vendor_netmgrd_socket:sock_file create;
-
-#allow logging to file for engineering builds
-userdebug_or_eng(`
-  allow vendor_qmipriod vendor_qmipriod_data_file:dir rw_dir_perms;
-  allow vendor_qmipriod vendor_qmipriod_data_file:file create_file_perms;
-')
diff --git a/generic/vendor/common/qtelephony.te b/generic/vendor/common/qtelephony.te
deleted file mode 100644
index 19a45d2..0000000
--- a/generic/vendor/common/qtelephony.te
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2020, 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.
-
-get_prop(vendor_qtelephony, vendor_radio_prop)
-get_prop(vendor_qtelephony, vendor_ims_prop)
-get_prop(vendor_qtelephony, vendor_persist_camera_prop)
-get_prop(vendor_qtelephony, vendor_audio_prop)
-get_prop(vendor_qtelephony, vendor_video_prop)
-
-allow vendor_qtelephony vendor_hal_imsrtp_hwservice:hwservice_manager find;
-binder_call(vendor_qtelephony, vendor_hal_imsrtp)
diff --git a/generic/vendor/common/qti.te b/generic/vendor/common/qti.te
deleted file mode 100644
index fa5e42f..0000000
--- a/generic/vendor/common/qti.te
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright (c) 2018-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.
-type vendor_qti, domain;
-type vendor_qti_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_qti)
-net_domain(vendor_qti)
-
-allow vendor_qti self:{ qipcrtr_socket } create_socket_perms_no_ioctl;
-allow vendor_qti vendor_qti_data_file:dir r_dir_perms;
-
-allow vendor_qti vendor_smd_device:chr_file rw_file_perms;
-allow vendor_qti vendor_rmnet_device:chr_file rw_file_perms;
-
-allow vendor_qti { vendor_shell_exec }:file rx_file_perms;
-
-#diag
-userdebug_or_eng(`
-    diag_use(vendor_qti)
-    allow vendor_qti { vendor_sysfs_data vendor_sysfs_timestamp_switch} :file r_file_perms;
-')
-allow vendor_qti vendor_mhi_device:chr_file rw_file_perms;
-allow vendor_qti vendor_sysfs_mhi:dir r_dir_perms;
-
-#Allow vendor_qti to create vendor_qti socket
-allow vendor_qti vendor_dataqti_socket:sock_file rw_file_perms;
diff --git a/generic/vendor/common/qti_display_boot.te b/generic/vendor/common/qti_display_boot.te
deleted file mode 100644
index df72d5a..0000000
--- a/generic/vendor/common/qti_display_boot.te
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (c) 2020 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.
-
-type qti_display_boot, domain;
-type qti_display_boot_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(qti_display_boot)
-allow qti_display_boot vendor_shell_exec:file rx_file_perms;
-allow qti_display_boot vendor_toolbox_exec:file x_file_perms;
-set_prop(qti_display_boot, vendor_display_prop)
diff --git a/generic/vendor/common/qtidataservices_app.te b/generic/vendor/common/qtidataservices_app.te
deleted file mode 100644
index a800c1e..0000000
--- a/generic/vendor/common/qtidataservices_app.te
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright (c) 2018-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.
-
-type vendor_qtidataservices_app, domain;
-app_domain(vendor_qtidataservices_app);
-
-add_hwservice(vendor_qtidataservices_app, vendor_hal_cacert_hwservice)
-hwbinder_use(vendor_qtidataservices_app)
-
-get_prop(vendor_qtidataservices_app, vendor_cnd_prop)
-set_prop(vendor_qtidataservices_app,exported_radio_prop)
-
-allow vendor_qtidataservices_app { app_api_service activity_service }:service_manager find;
-allow vendor_qtidataservices_app self:qipcrtr_socket create_socket_perms_no_ioctl;
-allow vendor_qtidataservices_app vendor_radio_data_file:dir r_dir_perms;
-
-allow vendor_qtidataservices_app vendor_hal_datafactory_hwservice:hwservice_manager find;
-allow vendor_qtidataservices_app vendor_hal_iwlan_hwservice:hwservice_manager find;
-allow vendor_qtidataservices_app radio_service:service_manager find;
-
-allow vendor_qtidataservices_app vendor_sysfs_data:file r_file_perms;
-
-binder_call(vendor_qtidataservices_app, vendor_cnd)
-binder_call(vendor_qtidataservices_app, rild)
-binder_call(vendor_qtidataservices_app, vendor_location)
-
-net_domain(vendor_qtidataservices_app)
-hal_client_domain(vendor_qtidataservices_app, vendor_hal_perf)
diff --git a/generic/vendor/common/radio.te b/generic/vendor/common/radio.te
deleted file mode 100644
index 91b795d..0000000
--- a/generic/vendor/common/radio.te
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright (c) 2018, 2020, 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.
-
-allow radio vendor_file:lnk_file r_file_perms;
-allow radio vendor_framework_file:file r_file_perms;
-allow radio vendor_framework_file:dir search;
-
-hwbinder_use(radio)
-allow radio vendor_hal_imsrtp_hwservice:hwservice_manager find;
-
-add_service(radio, radio_service)
-allow radio {
-  mediaextractor_service
-}:service_manager find;
-
-# IMS needs permission to use avtimer
-allow radio vendor_avtimer_device:chr_file r_file_perms;
-# permissions for RCS clients to communicate with RCS vendor service
-userdebug_or_eng(`
-  allow radio vendor_hal_imsrcsd_hwservice:hwservice_manager find;
-  binder_call(radio, vendor_hal_rcsservice);
-  #allow RCS clients to communicate with RCS vendor service hosted by imsdaemon
-  binder_call(radio, vendor_ims_service)
-')
-
-#perf
-hal_client_domain(radio, vendor_hal_perf)
-
-#diag
-userdebug_or_eng(`
-    diag_use(radio)
-    r_dir_file(radio, vendor_mbn_data_file)
-')
-
-get_prop(radio, vendor_radio_prop)
diff --git a/generic/vendor/common/recovery.te b/generic/vendor/common/recovery.te
deleted file mode 100644
index 562e622..0000000
--- a/generic/vendor/common/recovery.te
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright (c) 2018 , 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.
-
-recovery_only(`
- # Search and Read access for vendor_sysfs_graphics for backlight
- allow recovery vendor_sysfs_graphics:dir search;
- allow recovery vendor_sysfs_graphics:file rw_file_perms;
- # Read files on /sdcard
- allow recovery sdcard_type:dir r_dir_perms;
- allow recovery sdcard_type:file r_file_perms;
- allow recovery vfat:dir r_dir_perms;
- allow recovery vfat:file create_file_perms;
- allow recovery vfat:file rw_file_perms;
- allow recovery system_data_file:file r_file_perms;
- allow recovery system_data_file:dir r_dir_perms;
- allow recovery cache_file:dir mounton;
- allow recovery vendor_sg_device:chr_file rw_file_perms;
- allow recovery vendor_bsg_device:chr_file rw_file_perms;
- allow recovery self:capability sys_rawio;
- allow recovery vendor_sg_device:chr_file ioctl;
- allow recovery sysfs_dm:dir r_dir_perms;
- allow recovery sysfs_dm:file r_file_perms;
-')
diff --git a/generic/vendor/common/rfs_access.te b/generic/vendor/common/rfs_access.te
deleted file mode 100644
index fb00d20..0000000
--- a/generic/vendor/common/rfs_access.te
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright (c) 2018, 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.
-type vendor_rfs_access, domain;
-type vendor_rfs_access_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_rfs_access)
-
-#For tftp server
-allow vendor_rfs_access self:capability { chown setgid setpcap setuid net_bind_service };
-
-wakelock_use(vendor_rfs_access)
-
-type_transition vendor_rfs_access mnt_vendor_file:{ dir file } vendor_persist_rfs_file;
-type_transition vendor_rfs_access mnt_vendor_file:dir vendor_persist_rfs_shared_hlos_file "hlos_rfs";
-
-r_dir_file(vendor_rfs_access, firmware_file);
-
-allow vendor_rfs_access vendor_firmware_data_file:dir r_dir_perms;
-allow vendor_rfs_access vendor_firmware_data_file:file r_file_perms;
-
-allow vendor_rfs_access mnt_vendor_file:dir create_dir_perms;
-
-allow vendor_rfs_access vendor_persist_rfs_file:dir search;
-allow vendor_rfs_access vendor_persist_rfs_file:dir create_dir_perms;
-allow vendor_rfs_access vendor_persist_rfs_file:file create_file_perms;
-allow vendor_rfs_access vendor_persist_rfs_shared_hlos_file:dir create_dir_perms;
-allow vendor_rfs_access vendor_persist_rfs_shared_hlos_file:file create_file_perms;
-
-#For QMI sockets and IPCR Sockets
-allow vendor_rfs_access self:{ socket qipcrtr_socket } create_socket_perms_no_ioctl;
-
-allow vendor_rfs_access vendor_tombstone_data_file:dir create_dir_perms;
-allow vendor_rfs_access vendor_tombstone_data_file:file create_file_perms;
-
-#For access to the kmsg device
-allow vendor_rfs_access kmsg_device:chr_file w_file_perms;
-
-#For pddump write and create directory
-allow vendor_rfs_access vendor_pddump_data_file:dir create_dir_perms;
-allow vendor_rfs_access vendor_pddump_data_file:file create_file_perms;
diff --git a/generic/vendor/common/rild.te b/generic/vendor/common/rild.te
deleted file mode 100644
index 248a0dd..0000000
--- a/generic/vendor/common/rild.te
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright (c) 2018, 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.
-binder_call(rild, vendor_per_mgr)
-binder_call(rild, vendor_qtidataservices_app)
-
-vndbinder_use(rild)
-
-allow rild vendor_netmgrd_socket:dir search;
-unix_socket_connect(rild, vendor_netmgrd, vendor_netmgrd)
-
-allow rild vendor_file:file { execute_no_trans lock ioctl };
-allow rild self:tipc_socket { create_socket_perms_no_ioctl };
-allow rild vendor_per_mgr_service:service_manager find;
-
-allow rild self:socket ioctl;
-allowxperm rild self:socket ioctl msm_sock_ipc_ioctls;
-allow rild vendor_time_daemon:unix_stream_socket connectto;
-
-allow rild vendor_radio_vendor_data_file:dir rw_dir_perms;
-allow rild vendor_radio_vendor_data_file:file create_file_perms;
-
-userdebug_or_eng(`
-  allow rild vendor_diag_device:chr_file rw_file_perms;
-  get_prop(rild, vendor_pd_locater_dbg_prop)
-')
-
-hal_server_domain(rild, hal_secure_element)
-add_hwservice(rild, vendor_hal_iwlan_hwservice)
-
-add_hwservice(rild, vendor_hal_dataconnection_hwservice)
-hal_server_domain(rild, vendor_hal_dataconnection_qti)
-
-get_prop(rild, exported3_radio_prop)
-get_prop(rild, vendor_dataqdp_prop)
-
-allow rild vendor_qmuxd_socket:dir w_dir_perms;
-allow rild vendor_qmuxd_socket:sock_file create_file_perms;
-
-allow rild vendor_rild_socket:dir w_dir_perms;
-allow rild vendor_rild_socket:sock_file create_file_perms;
-
-r_dir_file(rild, vendor_mbn_data_file)
-allow rild self:qipcrtr_socket create_socket_perms_no_ioctl;
diff --git a/generic/vendor/common/rmt_storage.te b/generic/vendor/common/rmt_storage.te
deleted file mode 100644
index e063446..0000000
--- a/generic/vendor/common/rmt_storage.te
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright (c) 2018, 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.
-type vendor_rmt_storage, domain;
-type vendor_rmt_storage_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_rmt_storage)
-
-wakelock_use(vendor_rmt_storage)
-
-allow vendor_rmt_storage self:capability { net_bind_service setgid setpcap setuid };
-
-set_prop(vendor_rmt_storage, vendor_ctl_vendor_rmt_storage_prop)
-
-allow vendor_rmt_storage cgroup:dir create_dir_perms;
-allow vendor_rmt_storage uio_device:chr_file rw_file_perms;
-
-allow vendor_rmt_storage self:{ socket qipcrtr_socket } create_socket_perms;
-allowxperm vendor_rmt_storage self:{ socket qipcrtr_socket } ioctl msm_sock_ipc_ioctls;
-
-allow vendor_rmt_storage kmsg_device:chr_file w_file_perms;
-
-r_dir_file(vendor_rmt_storage, sysfs_uio)
-r_dir_file(vendor_rmt_storage, vendor_sysfs_uio_file)
-
-allow vendor_rmt_storage block_device:dir r_dir_perms;
-
-allow vendor_rmt_storage {
-    vendor_modem_efs_partition_device
-    vendor_ssd_block_device
-}:blk_file rw_file_perms;
-
-r_dir_file(vendor_rmt_storage, vendor_sysfs_ssr)
-r_dir_file(vendor_rmt_storage, vendor_sysfs_data)
-set_prop(vendor_rmt_storage, vendor_ctl_vendor_rmt_storage_prop)
diff --git a/generic/vendor/common/seapp_contexts b/generic/vendor/common/seapp_contexts
deleted file mode 100644
index 2aba558..0000000
--- a/generic/vendor/common/seapp_contexts
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright (c) 2018-2020, 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.
-# A fallback in case tango_core is missing something critical that untrusted_app provides
-user=_app seinfo=tango name=com.google.tango:app domain=untrusted_app type=app_data_file levelFrom=user
-
-#Needed for time service apk
-user=_app seinfo=platform name=com.qualcomm.timeservice domain=vendor_timeservice_app type=app_data_file levelFrom=all
-
-#add new domain for qtidataservices
-user=_app seinfo=platform name=.qtidataservices domain=vendor_qtidataservices_app type=app_data_file levelFrom=all
-
-#Add new domain for imshelper service
-user=radio seinfo=platform name=.imshelperservice domain=vendor_imshelper_app type=vendor_imshelper_app_data_file
-
-#Add new domain for power off alarm app
-user=_app seinfo=platform name=com.qualcomm.qti.poweroffalarm domain=vendor_poweroffalarm_app type=app_data_file levelFrom=all
-
-#Add new domain for trustzone access app
-user=_app seinfo=platform name=com.qualcomm.qti.qms.service.trustzoneaccess domain=vendor_tzas_app type=app_data_file levelfrom=all
-
-#allow embms msdc app to access embmssl hal
-user=_app seinfo=platform name=com.qti.ltebc domain=vendor_embmssl_app type=app_data_file levelFrom=all
diff --git a/generic/vendor/common/sensors.te b/generic/vendor/common/sensors.te
deleted file mode 100644
index 1728d5f..0000000
--- a/generic/vendor/common/sensors.te
+++ /dev/null
@@ -1,84 +0,0 @@
-# Copyright (c) 2018-2020, 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.
-# Policy for sensor daemon
-type vendor_sensors, domain;
-type vendor_sensors_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_sensors)
-get_prop(vendor_sensors, vendor_sensors_prop)
-
-allow vendor_sensors self:capability {
-    setuid
-    setgid
-    net_bind_service
-};
-
-# Access to tests from userdebug/eng builds
-userdebug_or_eng(`
-  diag_use(vendor_sensors)
-  get_prop(vendor_sensors, vendor_sensors_dbg_prop)
-
-  #allow starting of diag_mdlog
-  allow vendor_sensors vendor_qlogd_exec:file rx_file_perms;
-  allow vendor_sensors vendor_shell_exec:file rx_file_perms;
-')
-
-allow vendor_sensors self:{ socket qipcrtr_socket } create_socket_perms;
-# ioctlcmd=c304
-allowxperm vendor_sensors self:{ socket qipcrtr_socket } ioctl msm_sock_ipc_ioctls;
-
-allow vendor_sensors mnt_vendor_file:dir r_dir_perms;
-
-allow vendor_sensors vendor_sensors_vendor_data_file:dir create_dir_perms;
-allow vendor_sensors vendor_sensors_vendor_data_file:file create_file_perms;
-
-allow vendor_sensors system_file:dir r_dir_perms;
-allow vendor_sensors sensors_device:chr_file rw_file_perms;
-
-allow vendor_sensors vendor_sysfs_soc:file w_file_perms;
-allow vendor_sensors vendor_sysfs_data:file r_file_perms;
-
-allow vendor_sensors ion_device:chr_file r_file_perms;
-allow vendor_sensors vendor_qdsp_device:chr_file r_file_perms;
-allow vendor_sensors vendor_xdsp_device:chr_file r_file_perms;
-
-# For reading dir/files on /dsp
-r_dir_file(vendor_sensors, adsprpcd_file)
-# For reading adsprpc_prop
-get_prop(vendor_sensors, vendor_adsprpc_prop)
-
-allow vendor_sensors vendor_persist_sensors_file:fifo_file create_file_perms;
-allow vendor_sensors vendor_sensors_vendor_data_file:fifo_file create_file_perms;
-# Access to /persist/vendor_sensors
-allow vendor_sensors vendor_persist_sensors_file:dir create_dir_perms;
-allow vendor_sensors vendor_persist_sensors_file:file create_file_perms;
-# Access to wakelock sysfs
-wakelock_use(vendor_sensors)
-
-#Allow to search SSR node directory
-allow vendor_sensors vendor_sysfs_slpi:dir search;
-allow vendor_sensors vendor_sysfs_slpi:file getattr;
diff --git a/generic/vendor/common/shell.te b/generic/vendor/common/shell.te
deleted file mode 100644
index 72f1166..0000000
--- a/generic/vendor/common/shell.te
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2018, 2020 The Linux Foundation. All rights reserved.
-# Copyright (c) 2022 Qualcomm Innovation Center, Inc. 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.
-
-# allow any 3rd party shell app to be a client of DSP HAL
-hal_client_domain(shell, vendor_hal_dspmanager)
-
-get_prop(shell, vendor_opengles_prop)
-
-# allow shell users to control kgsl perfcounters
-allow shell sysfs_kgsl_shell:file rw_file_perms;
diff --git a/generic/vendor/common/shsusrd.te b/generic/vendor/common/shsusrd.te
deleted file mode 100644
index 00b788c..0000000
--- a/generic/vendor/common/shsusrd.te
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright (c) 2020, 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.
-type vendor_shsusrd, domain;
-type vendor_shsusrd_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_shsusrd)
-
-allow vendor_shsusrd vendor_proc_shs:file rw_file_perms;
-allow vendor_shsusrd vendor_proc_shs:dir r_dir_perms;
-allow vendor_shsusrd self:netlink_generic_socket create_socket_perms_no_ioctl;
-
-allow vendor_shsusrd self:qipcrtr_socket create_socket_perms_no_ioctl;
-allow vendor_shsusrd self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl;
-
-allow vendor_shsusrd vendor_shsusr_data_file:dir rw_dir_perms;
-allow vendor_shsusrd vendor_shsusr_data_file:file create_file_perms;
diff --git a/generic/vendor/common/ssr_diag.te b/generic/vendor/common/ssr_diag.te
deleted file mode 100644
index 347e5d2..0000000
--- a/generic/vendor/common/ssr_diag.te
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (c) 2018, 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.
-type vendor_ssr_diag, domain;
-type vendor_ssr_diag_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_ssr_diag);
diff --git a/generic/vendor/common/ssr_setup.te b/generic/vendor/common/ssr_setup.te
deleted file mode 100644
index 2e38639..0000000
--- a/generic/vendor/common/ssr_setup.te
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright (c) 2018, 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.
-type vendor_ssr_setup, domain;
-type vendor_ssr_setup_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_ssr_setup);
-
-# Required to enable/disable ssr
-allow vendor_ssr_setup vendor_sysfs_ssr:lnk_file w_file_perms;
-allow vendor_ssr_setup vendor_sysfs_ssr_toggle:file rw_file_perms;
-allow vendor_ssr_setup vendor_sysfs_ssr:file rw_file_perms;
-
-allow vendor_ssr_setup vendor_sysfs_data:file r_file_perms;
-
-get_prop(vendor_ssr_setup, vendor_ssr_prop)
diff --git a/generic/vendor/common/subsystem_ramdump.te b/generic/vendor/common/subsystem_ramdump.te
deleted file mode 100644
index d1ed09f..0000000
--- a/generic/vendor/common/subsystem_ramdump.te
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright (c) 2018, 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.
-type vendor_subsystem_ramdump_exec, exec_type, vendor_file_type, file_type;
-
-userdebug_or_eng(`
-  type vendor_subsystem_ramdump, domain;
-
-  init_daemon_domain(vendor_subsystem_ramdump);
-
-  allow vendor_subsystem_ramdump device:dir r_dir_perms;
-  allow vendor_subsystem_ramdump vendor_ramdump_device:chr_file r_file_perms;
-  allow vendor_subsystem_ramdump vendor_ramdump_microdump_modem_device:chr_file r_file_perms;
-
-  r_dir_file(vendor_subsystem_ramdump, sysfs_type);
-
-  allow vendor_subsystem_ramdump vendor_ramdump_vendor_data_file:dir rw_dir_perms;
-  allow vendor_subsystem_ramdump vendor_ramdump_vendor_data_file:file create_file_perms;
-
-  set_prop(vendor_subsystem_ramdump, vendor_ssr_prop);
-
-  allow vendor_subsystem_ramdump vendor_mdmhelperdata_data_file:dir r_dir_perms;
-  allow vendor_subsystem_ramdump vendor_mdmhelperdata_data_file:file r_file_perms;
-')
diff --git a/generic/vendor/common/surfaceflinger.te b/generic/vendor/common/surfaceflinger.te
deleted file mode 100644
index 8ea8e6c..0000000
--- a/generic/vendor/common/surfaceflinger.te
+++ /dev/null
@@ -1,40 +0,0 @@
-# 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.
-dontaudit surfaceflinger firmware_file:dir search;
-dontaudit surfaceflinger kernel:system module_request;
-
-allow surfaceflinger vendor_sysfs_graphics:file rw_file_perms;
-
-get_prop(surfaceflinger, vendor_gralloc_prop)
-get_prop(surfaceflinger, vendor_display_prop)
-
-#Allow access to binder callback's to perf hal
-hal_client_domain(surfaceflinger, vendor_hal_perf)
-
-r_dir_file(surfaceflinger, vendor_sysfs_kgsl)
-
-dontaudit surfaceflinger vendor_hal_qspmhal_hwservice:hwservice_manager find;
diff --git a/generic/vendor/common/system_app.te b/generic/vendor/common/system_app.te
deleted file mode 100755
index 629ec1f..0000000
--- a/generic/vendor/common/system_app.te
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright (c) 2018, 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.
-# read regulatory info
-allow system_app vendor_elabel_data_file:dir r_dir_perms;
-allow system_app vendor_elabel_data_file:file r_file_perms;
-
-# Allow hbtp hal Service to be found
-hal_client_domain(system_app, vendor_hal_hbtp)
-
-#secureUI
-hal_client_domain(system_app, vendor_hal_qdutils_disp);
-hal_client_domain(system_app, vendor_hal_tui_comm);
-
-get_prop(system_app, vendor_radio_prop)
-hal_client_domain(system_app, vendor_hal_capabilityconfigstore_qti);
diff --git a/generic/vendor/common/system_server.te b/generic/vendor/common/system_server.te
deleted file mode 100644
index 281527d..0000000
--- a/generic/vendor/common/system_server.te
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright (c) 2018-2020, 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.
-allow system_server self:socket ioctl;
-allowxperm system_server self:socket ioctl msm_sock_ipc_ioctls;
-
-binder_call(system_server, hal_camera_default)
-
-binder_call(system_server, hal_graphics_composer)
-
-# vendor_location
-binder_call(system_server, vendor_location);
-allow system_server vendor_wlan_device:chr_file rw_file_perms;
-allow system_server hal_audio_default:file w_file_perms;
-
-allow system_server vendor_sysfs_sensors:dir search;
-allow system_server vendor_sysfs_sensors:file rw_file_perms;
-# allow access to low persistence mode sysfs node
-allow system_server vendor_sysfs_graphics:file rw_file_perms;
-
-userdebug_or_eng(`
-    diag_use(system_server)
-')
-
-#OpenGLES version
-get_prop(system_server, vendor_opengles_prop)
-
-# allow system_server to access vendor display property.
-get_prop(system_server, vendor_display_prop)
-
-# allow system_server to read/acess peripheral manager.
-get_prop(system_server, vendor_per_mgr_state_prop);
-
-hal_client_domain(system_server, vendor_hal_dataconnection_qti)
diff --git a/generic/vendor/common/systemhelper_app.te b/generic/vendor/common/systemhelper_app.te
deleted file mode 100644
index 44d786e..0000000
--- a/generic/vendor/common/systemhelper_app.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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.
-
-binder_call(vendor_systemhelper_app, vendor_hal_trustedui_qti)
-hal_client_domain(vendor_systemhelper_app, vendor_hal_perf)
diff --git a/generic/vendor/common/te_macros b/generic/vendor/common/te_macros
deleted file mode 100644
index 84b708f..0000000
--- a/generic/vendor/common/te_macros
+++ /dev/null
@@ -1,171 +0,0 @@
-# Copyright (c) 2018, 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.
-#####################################
-# qmux_socket(clientdomain)
-# Allow client domain to connecto and send
-# via a local socket to the qmux domain.
-# Also allow the client domain to remove
-# its own socket.
-define(`qmux_socket', `
-allow $1 vendor_qmuxd_socket:dir create_dir_perms;
-unix_socket_connect($1, vendor_qmuxd, vendor_qmuxd)
-allow $1 vendor_qmuxd_socket:sock_file { read getattr write setattr create unlink };
-')
-
-#####################################
-# netmgr_socket(clientdomain)
-# Allow client domain to connecto and send
-# via a local socket to the netmgrd domain.
-# Also allow the client domain to remove
-# its own socket.
-define(`netmgr_socket', `
-allow $1 vendor_netmgrd_socket:dir r_dir_perms;
-unix_socket_connect($1, vendor_netmgrd, vendor_netmgrd)
-allow $1 vendor_netmgrd_socket:sock_file { read getattr write };
-')
-
-#####################################
-# portbridge_socket(clientdomain)
-# Allow client domain to connecto and send
-# via a local socket to the port-bridge domain.
-# Also allow the client domain to remove
-# its own socket.
-define(`portbridge_socket', `
-allow $1 vendor_port-bridge_socket:dir r_dir_perms;
-unix_socket_connect($1, vendor_port-bridge, vendor_port-bridge)
-allow $1 vendor_port-bridge_socket:sock_file { read write };
-')
-
-########################################
-# peripheral_manager
-# Allow clients to interact with peripheral
-# manager
-define(`use_vendor_per_mgr', `
-vndbinder_use($1);
-binder_call(vendor_per_mgr, $1);
-binder_call($1, vendor_per_mgr);
-allow $1 vendor_per_mgr_service:service_manager find;
-get_prop($1, vendor_per_mgr_state_prop);
-')
-
-#####################################
-# cnd_nims_socket_perm(clientdomain)
-# allow vendor_cnd to read /proc/pid/cmdline to get appname
-# allow vendor_cnd to use inet socket created by app.
-define(`cnd_nims_socket_perm', `
-allow vendor_cnd $1:dir r_dir_perms;
-allow vendor_cnd $1:file r_file_perms;
-allow vendor_cnd $1:fd use;
-allow vendor_cnd $1:tcp_socket rw_socket_perms;
-')
-
-#####################################
-# diag_use(clientdomain)
-# allow clientdomain to read/write to diag
-define(`diag_use', `
-r_dir_file($1, vendor_sysfs_diag)
-allow $1 vendor_diag_device:chr_file rw_file_perms;
-')
-
-#####################################
-# use_netutils(clientdomain)
-# allow access to netutils from vendor
-define(`use_netutils', `
-domain_auto_trans($1, netutils_wrapper_exec, netutils_wrapper)
-allow netutils_wrapper $1:fd use;
-allow netutils_wrapper $1:fifo_file { read write getattr };
-allow netutils_wrapper $1:netlink_route_socket { read write };
-allow netutils_wrapper $1:unix_stream_socket { read write };
-allow netutils_wrapper $1:netlink_generic_socket { read write };
-allow netutils_wrapper $1:netlink_xfrm_socket { read write };
-allow netutils_wrapper $1:udp_socket { read write };
-allow netutils_wrapper $1:tcp_socket { read write };
-')
-
-#####################################
-## hal_server_domain_bypass(domain, hal_type)
-## Allow a base set of permissions required for a domain to offer a
-## HAL implementation of the specified type over HwBinder without
-## halserverdomain attribute
-##
-## For example, default implementation of Foo HAL:
-##   type hal_foo_default, domain;
-##   hal_server_domain_bypass(hal_foo_default, hal_foo)
-##
-define(`hal_server_domain_bypass', `
-hwbinder_use($1)
-allow $1 system_file:dir r_dir_perms;
-get_prop($1, hwservicemanager_prop)
-typeattribute $1 $2_server;
-typeattribute $1 $2;
-')
-
-#####################################
-# coredata_datavendor_migration(domain, old_data_label, data_vendor_label)
-# Allow a base set of permissions required for a sh  to copy data from /data to /data/vendor
-#
-# For example, make nfc-sh copy data from /data/nfc to /data/vendor/nfc:
-#   coredata_datavendor_migration(nfc-sh, nfc_data_file, data_vendor_nfc_file)
-#   script that moves the data should be in /system/bin and should be using the
-#   /system/bin/sh.
-#
-define(`coredata_datavendor_migration', `
-type $1, domain;
-type $1_exec, exec_type, file_type;
-
-init_daemon_domain($1);
-typeattribute $1 data_between_core_and_vendor_violators;
-typeattribute $1 coredomain;
-allow $1 vendor_shell_exec:file rx_file_perms;
-allow $1 vendor_toolbox_exec:file rx_file_perms;
-allow $1 file_contexts_file:file { read getattr open };
-allow $1 $2:file { getattr setattr relabelfrom rename };
-allow $1 $2:dir { reparent rename rmdir setattr rw_dir_perms relabelfrom };
-allow $1 $3:dir { create_dir_perms relabelto };
-
-# for writing files_moved so we only execute the move once
-allow $1 $3:file { create open write getattr relabelto };
-')
-
-########################################
-# framework full value-add detection
-# Adds rules needed for client to use the framework detection module
-# to differentiate being an unmodified AOSP framework with baseline
-# AOSP functionality or one with modified AOSP providing full vendor
-# value-adds
-#
-# Placeholder - currently the detection mechanism does not require
-# any additional security permissions
-define(`use_vendor_fwk_detect', `
-')
-
-########################################
-# SoC detection at run time by vendor modules
-# Adds rules needed for vendor modules to get soc info at run time
-define(`use_libsoc_helper', `
-get_prop($1, vendor_soc_id_prop);
-')
diff --git a/generic/vendor/common/tee.te b/generic/vendor/common/tee.te
deleted file mode 100644
index 49bf44d..0000000
--- a/generic/vendor/common/tee.te
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright (c) 2018-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.
-allow tee self:capability { chown setgid setuid sys_admin sys_rawio };
-
-allow tee device:dir r_dir_perms;
-
-set_prop(tee, vendor_tee_listener_prop)
-
-allow tee firmware_file:dir search;
-allow tee block_device:dir { getattr search };
-allow tee vendor_rpmb_device:blk_file rw_file_perms;
-allow tee vendor_rpmb_device:chr_file rw_file_perms;
-allowxperm tee vendor_rpmb_device:chr_file ioctl { MMC_IOC_MULTI_CMD };
-allow tee vendor_ssd_block_device:blk_file rw_file_perms;
-allow tee vendor_sg_device:chr_file { rw_file_perms setattr };
-allow tee vendor_bsg_device:chr_file rw_file_perms;
-
-allow tee mnt_vendor_file:dir r_dir_perms;
-allow tee vendor_persist_drm_file:dir create_dir_perms;
-allow tee vendor_persist_drm_file:file create_file_perms;
-allow tee vendor_persist_data_file:dir create_dir_perms;
-allow tee vendor_persist_data_file:file create_file_perms;
-
-allow tee vendor_time_daemon:unix_stream_socket connectto;
-
-# Allow SFS to write to data partition
-allow tee vendor_data_tzstorage_file:dir create_dir_perms;
-allow tee vendor_data_tzstorage_file:file create_file_perms;
-
-#secureUI
-hal_client_domain(tee, vendor_hal_tui_comm);
-hal_client_domain(tee, vendor_hal_qdutils_disp);
-hal_client_domain(tee, hal_graphics_allocator);
-vndbinder_use(tee);
-allow tee vendor_qdisplay_service:service_manager find;
-hal_client_domain(tee, hal_graphics_composer);
-allow tee vendor_sysfs_sectouch:file rw_file_perms;
-allow tee vendor_tui_data_file:file rw_file_perms;
-allow tee vendor_tui_data_file:dir r_dir_perms;
-allow tee graphics_device:chr_file rw_file_perms;
-
-#OPS Listener
-allow tee vendor_sysfs_graphics:dir r_dir_perms;
-allow tee vendor_sysfs_graphics:file rw_file_perms;
diff --git a/generic/vendor/common/thermal-engine.te b/generic/vendor/common/thermal-engine.te
deleted file mode 100644
index a8c1e0f..0000000
--- a/generic/vendor/common/thermal-engine.te
+++ /dev/null
@@ -1,107 +0,0 @@
-# Copyright (c) 2018-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.
-type vendor_thermal-engine, domain;
-type vendor_thermal-engine_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_thermal-engine)
-
-# to read /sys/devices
-allow vendor_thermal-engine sysfs:dir r_dir_perms;
-
-allow vendor_thermal-engine self:capability {
-    fsetid
-    sys_boot
-};
-
-allow vendor_thermal-engine self:{ socket qipcrtr_socket } create_socket_perms;
-# ioctlcmd=c304
-allowxperm vendor_thermal-engine self:{ socket qipcrtr_socket } ioctl msm_sock_ipc_ioctls;
-
-# This is required to access thermal sockets
-allow vendor_thermal-engine vendor_thermal_socket:dir w_dir_perms;
-allow vendor_thermal-engine vendor_thermal_socket:sock_file create_file_perms;
-allow vendor_thermal-engine socket_device:dir w_dir_perms;
-
-# This is required for thermal sysfs access
-r_dir_file(vendor_thermal-engine, sysfs_thermal)
-allow vendor_thermal-engine sysfs_thermal:file w_file_perms;
-allow vendor_thermal-engine sysfs_thermal:lnk_file r_file_perms;
-
-# Allow to read and write cpufreq sysfs
-allow vendor_thermal-engine sysfs_devices_system_cpu:file rw_file_perms;
-# This is required for qmi access
-qmux_socket(vendor_thermal-engine);
-
-#This is to allow access to uio device
-allow vendor_thermal-engine uio_device:chr_file rw_file_perms;
-
-userdebug_or_eng(`
-  diag_use(vendor_thermal-engine)
-')
-
-# To search, read and write kgsl sysfs
-allow vendor_thermal-engine vendor_sysfs_kgsl:dir r_dir_perms;
-allow vendor_thermal-engine vendor_sysfs_kgsl:file rw_file_perms;
-allow vendor_thermal-engine vendor_sysfs_kgsl:lnk_file r_file_perms;
-
-allow vendor_thermal-engine vendor_sysfs_data:file r_file_perms;
-
-# This is required read and write battery power supply sysfs
-allow vendor_thermal-engine vendor_sysfs_battery_supply:dir r_dir_perms;
-allow vendor_thermal-engine vendor_sysfs_battery_supply:file rw_file_perms;
-allow vendor_thermal-engine vendor_sysfs_battery_supply:lnk_file r_file_perms;
-
-# This is required to read and write lcd-backlight sysfs
-allow vendor_thermal-engine vendor_sysfs_graphics:dir r_dir_perms;
-allow vendor_thermal-engine vendor_sysfs_graphics:file rw_file_perms;
-allow vendor_thermal-engine vendor_sysfs_graphics:lnk_file r_file_perms;
-
-r_dir_file(vendor_thermal-engine, sysfs_leds)
-allow vendor_thermal-engine audio_device:chr_file rw_file_perms;
-
-# reboot/shutdown for thermal limits exceeded
-set_prop(vendor_thermal-engine, powerctl_prop)
-
-#sysfs_uio
-r_dir_file(vendor_thermal-engine, sysfs_uio)
-r_dir_file(vendor_thermal-engine, vendor_sysfs_uio_file)
-
-# netlink access
-allow vendor_thermal-engine self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl;
-#This is required to enable vendor_thermal-engine dsprpc communication
-r_dir_file(vendor_thermal-engine, adsprpcd_file);
-allow vendor_thermal-engine vendor_qdsp_device:chr_file r_file_perms;
-allow vendor_thermal-engine ion_device:chr_file r_file_perms;
-
-# This is required to read devfreq  sysfs
-allow vendor_thermal-engine vendor_sysfs_devfreq:dir r_dir_perms;
-allow vendor_thermal-engine vendor_sysfs_devfreq:file r_file_perms;
-allow vendor_thermal-engine vendor_sysfs_devfreq:lnk_file r_file_perms;
-
-#This is required to write into limits-cdsp partition
-allow vendor_thermal-engine block_device:dir r_dir_perms;
-allow vendor_thermal-engine vendor_limits_block_device:blk_file rw_file_perms;
diff --git a/generic/vendor/common/time_daemon.te b/generic/vendor/common/time_daemon.te
deleted file mode 100644
index 6a644d5..0000000
--- a/generic/vendor/common/time_daemon.te
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright (c) 2018-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.
-
-# Policies for time daemon
-type vendor_time_daemon, domain, mlstrustedsubject;
-type vendor_time_daemon_exec, exec_type, vendor_file_type, file_type;
-
-# Make transition to its own vendor_time_daemon domain from init
-init_daemon_domain(vendor_time_daemon)
-allow vendor_time_daemon vendor_smem_log_device:chr_file rw_file_perms;
-
-# Add rules for access permissions
-allow vendor_time_daemon rtc_device:chr_file r_file_perms;
-
-allow vendor_time_daemon vendor_time_data_file:file create_file_perms;
-allow vendor_time_daemon vendor_time_data_file:dir w_dir_perms;
-allow vendor_time_daemon self:qipcrtr_socket create_socket_perms_no_ioctl;
-allow vendor_time_daemon self:capability sys_time;
-
-allow vendor_time_daemon vendor_persist_time_file:file create_file_perms;
-allow vendor_time_daemon vendor_persist_time_file:dir w_dir_perms;
-
-allow vendor_time_daemon mnt_vendor_file:dir search;
-
-allow vendor_time_daemon vendor_sysfs_mhi:file r_file_perms;
-allow vendor_time_daemon vendor_sysfs_data:file r_file_perms;
-
-get_prop(vendor_time_daemon, vendor_time_service_prop);
diff --git a/generic/vendor/common/timeservice_app.te b/generic/vendor/common/timeservice_app.te
deleted file mode 100644
index 3e3f6f3..0000000
--- a/generic/vendor/common/timeservice_app.te
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (c) 2018-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.
-
-type vendor_timeservice_app, domain;
-app_domain(vendor_timeservice_app);
-
-allow vendor_timeservice_app app_api_service:service_manager find;
-allow vendor_timeservice_app vendor_time_daemon:unix_stream_socket connectto;
-#allow timeservice to access perf hal
-hal_client_domain(vendor_timeservice_app, vendor_hal_perf);
diff --git a/generic/vendor/common/tlocd.te b/generic/vendor/common/tlocd.te
deleted file mode 100644
index b4b6f19..0000000
--- a/generic/vendor/common/tlocd.te
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_tlocd, domain;
-type vendor_tlocd_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_tlocd)
-
-# Allow interracting with vendor_tlocd directory
-allow vendor_tlocd vendor_tlocd_data_file:dir create_dir_perms;
-allow vendor_tlocd vendor_tlocd_data_file:file create_file_perms;
-
-# Allow interracting with qseecom
-allow vendor_tlocd tee_device:chr_file rw_file_perms;
-
-# Allow interracting with trust-zone
-r_dir_file(vendor_tlocd, firmware_file)
-
-# Allow interracting with nqs fifos
-allow vendor_tlocd vendor_tlocd_data_file:fifo_file create_file_perms;
-
-#Allow access MODEM
-allow vendor_tlocd self:{ socket qipcrtr_socket } create_socket_perms;
-allowxperm vendor_tlocd self:{ socket qipcrtr_socket } ioctl msm_sock_ipc_ioctls;
-
-allow vendor_tlocd ion_device:chr_file rw_file_perms;
diff --git a/generic/vendor/common/tzas_app.te b/generic/vendor/common/tzas_app.te
deleted file mode 100644
index 8832784..0000000
--- a/generic/vendor/common/tzas_app.te
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (c) 2020, 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.
-
-type vendor_tzas_app, domain;
-
-app_domain(vendor_tzas_app)
-net_domain(vendor_tzas_app)
-
-unix_socket_connect(vendor_tzas_app, vendor_ssgtzd, vendor_ssgtzd)
-
-binder_call(vendor_tzas_app,vendor_hal_perf_default)
-allow vendor_tzas_app app_api_service:service_manager find;
-allow vendor_tzas_app vendor_hal_perf_hwservice:hwservice_manager find;
-
diff --git a/generic/vendor/common/ueventd.te b/generic/vendor/common/ueventd.te
deleted file mode 100644
index b66072f..0000000
--- a/generic/vendor/common/ueventd.te
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright (c) 2018, 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.
-# For setting up various WIGIG files
-allow ueventd vendor_sysfs_bond0:file rw_file_perms;
-
-allow ueventd vendor_sysfs_usb_c:file w_file_perms;
-
-allow ueventd {
-    { sysfs_type - usermodehelper }
-      vendor_sysfs_battery_supply
-      vendor_sysfs_data
-      vendor_sysfs_graphics
-      vendor_sysfs_kgsl
-      sysfs_leds
-      sysfs_net
-      vendor_sysfs_scsi_host
-      vendor_sysfs_usbpd_device
-      vendor_sysfs_usb_supply
-}:file w_file_perms;
-
-allow ueventd firmware_file:dir search;
-allow ueventd firmware_file:file r_file_perms;
-allow ueventd tmpfs:blk_file getattr;
-allow ueventd vendor_persist_file:dir search;
-allow ueventd vendor_persist_file:file r_file_perms;
-allow ueventd vendor_vm_system_file:dir search;
-allow ueventd vendor_vm_system_file:file r_file_perms;
-
-# For wifi to access  mnt_vendor_file
-r_dir_file(ueventd, mnt_vendor_file)
-
-# for VM firmware handler
-domain_auto_trans(ueventd, vendor_vm_mgr_exec, vendor_vm_mgr)
diff --git a/generic/vendor/common/untrusted_app_25.te b/generic/vendor/common/untrusted_app_25.te
deleted file mode 100644
index ba7511d..0000000
--- a/generic/vendor/common/untrusted_app_25.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2020, 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.
-
-allow untrusted_app_25 vendor_sysfs_kgsl_gpuclk:file r_file_perms;
diff --git a/generic/vendor/common/update_engine.te b/generic/vendor/common/update_engine.te
deleted file mode 100644
index 5b30098..0000000
--- a/generic/vendor/common/update_engine.te
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2017, 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.
-
-# Allow update_engine 
-allow update_engine storage_file:file r_file_perms;
-allow update_engine storage_file:dir r_dir_perms;
-allow update_engine fuse:dir r_dir_perms;
-allow update_engine sdcard_type:dir r_dir_perms;
-allow update_engine sdcard_type:file r_file_perms;
-allow update_engine vendor_vm_system_file:dir search;
-binder_call( update_engine, system_app )
diff --git a/generic/vendor/common/update_engine_common.te b/generic/vendor/common/update_engine_common.te
deleted file mode 100644
index 2482d3b..0000000
--- a/generic/vendor/common/update_engine_common.te
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright (c) 2017, 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.
-
-# Allow update_engine and update_engine_sideload (recovery) read/write on the
-# device-specific partitions it should update.
-allow update_engine_common {
-	vendor_custom_ab_block_device
-	vendor_xbl_block_device
-	vendor_uefi_block_device
-	vendor_ssd_block_device
-	vendor_modem_block_device
-	recovery_block_device
-}:blk_file rw_file_perms;
-
-allow update_engine_common tmpfs:lnk_file r_file_perms;
-allow update_engine_common metadata_file:dir search;
-allow update_engine_common {adsprpcd_file firmware_file}:dir search;
-allow update_engine_common {bt_firmware_file firmware_file}:filesystem getattr;
-
-dontaudit update_engine_common self:capability {dac_read_search dac_override};
-
diff --git a/generic/vendor/common/vendor_hal_capabilityconfigstore_qti.te b/generic/vendor/common/vendor_hal_capabilityconfigstore_qti.te
deleted file mode 100755
index f9792eb..0000000
--- a/generic/vendor/common/vendor_hal_capabilityconfigstore_qti.te
+++ /dev/null
@@ -1,31 +0,0 @@
-# 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.
-
-binder_call(vendor_hal_capabilityconfigstore_qti_client, vendor_hal_capabilityconfigstore_qti_server)
-binder_call(vendor_hal_capabilityconfigstore_qti_server, vendor_hal_capabilityconfigstore_qti_client)
-
-hal_attribute_hwservice(vendor_hal_capabilityconfigstore_qti, vendor_hal_capabilityconfigstore_qti_hwservice)
diff --git a/generic/vendor/common/vendor_hal_capabilityconfigstore_qti_default.te b/generic/vendor/common/vendor_hal_capabilityconfigstore_qti_default.te
deleted file mode 100755
index 871896e..0000000
--- a/generic/vendor/common/vendor_hal_capabilityconfigstore_qti_default.te
+++ /dev/null
@@ -1,37 +0,0 @@
-# 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.
-
-type vendor_hal_capabilityconfigstore_qti_default, domain;
-hal_server_domain(vendor_hal_capabilityconfigstore_qti_default, vendor_hal_capabilityconfigstore_qti)
-
-type vendor_hal_capabilityconfigstore_qti_default_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_hal_capabilityconfigstore_qti_default)
-
-allow vendor_hal_capabilityconfigstore_qti_default vendor_capabilityconfigstore_data_file:file rw_file_perms;
-allow vendor_hal_capabilityconfigstore_qti_default vendor_capabilityconfigstore_data_file:dir rw_dir_perms;
-userdebug_or_eng(`get_prop(vendor_hal_capabilityconfigstore_qti_default, vendor_cap_configstore_dbg_prop)')
-
diff --git a/generic/vendor/common/vendor_hal_dataconnection_qti.te b/generic/vendor/common/vendor_hal_dataconnection_qti.te
deleted file mode 100644
index 3c9a7f4..0000000
--- a/generic/vendor/common/vendor_hal_dataconnection_qti.te
+++ /dev/null
@@ -1,31 +0,0 @@
-# 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.
-
-binder_call(vendor_hal_dataconnection_qti_client, vendor_hal_dataconnection_qti_server)
-binder_call(vendor_hal_dataconnection_qti_server, vendor_hal_dataconnection_qti_client)
-
-hal_attribute_hwservice(vendor_hal_dataconnection_qti, vendor_hal_dataconnection_hwservice)
diff --git a/generic/vendor/common/vendor_init.te b/generic/vendor/common/vendor_init.te
deleted file mode 100644
index 82d3531..0000000
--- a/generic/vendor/common/vendor_init.te
+++ /dev/null
@@ -1,108 +0,0 @@
-# Copyright (c) 2017-2018, 2020  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.
-
-allow vendor_init vendor_persist_block_device:{ blk_file lnk_file } relabelto;
-allow vendor_init unlabeled:dir { r_dir_perms setattr relabelfrom };
-allow vendor_init unlabeled:file { r_file_perms setattr relabelfrom };
-allow vendor_init vendor_ipa_dev:chr_file w_file_perms;
-allow vendor_init proc:file write;
-
-allow vendor_init self:capability sys_module;
-
-allow vendor_init vendor_file:system module_load;
-allow vendor_init kernel:key search;
-allow vendor_init kernel:system module_request;
-
-allow vendor_init self:capability sys_module;
-allow vendor_init kmsg_device:chr_file write;
-
-#allow vendor GPU property
-set_prop(vendor_init, vendor_opengles_prop)
-
-#Allow triggering IPA FWs loading
-allow vendor_init vendor_ipa_dev:chr_file write;
-
-#For insmod to search module key for signature verification
-allow vendor_init kernel:key search;
-
-#For configfs file permission
-allow vendor_init configfs:dir r_dir_perms;
-allow vendor_init configfs:file { rw_file_perms link };
-allow vendor_init configfs:lnk_file create_file_perms;
-
-allow vendor_init vendor_sysfs_ssr:file write;
-
-allow vendor_init sysfs_android_usb:file rw_file_perms;
-
-allow vendor_init vendor_sysfs_slpi:file write;
-
-allow vendor_init vendor_file:system module_load;
-
-allow vendor_init vendor_sysfs_scsi_host:file { setattr };
-
-allow vendor_init {
-    vendor_camera_data_file
-    vendor_tui_data_file
-}:dir create_dir_perms;
-
-#Access persist.sys.usb.config
-set_prop(vendor_init, system_prop)
-set_prop(vendor_init, vendor_usb_prop)
-set_prop(vendor_init, vendor_audio_prop)
-#Enable radio properties setting
-set_prop(vendor_init, vendor_radio_prop)
-
-#Access vendor display properties
-set_prop(vendor_init, vendor_display_prop)
-
-#Access vendor gralloc properties
-set_prop(vendor_init, vendor_gralloc_prop)
-
-#Access vendor gpu freq properties
-set_prop(vendor_init, vendor_gpu_prop)
-
-#Access vendor_public_vendor_default_prop
-set_prop(vendor_init, vendor_public_vendor_default_prop)
-
-# Allow timezone to be overrided by vendor
-set_prop(vendor_init, exported_system_prop)
-
-# Access vendor sensor properties
-set_prop(vendor_init, vendor_sensors_prop)
-
-#Access vendor bluetooth properties
-set_prop(vendor_init, vendor_bluetooth_prop)
-userdebug_or_eng(`
-  allow vendor_init proc_security:file rw_file_perms;
-')
-
-set_prop(vendor_init,vendor_dcvs_prop)
-
-# Allow vendor_init to read vendor_soc_name_prop
-get_prop(vendor_init, vendor_soc_name_prop);
-
-allow vendor_init tee_device:chr_file getattr;
diff --git a/generic/vendor/common/vendor_lowirpcd.te b/generic/vendor/common/vendor_lowirpcd.te
deleted file mode 100644
index 1d3fca7..0000000
--- a/generic/vendor/common/vendor_lowirpcd.te
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright (c) 2020, 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.
-type vendor_lowirpcd_service, domain;
-type vendor_lowirpcd_service_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_lowirpcd_service)
-
-allow vendor_lowirpcd_service ion_device:chr_file r_file_perms;
-allow vendor_lowirpcd_service vendor_qdsp_device:chr_file r_file_perms;
-allow vendor_lowirpcd_service vendor_xdsp_device:chr_file r_file_perms;
-
-# For reading adsprpc_prop
-get_prop(vendor_lowirpcd_service, vendor_adsprpc_prop)
-
-# Access to wakelock sysfs
-wakelock_use(vendor_lowirpcd_service)
-
diff --git a/generic/vendor/common/vendor_modinstall-sh.te b/generic/vendor/common/vendor_modinstall-sh.te
deleted file mode 100644
index e191c89..0000000
--- a/generic/vendor/common/vendor_modinstall-sh.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2020, 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.
-
-type vendor_modinstall-sh_exec, exec_type, vendor_file_type, file_type;
diff --git a/generic/vendor/common/vendor_modprobe.te b/generic/vendor/common/vendor_modprobe.te
deleted file mode 100644
index 8c8cb63..0000000
--- a/generic/vendor/common/vendor_modprobe.te
+++ /dev/null
@@ -1,30 +0,0 @@
-# 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.
-
-domain_trans(init, vendor_modinstall-sh_exec, vendor_modprobe)
-allow vendor_modprobe vendor_shell_exec:file rx_file_perms;
-allow vendor_modprobe vendor_toolbox_exec:file rx_file_perms;
diff --git a/generic/vendor/common/vm_mgr.te b/generic/vendor/common/vm_mgr.te
deleted file mode 100644
index 8d3af61..0000000
--- a/generic/vendor/common/vm_mgr.te
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright (c) 2020, 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.
-
-#######################
-# Policy for vmmgr
-type vendor_vm_mgr, domain;
-type vendor_vm_mgr_exec, exec_type, vendor_file_type, file_type;
-
-
-#######################
-# Main daemon flow
-init_daemon_domain(vendor_vm_mgr);
-
-# Scan thru and read vm images
-allow vendor_vm_mgr vendor_vm_system_file:file r_file_perms;
-allow vendor_vm_mgr vendor_vm_system_file:dir search;
-
-# Execute toolbox to setup loopback block devices for VM's file system
-allow vendor_vm_mgr self:global_capability_class_set { sys_admin };
-allow vendor_vm_mgr { vendor_shell_exec vendor_toolbox_exec }:file rx_file_perms;
-allow vendor_vm_mgr block_device:dir r_dir_perms;
-allow vendor_vm_mgr block_device:blk_file getattr;
-allow vendor_vm_mgr loop_control_device:chr_file rw_file_perms;
-allowxperm vendor_vm_mgr loop_control_device:chr_file ioctl { LOOP_CTL_GET_FREE };
-allow vendor_vm_mgr loop_device:blk_file rw_file_perms;
-allowxperm vendor_vm_mgr loop_device:blk_file ioctl { LOOP_GET_STATUS64 LOOP_SET_FD LOOP_SET_STATUS64 LOOP_CLR_FD };
-allow vendor_vm_mgr vendor_ssr_device:chr_file r_file_perms;
-allow vendor_vm_mgr vendor_sysfs_bootguestvm:file w_file_perms;
-# losetup used by vm-mgr scans for every block devices looking for loopbacks
-# so ignore all denials during this scan
-dontaudit vendor_vm_mgr dev_type:blk_file getattr;
-# Invoking losetup executable from vm-mgr launch a shell process, which may make use of any
-# AOSP debug-type properties.  Ignore them all.
-dontaudit vendor_vm_mgr default_prop:file read;
-
-# Set neuron mapping block device
-allow vendor_vm_mgr vendor_sysfs_svm_neuron:file rw_file_perms;
-# allow kernel neuron driver to make use of the mapped block device and underlying file image
-allow kernel vendor_vm_mgr:fd use;
-allow kernel vendor_vm_system_file:file r_file_perms;
-
-
-#######################
-# Uevent firmware helper flow
-allow vendor_vm_mgr ueventd:fd use;
-allow vendor_vm_mgr ueventd:unix_stream_socket { read write getattr};
diff --git a/generic/vendor/common/vndservice.te b/generic/vendor/common/vndservice.te
deleted file mode 100644
index f28d972..0000000
--- a/generic/vendor/common/vndservice.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2018, 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.
-type vendor_qdisplay_service,             vndservice_manager_type;
-type vendor_per_mgr_service,       vndservice_manager_type;
-type vendor_qfeatenab_client_service,     vndservice_manager_type;
diff --git a/generic/vendor/common/vndservice_contexts b/generic/vendor/common/vndservice_contexts
deleted file mode 100644
index 18672ba..0000000
--- a/generic/vendor/common/vndservice_contexts
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2018, 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.
-display.qservice                        u:object_r:vendor_qdisplay_service:s0
-featenab_client.service                 u:object_r:vendor_qfeatenab_client_service:s0
-vendor.qcom.PeripheralManager           u:object_r:vendor_per_mgr_service:s0
diff --git a/generic/vendor/common/vold.te b/generic/vendor/common/vold.te
deleted file mode 100644
index bd86659..0000000
--- a/generic/vendor/common/vold.te
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (c) 2018, 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.
-get_prop(vold, vendor_tee_listener_prop)
-
-# Based on the comment from b/111409607 FITRIM might
-# be needed
-allow vold mnt_vendor_file:dir { open read ioctl };
diff --git a/generic/vendor/common/wcnss_service.te b/generic/vendor/common/wcnss_service.te
deleted file mode 100644
index 0552d3d..0000000
--- a/generic/vendor/common/wcnss_service.te
+++ /dev/null
@@ -1,79 +0,0 @@
-# Copyright (c) 2018, 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.
-type vendor_wcnss_service, domain;
-type vendor_wcnss_service_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_wcnss_service)
-net_domain(vendor_wcnss_service)
-
-vndbinder_use(vendor_wcnss_service)
-binder_call(vendor_wcnss_service, vendor_per_mgr)
-
-allow vendor_wcnss_service vendor_per_mgr_service:service_manager find;
-
-allow vendor_wcnss_service vendor_shell_exec:file rx_file_perms;
-allow vendor_wcnss_service vendor_toolbox_exec:file rx_file_perms;
-
-allow vendor_wcnss_service vendor_wifi_vendor_data_file:dir create_dir_perms;
-allow vendor_wcnss_service vendor_wifi_vendor_data_file:file create_file_perms;
-
-allow vendor_wcnss_service proc_net:file rw_file_perms;
-
-allow vendor_wcnss_service self:{ socket qipcrtr_socket }  create_socket_perms;
-allowxperm vendor_wcnss_service self:{ socket qipcrtr_socket }  ioctl msm_sock_ipc_ioctls;
-allowxperm vendor_wcnss_service self:udp_socket ioctl { SIOCIWFIRSTPRIV_05 SIOCSIFFLAGS };
-
-allow vendor_wcnss_service self:netlink_generic_socket create_socket_perms_no_ioctl;
-allow vendor_wcnss_service self:netlink_socket create_socket_perms_no_ioctl;
-
-allow vendor_wcnss_service firmware_file:dir r_dir_perms;
-allow vendor_wcnss_service firmware_file:file r_file_perms;
-
-allow vendor_wcnss_service sysfs_net:dir search;
-allow vendor_wcnss_service sysfs_net:file { write getattr open };
-
-allow vendor_wcnss_service wpa_data_file:dir create_dir_perms;
-allow vendor_wcnss_service wpa_data_file:file create_file_perms;
-
-allow vendor_wcnss_service proc_net:file getattr;
-
-allow vendor_wcnss_service vendor_sysfs_data:file r_file_perms;
-# pkt logging for cnss_diag
-userdebug_or_eng(`
-  r_dir_file(vendor_wcnss_service, vendor_proc_wifi_dbg)
-  r_dir_file(vendor_wcnss_service, vendor_sysfs_diag)
-  allow vendor_wcnss_service vendor_sysfs_timestamp_switch:file r_file_perms;
-')
-
-userdebug_or_eng(`
-allow vendor_wcnss_service vendor_wifi_vendor_log_data_file:dir create_dir_perms;
-allow vendor_wcnss_service vendor_wifi_vendor_log_data_file:file create_file_perms;
-# This is needed for ptt_socket_app to write logs file collected to sdcard
-r_dir_file(vendor_wcnss_service, storage_file)
-r_dir_file(vendor_wcnss_service, mnt_user_file)
-')
-
diff --git a/generic/vendor/kona/file.te b/generic/vendor/kona/file.te
deleted file mode 100644
index 5f3c056..0000000
--- a/generic/vendor/kona/file.te
+++ /dev/null
@@ -1,27 +0,0 @@
-# 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.
-
diff --git a/generic/vendor/kona/file_contexts b/generic/vendor/kona/file_contexts
deleted file mode 100644
index 7c2b295..0000000
--- a/generic/vendor/kona/file_contexts
+++ /dev/null
@@ -1,106 +0,0 @@
-# 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.
-###################################
-# Dev block nodes
-
-# UFS Devices
-/dev/block/platform/soc/1d84000.ufshc/by-name/system                u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vendor                u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/product               u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/odm                   u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/metadata              u:object_r:metadata_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/userdata              u:object_r:userdata_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/boot                  u:object_r:boot_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/fsc                   u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/fsg                   u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modemst1              u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modemst2              u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/ssd                   u:object_r:vendor_ssd_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/misc                  u:object_r:misc_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/rpm                   u:object_r:vendor_rpmb_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/recovery              u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cache                 u:object_r:cache_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/frp                   u:object_r:frp_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtp                  u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdm1m9kefs1           u:object_r:vendor_efs_boot_dev:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdm1m9kefs2           u:object_r:vendor_efs_boot_dev:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdm1m9kefs3           u:object_r:vendor_efs_boot_dev:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdmddr                u:object_r:vendor_efs_boot_dev:s0
-
-# A/B partitions.
-/dev/block/platform/soc/1d84000.ufshc/by-name/abl_[ab]              u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/aop_[ab]              u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/apdp_[ab]             u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/bluetooth_[ab]        u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/boot_[ab]             u:object_r:boot_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cmnlib_[ab]           u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cmnlib64_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/core_nhlos_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/devcfg_[ab]           u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/dsp_[ab]              u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/dtbo_[ab]             u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/featenabler_[ab]      u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/hyp_[ab]              u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/keymaster_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtp_[ab]             u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtpsecapp_[ab]       u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modem_[ab]            u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/msadp_[ab]            u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/multiimgqti_[ab]      u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/persist               u:object_r:vendor_persist_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/pmic_[ab]             u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/qupfw_[ab]            u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/rpm_[ab]              u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/system_[ab]           u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/tz_[ab]               u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vbmeta_[ab]           u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vendor_[ab]           u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/product_[ab]          u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/odm_[ab]              u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/xbl_[ab]              u:object_r:vendor_xbl_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/xbl_config_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/imagefv_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/multiimgoem_[ab]      u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/uefisecapp_[ab]       u:object_r:vendor_uefi_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/recovery_[ab]         u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vbmeta_system_[ab]    u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vbmeta_product_[ab]   u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/super                 u:object_r:super_block_device:s0
-
-# Block device holding the GPT, where the A/B attributes are stored.
-/dev/block/platform/soc/1d84000.ufshc/sd[ade]                       u:object_r:vendor_gpt_block_device:s0
-
-# Block devices for the drive that holds the xbl_a and xbl_b partitions.
-/dev/block/platform/soc/1d84000.ufshc/sd[bc]                        u:object_r:vendor_xbl_block_device:s0
-
-# Same process file
-/vendor/lib(64)?/hw/gralloc\.kona\.so                               u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/hw/vulkan\.kona\.so                                u:object_r:same_process_hal_file:s0
-
-# limits Partitions
-/dev/block/platform/soc/1d84000.ufshc/by-name/limits                u:object_r:vendor_limits_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/limits-cdsp           u:object_r:vendor_limits_block_device:s0
diff --git a/generic/vendor/kona/genfs_contexts b/generic/vendor/kona/genfs_contexts
deleted file mode 100644
index 0fa2389..0000000
--- a/generic/vendor/kona/genfs_contexts
+++ /dev/null
@@ -1,141 +0,0 @@
-# Copyright (c) 2018-2020, 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.
-
-# subsys nodes
-genfscon sysfs /devices/platform/soc/soc:qcom,ipa_fws/subsys0/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,ipa_uc/subsys1/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/5c00000.qcom,ssc/subsys8/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/aab0000.qcom,venus/subsys4/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/abb0000.qcom,cvpss/subsys6/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/9800000.qcom,npu/subsys11/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-hyp/subsys8/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,mdm0/subsys10/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/17300000.qcom,lpass/subsys2/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/8300000.qcom,turing/subsys3/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/188101c.qcom,spss/subsys5/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/a600000.ssusb/a600000.dwc3/udc/a600000.dwc3 u:object_r:vendor_sysfs_usb_controller:s0
-
-#subsys nodes WLAN
-genfscon sysfs /devices/platform/soc/b0000000.qcom,cnss-qca6390/subsys9/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/17300000.qcom,lpass/subsys8/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/8300000.qcom,turing/subsys9/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/188101c.qcom,spss/subsys10/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/5c00000.qcom,ssc/subsys7/name u:object_r:vendor_sysfs_ssr:s0
-
-genfscon sysfs /devices/platform/soc/soc:qcom,wil6210/subsys12/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,mdm0/esoc0 u:object_r:vendor_sysfs_esoc:s0
-genfscon sysfs /devices/platform/vendor/vendor:bt_qca6390/extldo u:object_r:sysfs_bluetooth_writable:s0
-genfscon sysfs /devices/platform/vendor/vendor:bt_qca6390/rfkill/rfkill0/state u:object_r:sysfs_bluetooth_writable:s0
-
-# DCVS nodes
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu-cpu-llcc-bw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu-llcc-ddr-bw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,npu-npu-llcc-bw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,npu-llcc-ddr-bw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,npudsp-npu-ddr-bw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/18590000.qcom,devfreq-l3/18590000.qcom,devfreq-l3:qcom,cpu0-cpu-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/18590000.qcom,devfreq-l3/18590000.qcom,devfreq-l3:qcom,cpu4-cpu-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/18590000.qcom,devfreq-l3/18590000.qcom,devfreq-l3:qcom,cpu7-cpu-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/18590000.qcom,devfreq-l3/18590000.qcom,devfreq-l3:qcom,cdsp-cdsp-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu0-cpu-llcc-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu4-cpu-llcc-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu0-llcc-ddr-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu4-llcc-ddr-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu4-cpu-ddr-latfloor/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu4-cpu-ddr-qoslat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-#mhi sysfs
-genfscon sysfs /devices/platform/soc/1c10000.qcom,pcie/pci0002:00/0002:00:00.0/0002:01:00.0/0306_02.01.00_QMI0 u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/platform/soc/1c10000.qcom,pcie/pci0002:00/0002:00:00.0/0002:01:00.0/0306_02.01.00_QMI1  u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/0306_00.01.00/time u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/0306_01.01.00/time u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/0306_02.01.00/time u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/1101_00.01.00/time u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/1101_01.01.00/time u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/1101_02.01.00/time u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/0306_00.01.00/time_us u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/0306_01.01.00/time_us u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/0306_02.01.00/time_us u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/1101_00.01.00/time_us u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/1101_01.01.00/time_us u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/1101_02.01.00/time_us u:object_r:vendor_sysfs_mhi:s0
-
-# Power supply device nodes
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm8150b@2:qcom,qpnp-smb5/power_supply/battery u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm8150b@2:qcom,qpnp-smb5/power_supply/dc u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm8150b@2:qcom,qpnp-smb5/power_supply/main u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm8150b@2:qpnp,fg/power_supply/bms u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm8150b@2:qcom,qpnp-smb5/power_supply/pc_port u:object_r:vendor_sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm8150b@2:qcom,qpnp-smb5/power_supply/usb u:object_r:vendor_sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/884000.i2c/i2c-2/2-000c/884000.i2c:qcom,smb1355@c:qcom,smb1355-charger@1000/power_supply/parallel u:object_r:vendor_sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/884000.i2c/i2c-2/2-0010/884000.i2c:qcom,smb1390@10:qcom,charge_pump/power_supply/charge_pump_master u:object_r:vendor_sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/884000.i2c/i2c-2/2-0018/884000.i2c:qcom,smb1390_slave@18:qcom,charge_pump_slave/power_supply/cp_slave u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/884000.i2c/i2c-2/2-0025/power_supply/wireless u:object_r:vendor_sysfs_battery_supply:s0
-
-# LED device nodes
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm8150l@5:qcom,leds@d000/leds/red u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm8150l@5:qcom,leds@d000/leds/green u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm8150l@5:qcom,leds@d000/leds/blue u:object_r:vendor_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_led1 u:object_r:vendor_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:vendor_sysfs_graphics:s0
-
-#qdss sysfs-node
-genfscon sysfs /devices/platform/soc/6b05000.tmc/coresight-tmc-etf u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/6048000.tmc/coresight-tmc-etr u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/6002000.stm/coresight-stm u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/soc:hwevent/coresight-hwevent u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/6b0c000.csr/coresight-swao-csr u:object_r:vendor_sysfs_qdss_dev:s0
-
-#fps sysfs-node
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-0/measured_fps u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-1/measured_fps u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-2/measured_fps u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-0/fps_periodicity_ms u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-1/fps_periodicity_ms u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-2/fps_periodicity_ms u:object_r:vendor_sysfs_graphics: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:vendor_sysfs_usbpd_device:s0
-
-#net sysfs
-genfscon sysfs /devices/platform/soc/1c10000.qcom,pcie/pci0002:00/0002:00:00.0/0002:01:00.0/0306_02.01.00_IP_HW0/net u:object_r:sysfs_net:s0
-
-
-#restart_level
-genfscon sysfs /devices/platform/soc/soc:qcom,mdm0/subsys11/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,ipa_fws/subsys0/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,ipa_uc/subsys1/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/b0000000.qcom,cnss-qca6390/subsys9/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,mdm0/subsys10/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,wil6210/subsys12/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/17300000.qcom,lpass/subsys2/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/8300000.qcom,turing/subsys3/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/aab0000.qcom,venus/subsys4/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/188101c.qcom,spss/subsys5/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/abb0000.qcom,cvpss/subsys6/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/9800000.qcom,npu/subsys11/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/5c00000.qcom,ssc/subsys7/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-hyp/subsys8/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
diff --git a/generic/vendor/kona/init.te b/generic/vendor/kona/init.te
deleted file mode 100644
index c93ee98..0000000
--- a/generic/vendor/kona/init.te
+++ /dev/null
@@ -1,42 +0,0 @@
-# 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.
-
-# Allow init to read/write/ioctl for mounting overlayfs
-# with kernel 4.19.  At the point of overlayfs mount
-# SELinux is initialized but labels tmpfs has not yet
-# been relabeled.
-#
-# This is only used for userdebug/eng in adb remount
-# scenario
-#
-# Temporary change
-userdebug_or_eng(`
-  allow init tmpfs:blk_file { ioctl read write open getattr };
-')
-
-allow init firmware_file:filesystem getattr;
-allow init bt_firmware_file:filesystem getattr;
diff --git a/generic/vendor/lahaina/file_contexts b/generic/vendor/lahaina/file_contexts
deleted file mode 100644
index 9d85b69..0000000
--- a/generic/vendor/lahaina/file_contexts
+++ /dev/null
@@ -1,111 +0,0 @@
-# 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.
-###################################
-# Dev block nodes
-
-# UFS Devices
-/dev/block/platform/soc/1d84000.ufshc/by-name/system                u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vendor                u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/product               u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/odm                   u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/metadata              u:object_r:metadata_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/userdata              u:object_r:userdata_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/boot                  u:object_r:boot_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/fsc                   u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/fsg                   u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modemst1              u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modemst2              u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/ssd                   u:object_r:vendor_ssd_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/misc                  u:object_r:misc_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/rpm                   u:object_r:vendor_rpmb_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/recovery              u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cache                 u:object_r:cache_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/frp                   u:object_r:frp_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtp                  u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdm1m9kefs1           u:object_r:vendor_efs_boot_dev:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdm1m9kefs2           u:object_r:vendor_efs_boot_dev:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdm1m9kefs3           u:object_r:vendor_efs_boot_dev:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdmddr                u:object_r:vendor_efs_boot_dev:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vm-data               u:object_r:vendor_vm_data_block_device:s0
-
-# A/B partitions.
-/dev/block/platform/soc/1d84000.ufshc/by-name/abl_[ab]              u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/aop_[ab]              u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/apdp_[ab]             u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/bluetooth_[ab]        u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/boot_[ab]             u:object_r:boot_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vendor_boot_[ab]      u:object_r:boot_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cmnlib_[ab]           u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cmnlib64_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/core_nhlos_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cpucp_[ab]            u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/devcfg_[ab]           u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/dsp_[ab]              u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/dtbo_[ab]             u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/featenabler_[ab]      u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/hyp_[ab]              u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/keymaster_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtp_[ab]             u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtpsecapp_[ab]       u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modem_[ab]            u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/msadp_[ab]            u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/multiimgqti_[ab]      u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/persist               u:object_r:vendor_persist_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/pmic_[ab]             u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/qupfw_[ab]            u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/rpm_[ab]              u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/shrm_[ab]             u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/system_[ab]           u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/tz_[ab]               u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vbmeta_[ab]           u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vendor_[ab]           u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/product_[ab]          u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/odm_[ab]              u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/xbl_[ab]              u:object_r:vendor_xbl_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/xbl_config_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/imagefv_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/multiimgoem_[ab]      u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/uefisecapp_[ab]       u:object_r:vendor_uefi_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/recovery_[ab]         u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vbmeta_system_[ab]    u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vbmeta_product_[ab]   u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vm-bootsys_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/super                 u:object_r:super_block_device:s0
-
-# Block device holding the GPT, where the A/B attributes are stored.
-/dev/block/platform/soc/1d84000.ufshc/sd[ade]                       u:object_r:vendor_gpt_block_device:s0
-
-# Block devices for the drive that holds the xbl_a and xbl_b partitions.
-/dev/block/platform/soc/1d84000.ufshc/sd[bc]                        u:object_r:vendor_xbl_block_device:s0
-
-# Same process file
-/vendor/lib(64)?/hw/gralloc\.lahaina\.so                               u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/hw/vulkan\.lahaina\.so                                u:object_r:same_process_hal_file:s0
-
-# limits Partitions
-/dev/block/platform/soc/1d84000.ufshc/by-name/limits                u:object_r:vendor_limits_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/limits-cdsp           u:object_r:vendor_limits_block_device:s0
diff --git a/generic/vendor/lahaina/genfs_contexts b/generic/vendor/lahaina/genfs_contexts
deleted file mode 100644
index dd74f78..0000000
--- a/generic/vendor/lahaina/genfs_contexts
+++ /dev/null
@@ -1,155 +0,0 @@
-# Copyright (c) 2020, 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.
-
-#subsys nodes (varying hardware layouts; can optimize for specific hw variant)
-genfscon sysfs /devices/platform/soc/soc:qcom,ipa_fws/subsys0/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,ipa_fws/subsys0/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,ipa_fws/subsys2/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,ipa_fws/subsys2/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-
-genfscon sysfs /devices/platform/soc/abb0000.qcom,cvpss/subsys1/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/abb0000.qcom,cvpss/subsys1/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/abb0000.qcom,cvpss/subsys3/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/abb0000.qcom,cvpss/subsys3/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-
-genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-hyp/subsys2/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-hyp/subsys2/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-hyp/subsys3/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-hyp/subsys3/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-hyp/subsys4/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-hyp/subsys4/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-hyp/subsys6/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-hyp/subsys6/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-
-genfscon sysfs /devices/platform/soc/aab0000.qcom,venus/subsys3/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/aab0000.qcom,venus/subsys3/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/aab0000.qcom,venus/subsys4/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/aab0000.qcom,venus/subsys4/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/aab0000.qcom,venus/subsys5/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/aab0000.qcom,venus/subsys5/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-
-genfscon sysfs /devices/platform/soc/4080000.qcom,mss/subsys3/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/4080000.qcom,mss/subsys3/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/4080000.qcom,mss/subsys4/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/4080000.qcom,mss/subsys4/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/4080000.qcom,mss/subsys5/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/4080000.qcom,mss/subsys5/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/4080000.qcom,mss/subsys6/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/4080000.qcom,mss/subsys6/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-
-genfscon sysfs /devices/platform/soc/17300000.qcom,lpass/subsys0/name  u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/17300000.qcom,lpass/subsys0/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/17300000.qcom,lpass/subsys4/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/17300000.qcom,lpass/subsys4/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/17300000.qcom,lpass/subsys5/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/17300000.qcom,lpass/subsys5/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/17300000.qcom,lpass/subsys6/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/17300000.qcom,lpass/subsys6/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/17300000.qcom,lpass/subsys7/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/17300000.qcom,lpass/subsys7/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-
-genfscon sysfs /devices/platform/soc/98900000.qcom,turing/subsys1/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/98900000.qcom,turing/subsys1/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/98900000.qcom,turing/subsys5/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/98900000.qcom,turing/subsys5/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/98900000.qcom,turing/subsys6/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/98900000.qcom,turing/subsys6/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/98900000.qcom,turing/subsys7/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/98900000.qcom,turing/subsys7/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/98900000.qcom,turing/subsys8/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/98900000.qcom,turing/subsys8/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-
-genfscon sysfs /devices/platform/soc/5c00000.qcom,ssc/subsys4/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/5c00000.qcom,ssc/subsys4/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/5c00000.qcom,ssc/subsys6/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/5c00000.qcom,ssc/subsys6/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/5c00000.qcom,ssc/subsys7/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/5c00000.qcom,ssc/subsys7/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/5c00000.qcom,ssc/subsys8/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/5c00000.qcom,ssc/subsys8/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/5c00000.qcom,ssc/subsys9/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/5c00000.qcom,ssc/subsys9/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-
-genfscon sysfs /devices/platform/soc/188101c.qcom,spss/subsys5/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/188101c.qcom,spss/subsys5/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/188101c.qcom,spss/subsys7/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/188101c.qcom,spss/subsys7/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/188101c.qcom,spss/subsys8/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/188101c.qcom,spss/subsys8/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/188101c.qcom,spss/subsys9/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/188101c.qcom,spss/subsys9/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/188101c.qcom,spss/subsys10/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/188101c.qcom,spss/subsys10/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-
-genfscon sysfs /devices/platform/soc/soc:qcom,trustedvm@d0800000/subsys2/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,trustedvm@d0800000/subsys2/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,trustedvm@d0800000/subsys3/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,trustedvm@d0800000/subsys3/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-
-genfscon sysfs /devices/platform/soc/b0000000.qcom,cnss-qca6490/subsys2/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/b0000000.qcom,cnss-qca6490/subsys2/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/b0000000.qcom,cnss-qca6490/subsys9/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/b0000000.qcom,cnss-qca6490/subsys9/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/b0000000.qcom,cnss-qca6490/subsys10/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/b0000000.qcom,cnss-qca6490/subsys10/restart_level u:object_r:vendor_sysfs_ssr:s0
-
-
-#qdss sysfs-node
-genfscon sysfs /devices/platform/soc/6b05000.tmc/coresight-tmc-etf u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/6048000.tmc/coresight-tmc-etr u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/6002000.stm/coresight-stm u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/soc:hwevent/coresight-hwevent u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/6b0f000.csr/coresight-swao-csr u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/soc:dummy_source/coresight-modem-diag u:object_r:vendor_sysfs_qdss_dev:s0
-
-# Power supply device nodes
-genfscon sysfs /devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,battery_charger/power_supply/battery u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,battery_charger/power_supply/usb u:object_r:vendor_sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,pmic_glink/soc:qcom,pmic_glink:qcom,battery_charger/power_supply/wireless u:object_r:vendor_sysfs_usb_supply:s0
-
-# LED device nodes
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm8350c@2:qcom,leds@ef00/leds/red u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm8350c@2:qcom,leds@ef00/leds/green u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm8350c@2:qcom,leds@ef00/leds/blue u:object_r:vendor_sysfs_graphics:s0
-
-# DCVS nodes
-genfscon sysfs /devices/platform/soc/18590100.qcom,cpu0-cpu-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/18590100.qcom,cpu1-cpu-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/18590100.qcom,cpu2-cpu-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/18590100.qcom,cpu3-cpu-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/18590100.qcom,cpu4-cpu-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/18590100.qcom,cpu5-cpu-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/18590100.qcom,cpu6-cpu-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/18590100.qcom,cpu7-cpu-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu-cpu-llcc-bw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu-llcc-ddr-bw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu0-cpu-llcc-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu0-llcc-ddr-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu4-cpu-ddr-latfloor/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu4-cpu-llcc-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu4-llcc-ddr-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu4-cpu-ddr-qoslat/devfreq u:object_r:vendor_sysfs_devfreq:s0
diff --git a/generic/vendor/lito/device.te b/generic/vendor/lito/device.te
deleted file mode 100644
index aab907f..0000000
--- a/generic/vendor/lito/device.te
+++ /dev/null
@@ -1,31 +0,0 @@
-# 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.
-
-type vendor_logdump_partition, dev_type;
-type vendor_mba_debug_dev, dev_type;
-type vendor_dip_device, dev_type;
-type vendor_rawdump_block_device, dev_type;
diff --git a/generic/vendor/lito/file.te b/generic/vendor/lito/file.te
deleted file mode 100644
index 72acff3..0000000
--- a/generic/vendor/lito/file.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_sysfs_fps_attr, fs_type, sysfs_type;
diff --git a/generic/vendor/lito/file_contexts b/generic/vendor/lito/file_contexts
deleted file mode 100644
index 72b5849..0000000
--- a/generic/vendor/lito/file_contexts
+++ /dev/null
@@ -1,207 +0,0 @@
-# Copyright (c) 2016-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.
-###################################
-# Dev block nodes
-
-#Primary storage device nodes
-/dev/mmcblk0rpmb                                                                u:object_r:vendor_rpmb_device:s0
-/dev/block/mmcblk0                                                              u:object_r:root_block_device:s0
-
-# UFS Devices
-/dev/block/platform/soc/1d84000.ufshc/by-name/system                            u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/metadata                            u:object_r:metadata_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/userdata                          u:object_r:userdata_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/odm                               u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/boot                              u:object_r:boot_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/logdump                           u:object_r:vendor_logdump_partition:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/fsc                                u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/fsg                                u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modemst1                           u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modemst2                           u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/ssd                                u:object_r:vendor_ssd_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/misc                               u:object_r:misc_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/rpm                                u:object_r:vendor_rpmb_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/msadp                              u:object_r:vendor_mba_debug_dev:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/recovery                           u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cache                              u:object_r:cache_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/frp                                u:object_r:frp_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtp                               u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/dip                                u:object_r:vendor_dip_device:s0
-
-#rawdump partition
-/dev/block/platform/soc/1d84000.ufshc/by-name/rawdump                            u:object_r:vendor_rawdump_block_device:s0
-
-# A/B partitions.
-/dev/block/platform/soc/1d84000.ufshc/by-name/abl_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/aop_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/apdp_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/bluetooth_[ab]    u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/boot_[ab]         u:object_r:boot_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cmnlib_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cmnlib64_[ab]     u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/devcfg_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/dsp_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/dtbo_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/hyp_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/keymaster_[ab]    u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtp_[ab]         u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtpsecapp_[ab]   u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modem_[ab]        u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/msadp_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/persist           u:object_r:vendor_persist_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/pmic_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/qupfw_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/rpm_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/system_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/tz_[ab]           u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vbmeta_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vendor_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/odm_[ab]          u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/xbl_[ab]          u:object_r:vendor_xbl_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/xbl_config_[ab]   u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/imagefv_[ab]      u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/uefisecapp_[ab]   u:object_r:vendor_uefi_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/recovery_[ab]     u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/featenabler_[ab]  u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/core_nhlos_[ab]   u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vbmeta_system_[ab]     u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/super             u:object_r:super_block_device:s0
-
-# Block device holding the GPT, where the A/B attributes are stored.
-/dev/block/platform/soc/1d84000.ufshc/sd[ade]                   u:object_r:vendor_gpt_block_device:s0
-
-# Block devices for the drive that holds the xbl_a and xbl_b partitions.
-/dev/block/platform/soc/1d84000.ufshc/sd[bc]                 u:object_r:vendor_xbl_block_device:s0
-
-# limits Partitions
-/dev/block/platform/soc/1d84000.ufshc/by-name/limits            u:object_r:vendor_limits_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/limits-cdsp       u:object_r:vendor_limits_block_device:s0
-
-##################################
-# non-hlos mount points
-/firmware                  u:object_r:firmware_file:s0
-/bt_firmware               u:object_r:bt_firmware_file:s0
-
-#eMMC Devices
-/dev/block/platform/soc/7c4000.sdhci/by-name/abl_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/apdp_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/boot_[ab]         u:object_r:boot_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/cmnlib_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/cmnlib64_[ab]     u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/devcfg_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/hyp_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/keymaster_[ab]    u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/modem_[ab]        u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/bluetooth_[ab]    u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/msadp_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/pmic_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/rpm_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/system_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/tz_[ab]           u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/vendor_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/odm_[ab]          u:object_r:system_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/xbl_[ab]          u:object_r:vendor_xbl_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/aop_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/vbmeta_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/dtbo_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/dsp_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/mdtp_[ab]         u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/mdtpsecapp_[ab]   u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/qupfw_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/xbl_config_[ab]   u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/storsec_[ab]      u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/imagefv_[ab]      u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/uefisecapp_[ab]   u:object_r:vendor_uefi_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/recovery_[ab]     u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/featenabler_[ab]  u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/core_nhlos_[ab]   u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/vbmeta_system_[ab]     u:object_r:vendor_custom_ab_block_device:s0
-
-#non A/B
-/dev/block/platform/soc/7c4000.sdhci/by-name/system                            u:object_r:system_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/metadata                            u:object_r:metadata_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/userdata                          u:object_r:userdata_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/boot                              u:object_r:boot_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/logdump                           u:object_r:vendor_logdump_partition:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/fsc                                u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/fsg                                u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/modemst1                           u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/modemst2                           u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/ssd                                u:object_r:vendor_ssd_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/misc                               u:object_r:misc_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/rpm                                u:object_r:vendor_rpmb_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/msadp                              u:object_r:vendor_mba_debug_dev:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/recovery                           u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/cache                              u:object_r:cache_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/frp                                u:object_r:frp_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/mdtp                               u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/dip                                u:object_r:vendor_dip_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/storsec                            u:object_r:boot_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/persist                            u:object_r:vendor_persist_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/super                              u:object_r:super_block_device:s0
-
-#rawdump partition
-/dev/block/platform/soc/7c4000.sdhci/by-name/rawdump                            u:object_r:vendor_rawdump_block_device:s0
-
-# limits Partitions
-/dev/block/platform/soc/7c4000.sdhci/by-name/limits                             u:object_r:vendor_limits_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/limits-cdsp                        u:object_r:vendor_limits_block_device:s0
-
-# FBE
-/(vendor|system/vendor)/bin/init.qti.qseecomd.sh                                u:object_r:vendor_init-qti-fbe-sh_exec:s0
-/(vendor|system/vendor)/bin/init\.qti\.can\.sh                                  u:object_r:vendor_qti_init_shell_exec:s0
-
-##################################
-# same process HAL libs
-/vendor/lib(64)?/hw/gralloc\.lito\.so   u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/hw/vulkan\.lito\.so    u:object_r:same_process_hal_file:s0
-
-#SSR nodes
-/sys/devices/platform/soc/4080000.qcom,mss/subsys[0-9]+/name         u:object_r:vendor_sysfs_ssr:s0
-/sys/devices/platform/soc/3000000.qcom,lpass/subsys[0-9]+/name       u:object_r:vendor_sysfs_ssr:s0
-/sys/devices/platform/soc/8300000.qcom,turing/subsys[0-9]+/name      u:object_r:vendor_sysfs_ssr:s0
-/sys/devices/platform/soc/aae0000.qcom,venus/subsys[0-9]+/name       u:object_r:vendor_sysfs_ssr:s0
-/sys/devices/platform/soc/soc:qcom,ipa_fws/subsys[0-9]+/name         u:object_r:vendor_sysfs_ssr:s0
-/sys/devices/platform/soc/9800000.qcom,npu/subsys[0-9]+/name         u:object_r:vendor_sysfs_ssr:s0
-/sys/devices/platform/soc/soc:qcom,kgsl-hyp/subsys[0-9]+/name        u:object_r:vendor_sysfs_ssr:s0
-
-/sys/devices/platform/soc/4080000.qcom,mss/subsys[0-9]+/restart_level         u:object_r:vendor_sysfs_ssr_toggle:s0
-/sys/devices/platform/soc/3000000.qcom,lpass/subsys[0-9]+/restart_level       u:object_r:vendor_sysfs_ssr_toggle:s0
-/sys/devices/platform/soc/8300000.qcom,turing/subsys[0-9]+/restart_level      u:object_r:vendor_sysfs_ssr_toggle:s0
-/sys/devices/platform/soc/aae0000.qcom,venus/subsys[0-9]+/restart_level       u:object_r:vendor_sysfs_ssr_toggle:s0
-/sys/devices/platform/soc/soc:qcom,ipa_fws/subsys[0-9]+/restart_level         u:object_r:vendor_sysfs_ssr_toggle:s0
-/sys/devices/platform/soc/9800000.qcom,npu/subsys[0-9]+/restart_level         u:object_r:vendor_sysfs_ssr_toggle:s0
-/sys/devices/platform/soc/soc:qcom,kgsl-hyp/subsys[0-9]+/restart_level        u:object_r:vendor_sysfs_ssr_toggle:s0
-
-#FPC
-/sys/devices/platform/soc/soc:fpc1020(/.*?) u:object_r:vendor_sysfs_fps_attr:s0
-/sys/devices/platform/soc/200f000.qcom,spmi/spmi-0/spmi0-03/200f000.qcom,spmi:qcom,pmi632@3:qcom,leds@d000/modalias u:object_r:vendor_sysfs_fps_attr:s0
-/(vendor|system/vendor)/bin/hw/android\.hardware\.biometrics\.fingerprint@2\.1-service-fpc u:object_r:vendor_hal_fingerprint_fpc_exec:s0
-
-/sys/devices/platform/soc/780000.qfprom/qfprom0/feat_conf10             u:object_r:vendor_sysfs_qfprom:s0
-
-/vendor/bin/embmsslServer       u:object_r:vendor_hal_embmssl_qti_exec:s0
diff --git a/generic/vendor/lito/genfs_contexts b/generic/vendor/lito/genfs_contexts
deleted file mode 100644
index a6f2f09..0000000
--- a/generic/vendor/lito/genfs_contexts
+++ /dev/null
@@ -1,83 +0,0 @@
-# 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.
-
-# Power supply device nodes
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm7250b@2:qcom,qpnp-smb5/power_supply/battery u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm7250b@2:qcom,qpnp-smb5/power_supply/dc u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm7250b@2:qcom,qpnp-smb5/power_supply/main u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm7250b@2:qpnp,qg/power_supply/bms u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm7250b@2:qcom,qpnp-smb5/power_supply/pc_port u:object_r:vendor_sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm7250b@2:qcom,qpnp-smb5/power_supply/usb u:object_r:vendor_sysfs_usb_supply:s0
-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:vendor_sysfs_usbpd_device:s0
-genfscon sysfs /class/qcom-battery u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/98c000.i2c/i2c-2/2-000c/98c000.i2c:qcom,smb1355@c:qcom,smb1355-charger@1000/power_supply/parallel u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/98c000.i2c/i2c-2/2-0010/98c000.i2c:qcom,smb1390@10:qcom,charge_pump/power_supply/charge_pump_master u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/98c000.i2c/i2c-2/2-0018/98c000.i2c:qcom,smb1390_slave@18:qcom,charge_pump_slave/power_supply/cp_slave u:object_r:vendor_sysfs_battery_supply:s0
-
-#qdss sysfs-node
-genfscon sysfs /devices/platform/soc/6b05000.tmc/coresight-tmc-etf u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/6048000.tmc/coresight-tmc-etr u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/6002000.stm/coresight-stm u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/soc:hwevent/coresight-hwevent u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/6b0c000.csr/coresight-swao-csr u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/soc:dummy_source/coresight-modem-diag u:object_r:vendor_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
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm8150l@5:qcom,leds@d000/leds/red u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm8150l@5:qcom,leds@d000/leds/green u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm8150l@5:qcom,leds@d000/leds/blue u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm8150l@5:qcom,leds@d300/leds u:object_r:sysfs_leds:s0
-
-# DCVS nodes
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu-cpu-llcc-bw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu-llcc-ddr-bw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,npu-npu-llcc-bw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,npu-llcc-ddr-bw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,npudsp-npu-ddr-bw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/18321000.qcom,devfreq-l3/18321000.qcom,devfreq-l3:qcom,cpu0-cpu-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/18321000.qcom,devfreq-l3/18321000.qcom,devfreq-l3:qcom,cpu6-cpu-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/18321000.qcom,devfreq-l3/18321000.qcom,devfreq-l3:qcom,cpu7-cpu-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/18321000.qcom,devfreq-l3/18321000.qcom,devfreq-l3:qcom,cdsp-cdsp-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu0-cpu-llcc-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu6-cpu-llcc-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu0-llcc-ddr-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu6-llcc-ddr-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu0-cpu-ddr-latfloor/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu6-cpu-ddr-latfloor/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu7-cpu-ddr-latfloor/devfreq u:object_r:vendor_sysfs_devfreq:s0
-
-#net sysfs
-genfscon sysfs /devices/platform/soc/18800000.qcom,icnss/net u:object_r:sysfs_net:s0
-
-#fps sysfs-node
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-1/measured_fps u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-0/measured_fps u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-1/fps_periodicity_ms u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-0/fps_periodicity_ms u:object_r:vendor_sysfs_graphics:s0
-
diff --git a/generic/vendor/lito/hal_fingerprint_fpc.te b/generic/vendor/lito/hal_fingerprint_fpc.te
deleted file mode 100644
index 5076262..0000000
--- a/generic/vendor/lito/hal_fingerprint_fpc.te
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_hal_fingerprint_fpc, domain;
-hal_server_domain(vendor_hal_fingerprint_fpc, hal_fingerprint)
-
-type vendor_hal_fingerprint_fpc_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_hal_fingerprint_fpc)
-
-allow vendor_hal_fingerprint_fpc input_device:chr_file r_file_perms;
-allow vendor_hal_fingerprint_fpc tee_device:chr_file rw_file_perms;
diff --git a/generic/vendor/lito/hal_perf_default.te b/generic/vendor/lito/hal_perf_default.te
deleted file mode 100644
index cb232af..0000000
--- a/generic/vendor/lito/hal_perf_default.te
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (c) 2020, 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.
-
-allow vendor_hal_perf_default self:capability kill;
-allow vendor_hal_perf_default {appdomain}:process sigkill;
-
diff --git a/generic/vendor/lito/init-qti-fbe-sh.te b/generic/vendor/lito/init-qti-fbe-sh.te
deleted file mode 100644
index ee17f17..0000000
--- a/generic/vendor/lito/init-qti-fbe-sh.te
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_init-qti-fbe-sh, domain;
-type vendor_init-qti-fbe-sh_exec, exec_type, file_type, vendor_file_type;
-
-init_daemon_domain(vendor_init-qti-fbe-sh)
-
-allow vendor_init-qti-fbe-sh vendor_shell_exec:file rx_file_perms;
-
-# execute toybox/toolbox
-allow vendor_init-qti-fbe-sh vendor_toolbox_exec:file rx_file_perms;
-get_prop(vendor_init-qti-fbe-sh, vendor_tee_listener_prop)
diff --git a/generic/vendor/lito/init.te b/generic/vendor/lito/init.te
deleted file mode 100644
index c93ee98..0000000
--- a/generic/vendor/lito/init.te
+++ /dev/null
@@ -1,42 +0,0 @@
-# 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.
-
-# Allow init to read/write/ioctl for mounting overlayfs
-# with kernel 4.19.  At the point of overlayfs mount
-# SELinux is initialized but labels tmpfs has not yet
-# been relabeled.
-#
-# This is only used for userdebug/eng in adb remount
-# scenario
-#
-# Temporary change
-userdebug_or_eng(`
-  allow init tmpfs:blk_file { ioctl read write open getattr };
-')
-
-allow init firmware_file:filesystem getattr;
-allow init bt_firmware_file:filesystem getattr;
diff --git a/generic/vendor/msmnile/device.te b/generic/vendor/msmnile/device.te
deleted file mode 100644
index 8ad057c..0000000
--- a/generic/vendor/msmnile/device.te
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright (c) 2018, 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.
-
-#logdump partition
-type vendor_logdump_partition, dev_type;
-type vendor_mba_debug_dev, dev_type;
-type vendor_dip_device, dev_type;
-type vendor_rawdump_block_device, dev_type;
diff --git a/generic/vendor/msmnile/file.te b/generic/vendor/msmnile/file.te
deleted file mode 100644
index 0c5f011..0000000
--- a/generic/vendor/msmnile/file.te
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright (c) 2018, 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.
-
diff --git a/generic/vendor/msmnile/file_contexts b/generic/vendor/msmnile/file_contexts
deleted file mode 100644
index 41e3d1f..0000000
--- a/generic/vendor/msmnile/file_contexts
+++ /dev/null
@@ -1,105 +0,0 @@
-# Copyright (c) 2016-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.
-###################################
-# Dev block nodes
-
-# UFS Devices
-/dev/block/platform/soc/1d84000.ufshc/by-name/system                u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vendor                u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/product               u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/odm                   u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/metadata              u:object_r:metadata_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/userdata              u:object_r:userdata_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/boot                  u:object_r:boot_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/logdump               u:object_r:vendor_logdump_partition:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/fsc                   u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/fsg                   u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modemst1              u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modemst2              u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/ssd                   u:object_r:vendor_ssd_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/misc                  u:object_r:misc_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/rpm                   u:object_r:vendor_rpmb_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/msadp                 u:object_r:vendor_mba_debug_dev:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/recovery              u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cache                 u:object_r:cache_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/frp                   u:object_r:frp_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtp                  u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/dip                   u:object_r:vendor_dip_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdm1m9kefs1           u:object_r:vendor_efs_boot_dev:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdm1m9kefs2           u:object_r:vendor_efs_boot_dev:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdm1m9kefs3           u:object_r:vendor_efs_boot_dev:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdmddr                u:object_r:vendor_efs_boot_dev:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/super                 u:object_r:super_block_device:s0
-
-#rawdump partition
-/dev/block/platform/soc/1d84000.ufshc/by-name/rawdump               u:object_r:vendor_rawdump_block_device:s0
-
-# A/B partitions.
-/dev/block/platform/soc/1d84000.ufshc/by-name/abl_[ab]              u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/aop_[ab]              u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/apdp_[ab]             u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/bluetooth_[ab]        u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/boot_[ab]             u:object_r:boot_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cmnlib_[ab]           u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cmnlib64_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/devcfg_[ab]           u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/dsp_[ab]              u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/dtbo_[ab]             u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/hyp_[ab]              u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/keymaster_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtp_[ab]             u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtpsecapp_[ab]       u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modem_[ab]            u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/msadp_[ab]            u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/persist               u:object_r:vendor_persist_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/pmic_[ab]             u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/qupfw_[ab]            u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/rpm_[ab]              u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/system_[ab]           u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/tz_[ab]               u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vbmeta_[ab]           u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/recovery_[ab]         u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vbmeta_system_[ab]    u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vbmeta_product_[ab]   u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vendor_[ab]           u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/product_[ab]          u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/odm_[ab]              u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/xbl_[ab]              u:object_r:vendor_xbl_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/uefisecapp_[ab]       u:object_r:vendor_uefi_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/xbl_config_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/imagefv_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/multiimgoem_[ab]      u:object_r:vendor_custom_ab_block_device:s0
-
-# Block device holding the GPT, where the A/B attributes are stored.
-/dev/block/platform/soc/1d84000.ufshc/sd[ade]                       u:object_r:vendor_gpt_block_device:s0
-
-# Block devices for the drive that holds the xbl_a and xbl_b partitions.
-/dev/block/platform/soc/1d84000.ufshc/sd[bc]                        u:object_r:vendor_xbl_block_device:s0
-
-# Same process file
-/vendor/lib(64)?/hw/gralloc\.msmnile\.so                            u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/hw/vulkan\.msmnile\.so                             u:object_r:same_process_hal_file:s0
diff --git a/generic/vendor/msmnile/genfs_contexts b/generic/vendor/msmnile/genfs_contexts
deleted file mode 100644
index d9e920b..0000000
--- a/generic/vendor/msmnile/genfs_contexts
+++ /dev/null
@@ -1,128 +0,0 @@
-# Copyright (c) 2018, 2020, 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.
-
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm8150b@2:qcom,qpnp-smb5/power_supply/battery u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm8150b@2:qcom,qpnp-smb5/power_supply/dc u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm8150b@2:qcom,qpnp-smb5/power_supply/main u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm8150b@2:qcom,qpnp-smb5/power_supply/pc_port u:object_r:vendor_sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm8150b@2:qcom,qpnp-smb5/power_supply/usb u:object_r:vendor_sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pm8150b@2:qpnp,fg/power_supply/bms u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/890000.i2c/i2c-0/0-0008/890000.i2c:qcom,smb1355@8:qcom,smb1355-charger@1000/power_supply/parallel u:object_r:vendor_sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/890000.i2c/i2c-0/0-000c/890000.i2c:qcom,smb1355@c:qcom,smb1355-charger@1000/power_supply/parallel u:object_r:vendor_sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/890000.i2c/i2c-0/0-0010/890000.i2c:qcom,smb1390@10:qcom,charge_pump/power_supply/charge_pump u:object_r:vendor_sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/890000.i2c/i2c-0/2-0018/890000.i2c:qcom,smb1390_slave@18:qcom,charge_pump_slave/power_supply/cp_slave u:object_r:vendor_sysfs_usb_supply:s0
-genfscon sysfs /class/qcom-battery u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /class/charge_pump u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm8150l@5:qcom,leds@d000/leds/red u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm8150l@5:qcom,leds@d000/leds/green u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm8150l@5:qcom,leds@d000/leds/blue u:object_r:vendor_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_led1 u:object_r:vendor_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:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu-cpu-llcc-bw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu-llcc-ddr-bw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu0-cpu-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cdsp-cdsp-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu0-cpu-llcc-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu0-llcc-ddr-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu4-cpu-ddr-latfloor/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu4-cpu-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu7-cpu-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu4-cpu-llcc-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu4-llcc-ddr-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,npu-npu-ddr-bw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/a600000.ssusb/a600000.dwc3/udc/a600000.dwc3 u:object_r:vendor_sysfs_usb_controller:s0
-
-#qdss sysfs-node
-genfscon sysfs /devices/platform/soc/6047000.tmc/coresight-tmc-etf u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/6048000.tmc/coresight-tmc-etr u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/6002000.stm/coresight-stm u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/91866f0.hwevent/coresight-hwevent u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/6b0e000.csr/coresight-swao-csr u:object_r:vendor_sysfs_qdss_dev:s0
-
-#fps sysfs-node
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-0/measured_fps u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-1/measured_fps u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-2/measured_fps u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-0/fps_periodicity_ms u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-1/fps_periodicity_ms u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-2/fps_periodicity_ms u:object_r:vendor_sysfs_graphics:s0
-
-# subsys nodes
-genfscon sysfs /devices/platform/soc/4080000.qcom,mss/subsys0/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/17300000.qcom,lpass/subsys1/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/5c00000.qcom,ssc/subsys2/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/188101c.qcom,spss/subsys3/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/9800000.qcom,npu/subsys4/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/8300000.qcom,turing/subsys5/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/aae0000.qcom,venus/subsys6/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,ipa_fws/subsys7/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-hyp/subsys8/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,wil6210/subsys9/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,ipa_uc/subsys9/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,mdm3/subsys9/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,mdm3/subsys10/name u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:bt_qca6174/extldo u:object_r:sysfs_bluetooth_writable:s0
-genfscon sysfs /devices/platform/soc/soc:bt_qca6174/rfkill/rfkill0/state u:object_r:sysfs_bluetooth_writable:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,mdm3/esoc0 u:object_r:vendor_sysfs_esoc:s0
-
-#restart level
-genfscon sysfs /devices/platform/soc/4080000.qcom,mss/subsys0/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/17300000.qcom,lpass/subsys1/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/5c00000.qcom,ssc/subsys2/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/188101c.qcom,spss/subsys3/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/9800000.qcom,npu/subsys4/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/8300000.qcom,turing/subsys5/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/aae0000.qcom,venus/subsys6/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,ipa_fws/subsys7/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-hyp/subsys8/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,mdm3/subsys10/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-
-#hvdcp
-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:vendor_sysfs_usbpd_device:s0
-
-#mhi sysfs
-genfscon sysfs /bus/mhi/devices/0304_00.01.00_QMI1/mhi_uci u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /bus/mhi/devices/0306_00.01.00_QMI1/mhi_uci u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/platform/soc/1c08000.qcom,pcie/pci0001:00/0001:00:00.0/0001:01:00.0/0306_01.01.00_QMI0 u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/platform/soc/1c08000.qcom,pcie/pci0001:00/0001:00:00.0/0001:01:00.0/0306_01.01.00_QMI1 u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/0306_00.01.00/time u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/0306_01.01.00/time u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/0306_02.01.00/time u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/1101_00.01.00/time u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/1101_01.01.00/time u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/1101_02.01.00/time u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/0306_00.01.00/time_us u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/0306_01.01.00/time_us u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/0306_02.01.00/time_us u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/1101_00.01.00/time_us u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/1101_01.01.00/time_us u:object_r:vendor_sysfs_mhi:s0
-genfscon sysfs /devices/1101_02.01.00/time_us u:object_r:vendor_sysfs_mhi:s0
-
-#net sysfs
-genfscon sysfs /devices/platform/soc/1c08000.qcom,pcie/pci0001:00/0001:00:00.0/0001:01:00.0/0306_01.01.00_IP_HW0/net u:object_r:sysfs_net:s0
-#/sys/class/rtc
-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
diff --git a/generic/vendor/sdm660_64/hal_gnss_qti.te b/generic/vendor/sdm660_64/hal_gnss_qti.te
deleted file mode 100644
index b85704e..0000000
--- a/generic/vendor/sdm660_64/hal_gnss_qti.te
+++ /dev/null
@@ -1,10 +0,0 @@
-# Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
-# SPDX-License-Identifier: BSD-3-Clause-Clear
-
-# generic/vendor_hal_gnss_qti.te - generic sepolicy rules for vendor_location hidl
-
-#Allow Gnss HAL to access ril socket
-allow vendor_hal_gnss_qti vendor_rild_socket:dir search;
-unix_socket_connect(vendor_hal_gnss_qti, vendor_rild, rild)
-# allows Gnss HAL to access ssgtzd socket
-unix_socket_connect(vendor_hal_gnss_qti, vendor_ssgtzd, vendor_ssgtzd)
diff --git a/generic/vendor/sdm660_64/location.te b/generic/vendor/sdm660_64/location.te
deleted file mode 100644
index 7d1a94d..0000000
--- a/generic/vendor/sdm660_64/location.te
+++ /dev/null
@@ -1,7 +0,0 @@
-# Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
-# SPDX-License-Identifier: BSD-3-Clause-Clear
-
-# generic/vendor_location.te - sepolicy rules for generic vendor_location modules
-
-# allows location to access ssgtzd socket
-unix_socket_connect(vendor_location, vendor_ssgtzd, vendor_ssgtzd)
\ No newline at end of file
diff --git a/generic/vendor/sdm845/file_contexts b/generic/vendor/sdm845/file_contexts
deleted file mode 100644
index e85a993..0000000
--- a/generic/vendor/sdm845/file_contexts
+++ /dev/null
@@ -1,101 +0,0 @@
-# Copyright (c) 2016-2018, 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.
-###################################
-# Dev block nodes
-
-# dev block nodes
-/dev/block/platform/soc/1d84000\.ufshc/by-name/abl_[ab]        u:object_r:vendor_ab_block_device:s0
-/dev/block/platform/soc/1d84000\.ufshc/by-name/apdp_[ab]       u:object_r:vendor_ab_block_device:s0
-/dev/block/platform/soc/1d84000\.ufshc/by-name/cmnlib64_[ab]   u:object_r:vendor_ab_block_device:s0
-/dev/block/platform/soc/1d84000\.ufshc/by-name/cmnlib_[ab]     u:object_r:vendor_ab_block_device:s0
-/dev/block/platform/soc/1d84000\.ufshc/by-name/dtbo_[ab]       u:object_r:vendor_ab_block_device:s0
-/dev/block/platform/soc/1d84000\.ufshc/by-name/devcfg_[ab]     u:object_r:vendor_ab_block_device:s0
-/dev/block/platform/soc/1d84000\.ufshc/by-name/hosd_[ab]       u:object_r:vendor_ab_block_device:s0
-/dev/block/platform/soc/1d84000\.ufshc/by-name/hyp_[ab]        u:object_r:vendor_ab_block_device:s0
-/dev/block/platform/soc/1d84000\.ufshc/by-name/keymaster_[ab]  u:object_r:vendor_ab_block_device:s0
-/dev/block/platform/soc/1d84000\.ufshc/by-name/lockbooter_[ab] u:object_r:vendor_ab_block_device:s0
-/dev/block/platform/soc/1d84000\.ufshc/by-name/laf_[ab]        u:object_r:vendor_ab_block_device:s0
-/dev/block/platform/soc/1d84000\.ufshc/by-name/msadp_[ab]      u:object_r:vendor_ab_block_device:s0
-/dev/block/platform/soc/1d84000\.ufshc/by-name/pmic_[ab]       u:object_r:vendor_ab_block_device:s0
-/dev/block/platform/soc/1d84000\.ufshc/by-name/rpm_[ab]        u:object_r:vendor_ab_block_device:s0
-/dev/block/platform/soc/1d84000\.ufshc/by-name/storsec_[ab]    u:object_r:vendor_ab_block_device:s0
-/dev/block/platform/soc/1d84000\.ufshc/by-name/trusty_[ab]     u:object_r:vendor_ab_block_device:s0
-/dev/block/platform/soc/1d84000\.ufshc/by-name/tz_[ab]         u:object_r:vendor_ab_block_device:s0
-/dev/block/platform/soc/1d84000\.ufshc/by-name/vbmeta_[ab]     u:object_r:vendor_ab_block_device:s0
-/dev/block/platform/soc/1d84000\.ufshc/by-name/uefisecapp_[ab]       u:object_r:vendor_uefi_block_device:s0
-
-/dev/block/platform/soc/1d84000\.ufshc/by-name/boot_[ab]       u:object_r:boot_block_device:s0
-
-/dev/block/platform/soc/1d84000\.ufshc/by-name/metadata        u:object_r:metadata_block_device:s0
-
-/dev/block/platform/soc/1d84000\.ufshc/by-name/misc            u:object_r:misc_block_device:s0
-
-/dev/block/platform/soc/1d84000\.ufshc/by-name/frp             u:object_r:frp_block_device:s0
-
-/dev/block/platform/soc/1d84000\.ufshc/by-name/fsc             u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000\.ufshc/by-name/fsg             u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000\.ufshc/by-name/modem_[ab]      u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/1d84000\.ufshc/by-name/modemst[12]     u:object_r:vendor_modem_efs_partition_device:s0
-
-/dev/block/platform/soc/1d84000.ufshc/by-name/persist          u:object_r:vendor_persist_block_device:s0
-
-/dev/block/platform/soc/1d84000\.ufshc/by-name/ramdump         u:object_r:vendor_ramdump_block_device:s0
-
-/dev/block/platform/soc/1d84000\.ufshc/by-name/ssd             u:object_r:vendor_ssd_block_device:s0
-
-/dev/block/platform/soc/1d84000\.ufshc/by-name/system_[ab]     u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000\.ufshc/by-name/vendor_[ab]     u:object_r:system_block_device:s0
-
-/dev/block/platform/soc/1d84000\.ufshc/by-name/userdata        u:object_r:userdata_block_device:s0
-
-/dev/block/platform/soc/1d84000\.ufshc/by-name/xbl_[ab]        u:object_r:vendor_xbl_block_device:s0
-/dev/block/platform/soc/1d84000\.ufshc/by-name/xbl_config_[ab] u:object_r:vendor_custom_ab_block_device:s0
-
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtp_[ab]         u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtpsecapp_[ab]   u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/bluetooth_[ab]    u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/dsp_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/aop_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/qupfw_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/ImageFv_[ab]      u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/recovery_[ab]         u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vbmeta_system_[ab]    u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vbmeta_product_[ab]    u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/super                 u:object_r:super_block_device:s0
-
-/dev/block/platform/soc/1d84000.ufshc/sd[ade]                   u:object_r:vendor_gpt_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/sd[bc]                    u:object_r:vendor_xbl_block_device:s0
-
-
-/vendor/lib(64)?/hw/gralloc\.sdm845\.so    u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/hw/vulkan\.sdm845\.so     u:object_r:same_process_hal_file:s0
-/(vendor|system/vendor)/bin/hdcp_srm       u:object_r:vendor_hdcp_srm_exec:s0
-
-# FBE
-/(vendor|system/vendor)/bin/init.qti.qseecomd.sh    u:object_r:vendor_init-qti-fbe-sh_exec:s0
-
-/sys/devices/platform/soc/17d41000.qcom,cpucc/17d41000.qcom,cpucc:qcom,wil6210/subsys8/name u:object_r:vendor_sysfs_ssr:s0
diff --git a/generic/vendor/test/diag-router.te b/generic/vendor/test/diag-router.te
deleted file mode 100644
index 991bded..0000000
--- a/generic/vendor/test/diag-router.te
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright (c) 2020, 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.
-
-userdebug_or_eng(`
-  type vendor_diag-router, domain;
-  type vendor_diag-router_exec, exec_type, vendor_file_type, file_type;
-  init_daemon_domain(vendor_diag-router)
-  hal_server_domain(vendor_diag-router, vendor_hal_diaghal)
-  hal_client_domain(vendor_diag-router, hal_allocator)
-  binder_call(vendor_hal_diaghal_client, vendor_hal_diaghal_server)
-  binder_call(vendor_hal_diaghal_server, vendor_hal_diaghal_client)
-# Add hwservice related rules
-  hal_attribute_hwservice(vendor_hal_diaghal, vendor_hal_diaghal_hwservice)
-  allow vendor_diag-router functionfs:dir r_dir_perms;
-  allow vendor_diag-router functionfs:file rw_file_perms;
-  allowxperm vendor_diag-router functionfs:file ioctl FUNCTIONFS_ENDPOINT_DESC;
-  allow vendor_diag-router self:qipcrtr_socket create_socket_perms_no_ioctl;
-  allow vendor_diag-router vendor_mhi_diag_device:chr_file rw_file_perms;
-  allow vendor_diag-router self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl;
-  allow vendor_diag-router self:capability kill;
-  allow vendor_diag-router su:process signal;
-  allow { domain -coredomain -hal_configstore -vendor_init} vendor_diag-router:unix_stream_socket connectto;
-')
diff --git a/generic/vendor/test/diag_test.te b/generic/vendor/test/diag_test.te
deleted file mode 100644
index a9accf6..0000000
--- a/generic/vendor/test/diag_test.te
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_diagdciclient_exec, exec_type, vendor_file_type, file_type;
-userdebug_or_eng(`
-  type vendor_diag_test, domain;
-  domain_auto_trans(shell, vendor_diagdciclient_exec, vendor_diag_test)
-  #domain_auto_trans(adbd, vendor_diagdciclient_exec, vendor_diag_test)
-  allow vendor_diag_test devpts:chr_file getattr;
-  allow vendor_diag_test devpts:chr_file {ioctl read write open};
-')
-
diff --git a/generic/vendor/test/domain.te b/generic/vendor/test/domain.te
deleted file mode 100644
index ee8e842..0000000
--- a/generic/vendor/test/domain.te
+++ /dev/null
@@ -1,47 +0,0 @@
-# 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.
-
-dontaudit {
-    coredomain
-    appdomain
-} vendor_gles_data_file:dir search;
-
-dontaudit {
-    coredomain
-    appdomain
-} vendor_gles_data_file:file *;
-#allow all gpu clients to access configuration settings
-userdebug_or_eng(`
-allow domain vendor_sysfs_kgsl:dir search;
-r_dir_file({domain - isolated_app}, vendor_sysfs_kgsl_snapshot);
-allow domain coredump_file:dir create_dir_perms;
-allow domain coredump_file:file create_file_perms;
-allow domain coredump_file:dir rw_dir_perms;
-r_dir_file({domain - coredomain - hal_configstore_default}, vendor_gles_data_file);
-allow {domain - coredomain - hal_configstore_default} vendor_gles_data_file:dir create_dir_perms;
-allow {domain - coredomain - hal_configstore_default} vendor_gles_data_file:file create_file_perms;
-')
diff --git a/generic/vendor/test/energyawareness.te b/generic/vendor/test/energyawareness.te
deleted file mode 100644
index 3db9e62..0000000
--- a/generic/vendor/test/energyawareness.te
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) 2017, 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.
diff --git a/generic/vendor/test/fidotest.te b/generic/vendor/test/fidotest.te
deleted file mode 100644
index cfd617a..0000000
--- a/generic/vendor/test/fidotest.te
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_fidotest, domain;
-type vendor_fidotest_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_fidotest)
-userdebug_or_eng(`
-
-  #Allow apps to interact with fido test daemons
-  binder_call(vendor_fidotest, platform_app)
-  binder_call(platform_app, vendor_fidotest)
-  binder_call(vendor_fidotest, system_app)
-  binder_call(system_app, vendor_fidotest)
-
-  #Allow fido test daemons to be registered with service manager
-  #TODO(b/142498985): Review sepolicy neverallow violation
-  #allow vendor_fidotest fidotest_service:service_manager add;
-
-  # Allow communication with init over property server
-  unix_socket_connect(vendor_fidotest, property, init);
-
-  # Allow access to tee device
-  allow vendor_fidotest tee_device:chr_file rw_file_perms;
-
-  # Allow access to firmware
-  allow vendor_fidotest firmware_file:dir r_dir_perms;
-  allow vendor_fidotest firmware_file:file r_file_perms;
-
-')
diff --git a/generic/vendor/test/file.te b/generic/vendor/test/file.te
deleted file mode 100644
index fe87991..0000000
--- a/generic/vendor/test/file.te
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright (c) 2018-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.
-
-# kgsl snapshot file type for sysfs access
-type vendor_sysfs_kgsl_snapshot, sysfs_type, fs_type;
-
-# path to debugfs. use this only in debug builds
-type vendor_qti_debugfs, fs_type, debugfs_type;
-
-# path to display related debugfs. use this only in debug builds
-type vendor_qti_display_debugfs, fs_type, debugfs_type;
-
-# sensors data file type for script access by test apps
-type vendor_sensors_data_file, file_type, data_file_type, core_data_file_type;
-
-type vendor_gles_data_file, file_type, data_file_type;
-
-type vendor_ts_loopback_data_file, file_type, data_file_type;
-
-typeattribute vendor_sensors_vendor_data_file mlstrustedobject;
diff --git a/generic/vendor/test/file_contexts b/generic/vendor/test/file_contexts
deleted file mode 100644
index 90ff14c..0000000
--- a/generic/vendor/test/file_contexts
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright (c) 2018, 2020 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.
-
-/(vendor|system/vendor)/bin/kernel-tests/smd.* u:object_r:vendor_smd_test_exec:s0
-/(vendor|system/vendor)/bin/qmi-framework-tests/qmi_ping.*      u:object_r:vendor_qmi_ping_exec:s0
-/(vendor|system/vendor)/bin/qmi-framework-tests/qmi_test.*      u:object_r:vendor_qmi_test_service_exec:s0
-
-/(vendor|system/vendor)/bin/diag_dci_client      u:object_r:vendor_diagdciclient_exec:s0
-/vendor/bin/diag-router         u:object_r:vendor_diag-router_exec:s0
-/(vendor|system/vendor)/bin/ptt_socket_app      u:object_r:vendor_wcnss_service_exec:s0
-/(vendor|system/vendor)/bin/athdiag             u:object_r:vendor_wcnss_service_exec:s0
-/(vendor|system/vendor)/bin/cld-fwlog-netlink                   u:object_r:vendor_wcnss_service_exec:s0
-/(vendor|system/vendor)/bin/cld-fwlog-record                    u:object_r:vendor_wcnss_service_exec:s0
-/(vendor|system/vendor)/bin/cld-fwlog-parser                    u:object_r:vendor_wcnss_service_exec:s0
-/(vendor|system/vendor)/bin/cnss_diag           u:object_r:vendor_wcnss_service_exec:s0
-/(vendor|system/vendor)/bin/iwpriv                              u:object_r:vendor_wcnss_service_exec:s0
-/(vendor|system/vendor)/bin/iwconfig                            u:object_r:vendor_wcnss_service_exec:s0
-/(vendor|system/vendor)/bin/iw                                  u:object_r:vendor_wcnss_service_exec:s0
-/(vendor|system/vendor)/bin/iwlist                              u:object_r:vendor_wcnss_service_exec:s0
-/(vendor|system/vendor)/bin/iwss_test                           u:object_r:vendor_wcnss_service_exec:s0
-/(vendor|system/vendor)/bin/pktlogconf                          u:object_r:vendor_wcnss_service_exec:s0
-/(vendor|system/vendor)/bin/iperf                               u:object_r:vendor_wcnss_service_exec:s0
-/(vendor|system/vendor)/bin/mboxping                            u:object_r:vendor_wcnss_service_exec:s0
-/(vendor|system/vendor)/bin/sigma_dut                           u:object_r:vendor_wcnss_service_exec:s0
-/(vendor|system/vendor)/bin/pktlog                              u:object_r:vendor_wcnss_service_exec:s0
-/(vendor|system/vendor)/bin/hal_proxy_daemon    u:object_r:vendor_wcnss_service_exec:s0
-/(vendor|system/vendor)/bin/Wifilogger_app      u:object_r:vendor_wcnss_service_exec:s0
-/(vendor|system/vendor)/bin/hs20-osu-client                     u:object_r:vendor_wcnss_service_exec:s0
-/(vendor|system/vendor)/bin/ndc                                 u:object_r:vendor_wcnss_service_exec:s0
-/(vendor|system/vendor)/bin/playreadygtest(.*)                  u:object_r:vendor_sectest_exec:s0
-/(vendor|system/vendor)/bin/oem(.*)test                         u:object_r:vendor_sectest_exec:s0
-/(vendor|system/vendor)/bin/widevine(.*)                        u:object_r:vendor_sectest_exec:s0
-/(vendor|system/vendor)/bin/qseecom_sample_client               u:object_r:vendor_sectest_exec:s0
-/(vendor|system/vendor)/bin/isdbtmmtest                         u:object_r:vendor_sectest_exec:s0
-/(vendor|system/vendor)/bin/secure_ui_sample_client u:object_r:vendor_sectest_exec:s0
-/(vendor|system/vendor)/bin/qseecom_security_test               u:object_r:vendor_sectest_exec:s0
-/(vendor|system/vendor)/bin/qfipsverify                         u:object_r:vendor_sectest_exec:s0
-/(vendor|system/vendor)/bin/qseecom_assurance_test              u:object_r:vendor_sectest_exec:s0
-/(vendor|system/vendor)/bin/drm_generic_prov_test               u:object_r:vendor_sectest_exec:s0
-/(vendor|system/vendor)/bin/ParserApp                           u:object_r:vendor_sectest_exec:s0
-/(vendor|system/vendor)/bin/StoreKeybox         u:object_r:vendor_sectest_exec:s0
-/(vendor|system/vendor)/bin/InstallKeybox                       u:object_r:vendor_sectest_exec:s0
-
-#Authentication and FIDO
-/(vendor|system/vendor)/bin/sampleauthdaemon    u:object_r:vendor_fidotest_exec:s0
-/(vendor|system/vendor)/bin/qseeproxysampledaemon u:object_r:vendor_qseeproxysample_exec:s0
-
-#### Context for location test binaries
-/(vendor|system/vendor)/bin/lowi_test                           u:object_r:vendor_location_exec:s0
-/(vendor|system/vendor)/bin/test-version                        u:object_r:vendor_location_exec:s0
-/(vendor|system/vendor)/bin/test-pos-tx                         u:object_r:vendor_location_exec:s0
-/(vendor|system/vendor)/bin/xtwifi-upload-test                  u:object_r:vendor_location_exec:s0
-/(vendor|system/vendor)/bin/test-fake-ap                        u:object_r:vendor_location_exec:s0
-/(vendor|system/vendor)/bin/test-fdal                           u:object_r:vendor_location_exec:s0
-
-#For debug script
-/(vendor|system/vendor)/bin/init\.qti\.kernel\.debug\.sh        u:object_r:vendor_qti_init_shell_exec:s0
-
-/(vendor|system/vendor)/bin/sns.*               u:object_r:vendor_sensors_test_exec:s0
-#for testscripts support
-/(vendor|system/vendor)/bin/init\.qcom\.vendor\.testscripts\.sh u:object_r:vendor-qti-testscripts_exec:s0
-#TODO: coredump_file need have a attribute of data_file_type and
-# is going to show compile time issue need to fix this
-#Context for GPU applications
-#/data/vendor/gpu(/.*)?				u:object_r:coredump_file:s0
-/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,kgsl-3d0/kgsl/kgsl-3d0/snapshot(/.*)? u:object_r:vendor_sysfs_kgsl_snapshot:s0
-
-# Console via JTAG - debug only
-/dev/hvc0							u:object_r:console_device:s0
-/data/vendor/gpu(/.*)? u:object_r:vendor_gles_data_file:s0
-/data/vendor/ts_loopback(/.*)?                                  u:object_r:vendor_ts_loopback_data_file:s0
diff --git a/generic/vendor/test/genfs_contexts b/generic/vendor/test/genfs_contexts
deleted file mode 100644
index 56816f6..0000000
--- a/generic/vendor/test/genfs_contexts
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright (c) 2018, 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.
-
-genfscon debugfs /dri/0/debug/dump u:object_r:vendor_qti_display_debugfs:s0
-genfscon debugfs /dri/0/debug/recovery_reg u:object_r:vendor_qti_display_debugfs:s0
-genfscon debugfs /dri/0/debug/recovery_dbgbus u:object_r:vendor_qti_display_debugfs:s0
-genfscon debugfs /dri/0/debug/recovery_vbif_dbgbus u:object_r:vendor_qti_display_debugfs:s0
-genfscon debugfs /dri/0/debug/recovery_dsi_dbgbus u:object_r:vendor_qti_display_debugfs:s0
diff --git a/generic/vendor/test/hwservice.te b/generic/vendor/test/hwservice.te
deleted file mode 100644
index 2059168..0000000
--- a/generic/vendor/test/hwservice.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2020, 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.
-
-type vendor_hal_diaghal_hwservice, hwservice_manager_type, protected_hwservice;
-
diff --git a/generic/vendor/test/hwservice_contexts b/generic/vendor/test/hwservice_contexts
deleted file mode 100644
index f26642c..0000000
--- a/generic/vendor/test/hwservice_contexts
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2020, 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.
-
-vendor.qti.diaghal::Idiag                          	     u:object_r:vendor_hal_diaghal_hwservice:s0
diff --git a/generic/vendor/test/init_shell.te b/generic/vendor/test/init_shell.te
deleted file mode 100644
index 4f55900..0000000
--- a/generic/vendor/test/init_shell.te
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (c) 2018, 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.
-
-userdebug_or_eng(`
-  allow vendor_qti_init_shell fuse:dir create_dir_perms;
-  allow vendor_qti_init_shell fuse:file create_file_perms;
-')
diff --git a/generic/vendor/test/libsochelpertest_app.te b/generic/vendor/test/libsochelpertest_app.te
deleted file mode 100644
index e12fd6a..0000000
--- a/generic/vendor/test/libsochelpertest_app.te
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (c) 2020, 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.
-
-type vendor_libsochelpertest_app, domain;
-app_domain(vendor_libsochelpertest_app);
-
-# Allow LibsocHelperTest to get_prop soc_id
-use_libsoc_helper(vendor_libsochelpertest_app);
-
-hal_client_domain(vendor_libsochelpertest_app, vendor_hal_perf);
-hal_client_domain(vendor_libsochelpertest_app, vendor_hal_qspmhal);
-binder_call(vendor_libsochelpertest_app, gpuservice);
-allow vendor_libsochelpertest_app app_api_service:service_manager find;
-allow vendor_libsochelpertest_app vendor_sysfs_kgsl_gpu_model:file r_file_perms;
diff --git a/generic/vendor/test/pdt_app.te b/generic/vendor/test/pdt_app.te
deleted file mode 100644
index d785503..0000000
--- a/generic/vendor/test/pdt_app.te
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright (c) 2017, 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.
-
-# This domain is for pdt apps and should always be in
-# userdebug_or_eng macro
-
-userdebug_or_eng(`
-type vendor_pdt_app, domain;
-app_domain(vendor_pdt_app);
-net_domain(vendor_pdt_app)
-permissive vendor_pdt_app;
-# r_dir_file(vendor_pdt_app, domain)
-dontaudit vendor_pdt_app service_manager_type:service_manager *;
-dontaudit vendor_pdt_app hwservice_manager_type:hwservice_manager *;
-dontaudit vendor_pdt_app file_type:dir_file_class_set *;
-')
diff --git a/generic/vendor/test/priv_app.te b/generic/vendor/test/priv_app.te
deleted file mode 100644
index 2fb6f2b..0000000
--- a/generic/vendor/test/priv_app.te
+++ /dev/null
@@ -1,35 +0,0 @@
-# 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.
-
-#allow priv_app clients to access configuration settings
-userdebug_or_eng(`
-allow priv_app vendor_sysfs_kgsl:dir search;
-r_dir_file(priv_app, vendor_sysfs_kgsl_snapshot);
-r_dir_file(priv_app, vendor_gles_data_file);
-allow priv_app vendor_gles_data_file:dir rw_dir_perms;
-allow priv_app vendor_gles_data_file:file rw_file_perms;
-')
diff --git a/generic/vendor/test/property.te b/generic/vendor/test/property.te
deleted file mode 100644
index 2800079..0000000
--- a/generic/vendor/test/property.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2018, 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.
-vendor_restricted_prop(vendor_sensors_dbg_prop);
-
diff --git a/generic/vendor/test/property_contexts b/generic/vendor/test/property_contexts
deleted file mode 100644
index 0d3377c..0000000
--- a/generic/vendor/test/property_contexts
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (c) 2018, 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.
-persist.vendor.debug.sensors.             u:object_r:vendor_sensors_dbg_prop:s0
-
-
-#CNE IWLAN Logging
-persist.vendor.iwlan.logging.logcat          u:object_r:vendor_cnd_prop:s0
diff --git a/generic/vendor/test/qmi_ping.te b/generic/vendor/test/qmi_ping.te
deleted file mode 100644
index 7fc4a27..0000000
--- a/generic/vendor/test/qmi_ping.te
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright (c) 2018, 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.
-#must be defined for file_contexts
-
-type vendor_qmi_ping_exec, exec_type, vendor_file_type, file_type;
-
-userdebug_or_eng(`
-  type vendor_qmi_ping, domain;
-  domain_auto_trans(shell, vendor_qmi_ping_exec, vendor_qmi_ping)
-  #test launched from pseudo terminal, so output goes there
-  allow vendor_qmi_ping devpts:chr_file {read write ioctl getattr};
-  #enable accessing the path where qmuxds named sockets are present
-  #to interface with qmuxd through unix sockets
-  #to use socket interface to ipc router
-  allow vendor_qmi_ping vendor_qmi_ping:socket {create bind read write setopt};
-  #enable running test as root user => privileged process
-  #enable privileged processes to bypass permission checks
-  allow vendor_qmi_ping vendor_qmi_ping:capability {setgid setuid fsetid};
-')
diff --git a/generic/vendor/test/qmi_test_service.te b/generic/vendor/test/qmi_test_service.te
deleted file mode 100644
index 75362db..0000000
--- a/generic/vendor/test/qmi_test_service.te
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright (c) 2018, 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.
-#must be defined for file_contexts
-
-type vendor_qmi_test_service_exec, exec_type, vendor_file_type, file_type;
-
-userdebug_or_eng(`
-  type vendor_qmi_test_service, domain;
-  domain_auto_trans(shell, vendor_qmi_test_service_exec, vendor_qmi_test_service)
-  #domain_auto_trans(adbd, vendor_qmi_test_service_exec, vendor_qmi_test_service)
-  #enable access to loader in 64 bit system
-  allow vendor_qmi_test_service shell:fd use;
-  #test is launched from pseudo terminal so output goes there
-  allow vendor_qmi_test_service devpts:chr_file {read write getattr ioctl};
-  #enable accessing the path where qmuxds named sockets are present
-  #to interface with qmuxd through unix sockets
-  #to access ipc router socket
-  allow vendor_qmi_test_service vendor_qmi_test_service:socket {create bind read write setopt};
-  #enable running test as root user => privileged process
-  #enable privileged processes to bypass permission checks
-  allow vendor_qmi_test_service vendor_qmi_test_service:capability {setgid setuid fsetid};
-')
diff --git a/generic/vendor/test/qseeproxysample.te b/generic/vendor/test/qseeproxysample.te
deleted file mode 100644
index fa1b461..0000000
--- a/generic/vendor/test/qseeproxysample.te
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright (c) 2015, 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.
-
-type vendor_qseeproxysample, domain;
-type vendor_qseeproxysample_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_qseeproxysample)
-userdebug_or_eng(`
-
-  #Allow test daemon to be registered with service manager
-  #TODO(b/142498985): Review sepolicy neverallow violation
-  #allow vendor_qseeproxysample qseeproxysample_service:service_manager add;
-
-  #Allow test daemon to use system_server via binder to check caller identity
-  binder_call(vendor_qseeproxysample, system_server)
-
-  # Allow communication with init over property server
-  unix_socket_connect(vendor_qseeproxysample, property, init);
-
-  # Allow access to tee device
-  allow vendor_qseeproxysample tee_device:chr_file rw_file_perms;
-
-  # Allow access to firmware
-  allow vendor_qseeproxysample firmware_file:dir r_dir_perms;
-  allow vendor_qseeproxysample firmware_file:file r_file_perms;
-
-')
diff --git a/generic/vendor/test/qsta_app.te b/generic/vendor/test/qsta_app.te
deleted file mode 100644
index 2963034..0000000
--- a/generic/vendor/test/qsta_app.te
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright (c) 2018, 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.
-
-## vendor_qsta_app
-##
-## This file defines the permissions that vendor_qsta_apps can carry
-
-type vendor_qsta_app, domain;
-app_domain(vendor_qsta_app)
-hal_client_domain(vendor_qsta_app, vendor_hal_perf)
-r_dir_file(vendor_qsta_app, vendor_persist_sensors_file)
-get_prop(vendor_qsta_app, vendor_sensors_prop)
-
-allow vendor_qsta_app {
-  app_api_service
-  surfaceflinger_service
-  audioserver_service
-  mediaserver_service
-  mediametrics_service
-}:service_manager find;
-
-dontaudit vendor_qsta_app gpu_service:service_manager find;
-dontaudit vendor_qsta_app gpuservice:binder call;
-dontaudit vendor_qsta_app vendor_hal_qspmhal_hwservice:hwservice_manager find;
-
-userdebug_or_eng(`
-  allow vendor_qsta_app vendor_diag_device:chr_file { read write open ioctl };
-')
-
-allow vendor_qsta_app mnt_vendor_file:dir r_dir_perms;
-allow vendor_qsta_app system_app_data_file:dir create_dir_perms;
-allow vendor_qsta_app system_app_data_file:file create_file_perms;
diff --git a/generic/vendor/test/qtidiagservices_app.te b/generic/vendor/test/qtidiagservices_app.te
deleted file mode 100644
index 8c33e11..0000000
--- a/generic/vendor/test/qtidiagservices_app.te
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright (c) 2020, 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.
-
-## qtidiagservices
-##
-## This file defines the permissions that qtidiagservices can carry
-
-userdebug_or_eng(`
-  type qtidiagservices_app, domain;
-  app_domain(qtidiagservices_app)
-
-  hal_client_domain(qtidiagservices_app, vendor_hal_diaghal)
-  hal_client_domain(qtidiagservices_app, vendor_hal_perf)
-
-  allow qtidiagservices_app app_api_service:service_manager find;
-  allow qtidiagservices_app system_app_data_file: dir create_dir_perms;
-  allow qtidiagservices_app system_app_data_file: file create_file_perms;
-
-')
-
diff --git a/generic/vendor/test/seapp_contexts b/generic/vendor/test/seapp_contexts
deleted file mode 100644
index fda7472..0000000
--- a/generic/vendor/test/seapp_contexts
+++ /dev/null
@@ -1,45 +0,0 @@
-# Copyright (c) 2015-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.
-
-#Add new domain for pdt apps
-user=system seinfo=platform name=.pdtapps domain=vendor_pdt_app type=system_app_data_file
-
-#Add new domain for usta app
-user=_app seinfo=platform name=com.qualcomm.qti.usta domain=vendor_usta_app type=app_data_file levelFrom=all
-
-#Add new domain for qsta app
-user=_app seinfo=platform name=com.qualcomm.qti.sensors.qsensortest domain=vendor_qsta_app type=app_data_file
-
-#Add new domain for ustaservice app
-# Needed for USTA test app
-user=system seinfo=platform name=com.qualcomm.qti.ustaservice domain=vendor_ustaservice_app type=system_app_data_file
-
-#Add new domain for LibsochelperTest app
-user=_app seinfo=platform name=com.qualcomm.qti.libsochelpertest domain=vendor_libsochelpertest_app type=app_data_file levelFrom=all
-
-#Add new domain for qtidiagservices app
-user=system seinfo=platform name=com.qti.diagservices domain=qtidiagservices_app type=system_app_data_file
diff --git a/generic/vendor/test/sectest.te b/generic/vendor/test/sectest.te
deleted file mode 100644
index ccfbaa4..0000000
--- a/generic/vendor/test/sectest.te
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_sectest, domain;
-type vendor_sectest_exec, exec_type, vendor_file_type, file_type;
-userdebug_or_eng(`
-  init_daemon_domain(vendor_sectest)
-  # allow vendor_sectest access to drm related paths
-  allow vendor_sectest mnt_vendor_file:dir r_dir_perms;
-  r_dir_file(vendor_sectest, vendor_persist_data_file)
-  # Write to drm related pieces of persist partition
-  allow vendor_sectest vendor_persist_drm_file:dir create_dir_perms;
-  allow vendor_sectest vendor_persist_drm_file:file create_file_perms;
-  allow vendor_sectest tee_device:chr_file rw_file_perms;
-')
diff --git a/generic/vendor/test/sensors_test.te b/generic/vendor/test/sensors_test.te
deleted file mode 100644
index 4f5bd23..0000000
--- a/generic/vendor/test/sensors_test.te
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright (c) 2018, 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.
-# Policy for sensor test binaries
-
-type vendor_sensors_test_exec, exec_type, vendor_file_type, file_type;
-
-userdebug_or_eng(`
-  type vendor_sensors_test, domain;
-
-  domain_auto_trans(shell, vendor_sensors_test_exec, vendor_sensors_test)
-  #domain_auto_trans(adbd, vendor_sensors_test_exec, vendor_sensors_test)
-
-  allow vendor_sensors_test devpts:chr_file rw_file_perms;
-  allow vendor_sensors_test vendor_sensors:unix_stream_socket connectto;
-  allow vendor_sensors_test sensors_device:chr_file rw_file_perms;
-  allow vendor_sensors_test vendor_smd_device:chr_file rw_file_perms;
-  allow vendor_sensors_test socket_device:dir r_dir_perms;
-')
diff --git a/generic/vendor/test/service.te b/generic/vendor/test/service.te
deleted file mode 100644
index 4918b3b..0000000
--- a/generic/vendor/test/service.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2015, 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.
-
-type vendor_fidotest_service,        service_manager_type;
-type vendor_qseeproxysample_service, service_manager_type;
diff --git a/generic/vendor/test/service_contexts b/generic/vendor/test/service_contexts
deleted file mode 100644
index d84a1f7..0000000
--- a/generic/vendor/test/service_contexts
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (c) 2015, 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.
-
-com.qualcomm.qti.auth.securesampleauthdaemon   u:object_r:vendor_fidotest_service:s0
-com.qualcomm.qti.qseeproxysample               u:object_r:vendor_qseeproxysample_service:s0
-
diff --git a/generic/vendor/test/smd_test.te b/generic/vendor/test/smd_test.te
deleted file mode 100644
index 3a79bcc..0000000
--- a/generic/vendor/test/smd_test.te
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright (c) 2018, 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.
-
-#must be defined for file_contexts
-type vendor_smd_test_exec, exec_type, vendor_file_type, file_type;
-
-userdebug_or_eng(`
-  type vendor_smd_test, domain;
-  domain_auto_trans(shell, vendor_smd_test_exec, vendor_smd_test)
-  #domain_auto_trans(adbd, vendor_smd_test_exec, vendor_smd_test)
-  #SMD device node and test file contexts
-  allow vendor_smd_test vendor_smd_device:chr_file {ioctl read write open getattr append};
-  #tests are launched from pseudo terminal, so output will be directed there
-  #and as such needs adequate allow rules
-  allow vendor_smd_test devpts:chr_file {ioctl read write open getattr};
-')
diff --git a/generic/vendor/test/system_app.te b/generic/vendor/test/system_app.te
deleted file mode 100644
index 55d4ecf..0000000
--- a/generic/vendor/test/system_app.te
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright (c) 2018, 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.
-
-#============= system_app ==============
-userdebug_or_eng(`
-  # Rules for QSensors Test Application
-  allow system_app sensors_device:chr_file getattr;
-  allow system_app socket_device:dir read;
-
-  allow system_app self:socket create_socket_perms_no_ioctl;
-')
-
-userdebug_or_eng(`
-  # allow system_app access diag hal
-  diag_use(system_app)
-  hal_client_domain(system_app, vendor_hal_diaghal)
-  hal_client_domain(system_app, hal_allocator)
-')
diff --git a/generic/vendor/test/trustedui_test.te b/generic/vendor/test/trustedui_test.te
deleted file mode 100644
index 7c00b02..0000000
--- a/generic/vendor/test/trustedui_test.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2020, 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.
-
-allow vendor_hal_trustedui_qti vendor_ts_loopback_data_file:dir r_dir_perms;
-allow vendor_hal_trustedui_qti vendor_ts_loopback_data_file:file rw_file_perms;
diff --git a/generic/vendor/test/untrusted_app.te b/generic/vendor/test/untrusted_app.te
deleted file mode 100644
index 00af37c..0000000
--- a/generic/vendor/test/untrusted_app.te
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright (c) 2019-2020, 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.
-
-#allow untrusted_app clients to access configuration settings
-userdebug_or_eng(`
-allow untrusted_app vendor_sysfs_kgsl:dir search;
-dontaudit {
-    untrusted_app
-} vendor_sysfs_kgsl:dir read;
-r_dir_file(untrusted_app, vendor_sysfs_kgsl_snapshot);
-r_dir_file(untrusted_app, vendor_gles_data_file);
-allow untrusted_app vendor_gles_data_file:dir rw_dir_perms;
-allow untrusted_app vendor_gles_data_file:file rw_file_perms;
-')
-
-# allow app to be a client of DSP HAL
-hal_client_domain(untrusted_app, vendor_hal_dspmanager)
diff --git a/generic/vendor/test/untrusted_app_25.te b/generic/vendor/test/untrusted_app_25.te
deleted file mode 100644
index 229cf77..0000000
--- a/generic/vendor/test/untrusted_app_25.te
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (c) 2019-2020, 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.
-
-#allow untrusted_app_25 clients to access configuration settings
-userdebug_or_eng(`
-allow untrusted_app_25 vendor_sysfs_kgsl:dir search;
-r_dir_file(untrusted_app_25, vendor_sysfs_kgsl_snapshot);
-r_dir_file(untrusted_app_25, vendor_gles_data_file);
-allow untrusted_app_25 vendor_gles_data_file:dir rw_dir_perms;
-allow untrusted_app_25 vendor_gles_data_file:file rw_file_perms;
-')
-
-# allow app to be a client of DSP HAL
-hal_client_domain(untrusted_app_25, vendor_hal_dspmanager)
diff --git a/generic/vendor/test/untrusted_app_27.te b/generic/vendor/test/untrusted_app_27.te
deleted file mode 100644
index 4971159..0000000
--- a/generic/vendor/test/untrusted_app_27.te
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright (c) 2019-2020, 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.
-
-#allow untrusted_app_27 clients to access configuration settings
-userdebug_or_eng(`
-allow untrusted_app_27 vendor_sysfs_kgsl:dir search;
-dontaudit untrusted_app_27 vendor_sysfs_kgsl:dir read;
-dontaudit untrusted_app_27 vendor_sysfs_kgsl:file read;
-r_dir_file(untrusted_app_27, vendor_sysfs_kgsl_snapshot);
-r_dir_file(untrusted_app_27, vendor_gles_data_file);
-allow untrusted_app_27 vendor_gles_data_file:dir rw_dir_perms;
-allow untrusted_app_27 vendor_gles_data_file:file rw_file_perms;
-')
-
-# allow app to be a client of DSP HAL
-hal_client_domain(untrusted_app_27, vendor_hal_dspmanager)
diff --git a/generic/vendor/test/untrusted_app_29.te b/generic/vendor/test/untrusted_app_29.te
deleted file mode 100644
index 7a7a5b1..0000000
--- a/generic/vendor/test/untrusted_app_29.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2020, 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.
-
-# allow app to be a client of DSP HAL
-hal_client_domain(untrusted_app_29, vendor_hal_dspmanager)
\ No newline at end of file
diff --git a/generic/vendor/test/usta_app.te b/generic/vendor/test/usta_app.te
deleted file mode 100644
index 5455839..0000000
--- a/generic/vendor/test/usta_app.te
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copyright (c) 2018, 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.
-
-## vendor_usta_app
-##
-## This file defines the permissions that vendor_usta_apps can carry
-
-type vendor_usta_app, domain, mlstrustedsubject;
-
-app_domain(vendor_usta_app)
-hal_client_domain(vendor_usta_app, vendor_hal_perf)
-get_prop(vendor_usta_app, vendor_sensors_prop)
-
-#allow only vendor_usta_app with userdebug to access ioctl
-userdebug_or_eng(`
-  diag_use(vendor_usta_app)
-  get_prop(vendor_usta_app, vendor_sensors_dbg_prop)
-  allowxperm vendor_usta_app self:{ socket qipcrtr_socket } ioctl msm_sock_ipc_ioctls;
-  allow vendor_usta_app self:{ socket qipcrtr_socket } create_socket_perms;
-  allow vendor_usta_app vendor_xdsp_device:chr_file r_file_perms;
-')
-
-allow vendor_usta_app {
-  app_api_service
-  surfaceflinger_service
-}:service_manager find;
-
-allow vendor_usta_app system_app_data_file:dir create_dir_perms;
-allow vendor_usta_app system_app_data_file:file create_file_perms;
-
-allow vendor_usta_app vendor_sensors_vendor_data_file:dir create_dir_perms;
-allow vendor_usta_app vendor_sensors_vendor_data_file:file create_file_perms;
-
-dontaudit vendor_usta_app system_data_file:file open;
-allow vendor_usta_app cgroup:file w_file_perms;
-
-dontaudit vendor_usta_app vendor_hal_qspmhal_hwservice:hwservice_manager find;
-dontaudit vendor_usta_app gpuservice:binder call;
-userdebug_or_eng(`
-  dontaudit vendor_usta_app vendor_diag-router:unix_stream_socket connectto;
-')
diff --git a/generic/vendor/test/ustaservice_app.te b/generic/vendor/test/ustaservice_app.te
deleted file mode 100644
index 63d706a..0000000
--- a/generic/vendor/test/ustaservice_app.te
+++ /dev/null
@@ -1,51 +0,0 @@
-# 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.
-type vendor_ustaservice_app, domain;
-app_domain(vendor_ustaservice_app)
-
-#TODO(b/142498985): Review sepolicy neverallow violation
-#allow vendor_ustaservice_app vendor_usta_app_service:service_manager add;
-allow vendor_ustaservice_app vendor_usta_app_service:service_manager find;
-allow vendor_ustaservice_app activity_service:service_manager find;
-allow vendor_ustaservice_app app_api_service:service_manager find;
-
-userdebug_or_eng(`
-  allowxperm vendor_ustaservice_app self:{ socket qipcrtr_socket } ioctl msm_sock_ipc_ioctls;
-  allow vendor_ustaservice_app self:{ socket qipcrtr_socket } create_socket_perms;
-  allow vendor_ustaservice_app vendor_xdsp_device:chr_file r_file_perms;
-  allow vendor_ustaservice_app vendor_ssr_device:chr_file r_file_perms;
-')
-
-hwbinder_use(vendor_ustaservice_app)
-
-userdebug_or_eng(`
-   diag_use(vendor_ustaservice_app)
-')
-
-allow vendor_ustaservice_app system_app_data_file:dir create_dir_perms;
-allow vendor_ustaservice_app system_app_data_file:file create_file_perms;
-allow vendor_ustaservice_app cgroup:file w_file_perms;
diff --git a/generic/vendor/test/vendor-qti-testscripts.te b/generic/vendor/test/vendor-qti-testscripts.te
deleted file mode 100644
index 5336c89..0000000
--- a/generic/vendor/test/vendor-qti-testscripts.te
+++ /dev/null
@@ -1,84 +0,0 @@
-# Copyright (c) 2017, 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.
-
-userdebug_or_eng(`
-  type vendor-qti-testscripts, domain, mlstrustedsubject;
-  type vendor-qti-testscripts_exec, exec_type, file_type, vendor_file_type;
-  permissive vendor-qti-testscripts;
-
-  domain_trans(init, vendor_shell_exec, vendor-qti-testscripts)
-
-  #super_user - start
-  # Add vendor-qti-testscripts to various domains
-  net_domain(vendor-qti-testscripts)
-  #app_domain(vendor-qti-testscripts)
-
-  dontaudit vendor-qti-testscripts self:capability_class_set *;
-  dontaudit vendor-qti-testscripts kernel:security *;
-  dontaudit vendor-qti-testscripts kernel:system *;
-  dontaudit vendor-qti-testscripts self:memprotect *;
-  dontaudit vendor-qti-testscripts domain:process *;
-  dontaudit vendor-qti-testscripts domain:fd *;
-  dontaudit vendor-qti-testscripts domain:dir *;
-  dontaudit vendor-qti-testscripts domain:lnk_file *;
-  dontaudit vendor-qti-testscripts domain:{ fifo_file file } *;
-  dontaudit vendor-qti-testscripts domain:socket_class_set *;
-  dontaudit vendor-qti-testscripts domain:ipc_class_set *;
-  dontaudit vendor-qti-testscripts domain:key *;
-  dontaudit vendor-qti-testscripts fs_type:filesystem *;
-  dontaudit vendor-qti-testscripts {fs_type dev_type file_type}:dir_file_class_set *;
-  dontaudit vendor-qti-testscripts node_type:node *;
-  dontaudit vendor-qti-testscripts node_type:{ tcp_socket udp_socket rawip_socket } *;
-  dontaudit vendor-qti-testscripts netif_type:netif *;
-  dontaudit vendor-qti-testscripts port_type:socket_class_set *;
-  dontaudit vendor-qti-testscripts port_type:{ tcp_socket dccp_socket } *;
-  dontaudit vendor-qti-testscripts domain:peer *;
-  dontaudit vendor-qti-testscripts domain:binder *;
-  dontaudit vendor-qti-testscripts property_type:property_service *;
-  dontaudit vendor-qti-testscripts service_manager_type:service_manager *;
-  dontaudit vendor-qti-testscripts keystore:keystore_key *;
-  #dontaudit vendor-qti-testscripts domain:debuggerd *;
-  dontaudit vendor-qti-testscripts domain:drmservice *;
-  dontaudit vendor-qti-testscripts unlabeled:filesystem *;
-  #super_user - end
-
-  #Added below rule in same file to keep all debug policies
-  #under one common file.
-
-  # All domains can read proc enrty of vendor-qti-testscripts
-  # r_dir_file(domain, vendor-qti-testscripts)
-  # r_dir_file(vendor-qti-testscripts, domain)
-
- # allow adbd vendor-qti-testscripts:process dyntransition;
- # allow { domain -mediaextractor -mediacodec } vendor-qti-testscripts:unix_stream_socket connectto;
-  allow domain vendor-qti-testscripts:fd use;
-  allow { domain -app_zygote -mediaextractor -mediacodec -hal_configstore_default } vendor-qti-testscripts:unix_stream_socket { getattr getopt read write shutdown };
-  #binder_call({ domain -init -netd }, vendor-qti-testscripts)
-  allow domain vendor-qti-testscripts:fifo_file { write getattr };
-  allow domain vendor-qti-testscripts:process sigchld;
-  diag_use(radio)
-')
diff --git a/legacy/vendor/common/apexd.te b/legacy/vendor/common/apexd.te
new file mode 100644
index 0000000..6b76332
--- /dev/null
+++ b/legacy/vendor/common/apexd.te
@@ -0,0 +1,2 @@
+# Allow apexd to configure read_ahead_kb
+allow apexd sysfs_mmc_host:file rw_file_perms;
diff --git a/legacy/vendor/common/audioserver.te b/legacy/vendor/common/audioserver.te
index 3e52f42..a476ef9 100644
--- a/legacy/vendor/common/audioserver.te
+++ b/legacy/vendor/common/audioserver.te
@@ -25,9 +25,11 @@
 # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-userdebug_or_eng(`
-allow audioserver qti_debugfs:dir r_dir_perms;
-allow audioserver qti_debugfs:file rw_file_perms;
+no_debugfs_restriction(`
+  userdebug_or_eng(`
+    allow audioserver qti_debugfs:dir r_dir_perms;
+    allow audioserver qti_debugfs:file rw_file_perms;
+  ')
 ')
 
 # Allow audioserver to read soundcard state under /proc/asound
diff --git a/legacy/vendor/common/bluetooth.te b/legacy/vendor/common/bluetooth.te
index d8c328a..963c11f 100644
--- a/legacy/vendor/common/bluetooth.te
+++ b/legacy/vendor/common/bluetooth.te
@@ -41,7 +41,12 @@
 #allow proc_sysrq access for crash dump
 userdebug_or_eng(`
  allow bluetooth proc_sysrq:file w_file_perms;
- allow bluetooth qti_debugfs:file r_file_perms;
+')
+
+no_debugfs_restriction(`
+  userdebug_or_eng(`
+    allow bluetooth qti_debugfs:file r_file_perms;
+  ')
 ')
 
 allow bluetooth {
diff --git a/legacy/vendor/common/cnd.te b/legacy/vendor/common/cnd.te
index 838d153..f6bd1df 100755
--- a/legacy/vendor/common/cnd.te
+++ b/legacy/vendor/common/cnd.te
@@ -78,6 +78,9 @@
 allow cnd wpa_data_file:dir w_dir_perms;
 allow cnd wpa_data_file:sock_file create_file_perms;
 
+# allow vendor_cnd to read wifi_hal_prop
+get_prop(cnd, wifi_hal_prop)
+
 # allow cnd to obtain wakelock
 wakelock_use(cnd)
 
diff --git a/legacy/vendor/common/debugfs/file.te b/legacy/vendor/common/debugfs/file.te
new file mode 100644
index 0000000..67240eb
--- /dev/null
+++ b/legacy/vendor/common/debugfs/file.te
@@ -0,0 +1,30 @@
+# 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.
+
+# path to debugfs use this whic should be only used
+# in debug builds
+type qti_debugfs, fs_type, debugfs_type;
diff --git a/legacy/vendor/common/debugfs/file_contexts b/legacy/vendor/common/debugfs/file_contexts
new file mode 100644
index 0000000..77d028d
--- /dev/null
+++ b/legacy/vendor/common/debugfs/file_contexts
@@ -0,0 +1,28 @@
+# Copyright (c) 2019-2021, 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.
+
+/sys/kernel/debug/ipc_logging(/.*)?                                 u:object_r:qti_debugfs:s0
diff --git a/legacy/vendor/common/debugfs/genfs_contexts b/legacy/vendor/common/debugfs/genfs_contexts
new file mode 100644
index 0000000..f33d4b3
--- /dev/null
+++ b/legacy/vendor/common/debugfs/genfs_contexts
@@ -0,0 +1,28 @@
+# 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.
+
+genfscon debugfs /kgsl/proc u:object_r:qti_debugfs:s0
diff --git a/legacy/vendor/common/domain.te b/legacy/vendor/common/domain.te
index c0c3bf6..ee0baa6 100644
--- a/legacy/vendor/common/domain.te
+++ b/legacy/vendor/common/domain.te
@@ -25,10 +25,10 @@
 # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-r_dir_file({domain - isolated_app - untrusted_app_all }, sysfs_socinfo);
-r_dir_file({domain - isolated_app - untrusted_app_all }, sysfs_soc);
-r_dir_file({domain - isolated_app - untrusted_app_all }, sysfs_esoc);
-r_dir_file({domain - isolated_app - untrusted_app_all }, sysfs_ssr);
+r_dir_file({domain - isolated_app_all - untrusted_app_all }, sysfs_socinfo);
+r_dir_file({domain - isolated_app_all - untrusted_app_all }, sysfs_soc);
+r_dir_file({domain - isolated_app_all - untrusted_app_all }, sysfs_esoc);
+r_dir_file({domain - isolated_app_all - untrusted_app_all }, sysfs_ssr);
 
 #Reding of standard chip details need this
 allow untrusted_app_all {
@@ -37,12 +37,12 @@
         sysfs_esoc
         sysfs_ssr
         }:dir search;
-r_dir_file({domain - isolated_app }, vendor_sysfs_public);
+r_dir_file({domain - isolated_app_all }, vendor_sysfs_public);
 
 dontaudit domain kernel:system module_request;
 
 # Allow all domains read access to sysfs_thermal
-r_dir_file({domain - isolated_app}, sysfs_thermal);
+r_dir_file({domain - isolated_app_all}, sysfs_thermal);
 
 # Allow domain to read /vendor -> /system/vendor
 allow domain system_file:lnk_file getattr;
@@ -74,9 +74,13 @@
 get_prop(domain, vendor_security_patch_level_prop)
 get_prop(domain, vendor_public_vendor_default_prop)
 
-allow domain qti_debugfs:dir search;
+no_debugfs_restriction(`
+  userdebug_or_eng(`
+    allow domain qti_debugfs:dir search;
+  ')
+')
 
 # allow all context to read sysfs_kgsl
-allow { domain - isolated_app } sysfs_kgsl:dir search;
+allow { domain - isolated_app_all } sysfs_kgsl:dir search;
 # allow all context to read gpu model
-allow { domain - isolated_app } sysfs_kgsl_gpu_model:file r_file_perms;
+allow { domain - isolated_app_all } sysfs_kgsl_gpu_model:file r_file_perms;
diff --git a/legacy/vendor/common/fidodaemon.te b/legacy/vendor/common/fidodaemon.te
index eebc14b..5939d9c 100644
--- a/legacy/vendor/common/fidodaemon.te
+++ b/legacy/vendor/common/fidodaemon.te
@@ -44,9 +44,6 @@
 #Allow fidodaemon to be registered with service manager
 #allow fidodaemon fidodaemon_service:service_manager add;
 
-#Allow communication with init over property server
-unix_socket_connect(fidodaemon, property, init);
-
 #Allow access to tee device
 allow fidodaemon tee_device:chr_file rw_file_perms;
 
diff --git a/legacy/vendor/common/file.te b/legacy/vendor/common/file.te
index 17c5230..d86ce0d 100644
--- a/legacy/vendor/common/file.te
+++ b/legacy/vendor/common/file.te
@@ -308,10 +308,6 @@
 # qcc-trd data files
 type vendor_qcc_trd_data_file, file_type, data_file_type;
 
-# path to debugfs use this whic should be only used
-# in debug builds
-type qti_debugfs, fs_type, debugfs_type;
-
 # vendor radio files
 type vendor_radio_data_file, file_type, data_file_type;
 
diff --git a/legacy/vendor/common/file_contexts b/legacy/vendor/common/file_contexts
index 322175f..22e5389 100644
--- a/legacy/vendor/common/file_contexts
+++ b/legacy/vendor/common/file_contexts
@@ -252,7 +252,7 @@
 /(vendor|system/vendor)/bin/hostapd_cli         u:object_r:hostapd_exec:s0
 /(vendor|system/vendor)/bin/adsprpcd            u:object_r:adsprpcd_exec:s0
 /(vendor|system/vendor)/bin/cdsprpcd            u:object_r:cdsprpcd_exec:s0
-/vendor/bin/dspservice                          u:object_r:vendor_dspservice_exec:s0
+/(vendor|system/vendor)/bin/dspservice          u:object_r:vendor_dspservice_exec:s0
 /(vendor|system/vendor)/bin/wpa_cli             u:object_r:wcnss_service_exec:s0
 /(vendor|system/vendor)/bin/mdm_helper          u:object_r:mdm_helper_exec:s0
 /(vendor|system/vendor)/bin/mdm_helper_proxy    u:object_r:mdm_helper_exec:s0
@@ -281,6 +281,8 @@
 /(vendor|system/vendor)/bin/hw/vendor\.qti\.gnss@.*-service u:object_r:hal_gnss_qti_exec:s0
 /(vendor|system/vendor)/bin/hw/android\.hardware\.bluetooth@1\.0-service-qti  u:object_r:hal_bluetooth_qti_exec:s0
 /(vendor|system/vendor)/bin/hw/android\.hardware\.bluetooth@1\.0-service-qti-lazy  u:object_r:hal_bluetooth_qti_exec:s0
+/(vendor|system/vendor)/bin/hw/android\.hardware\.health-service\.qti         u:object_r:hal_health_default_exec:s0
+/(vendor|system/vendor)/bin/hw/android\.hardware\.thermal@2\.0-service.qti    u:object_r:hal_thermal_default_exec:s0
 /(vendor|system/vendor)/bin/hw/vendor\.display\.color@1\.0-service            u:object_r:hal_display_color_default_exec:s0
 /(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.perf@1\.0-service       u:object_r:hal_perf_default_exec:s0
 /(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.perf@2\.[0-2]-service   u:object_r:hal_perf_default_exec:s0
@@ -337,7 +339,7 @@
 /(vendor|system/vendor)/bin/imsrcsd             u:object_r:hal_rcsservice_exec:s0
 /(vendor|system/vendor)/bin/vppservice          u:object_r:vendor_vppservice_exec:s0
 /(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.qteeconnector@1\.0-service u:object_r:hal_qteeconnector_qti_exec:s0
-/vendor/bin/hw/vendor\.qti\.hardware\.qseecom@1\.0-service                  u:object_r:hal_qseecom_default_exec:s0
+/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.qseecom@1\.0-service                  u:object_r:hal_qseecom_default_exec:s0
 /(vendor|system/vendor)/bin/fm_qsoc_patches     u:object_r:fm_qsoc_patches_exec:s0
 /(vendor|system/vendor)/bin/chre                u:object_r:chre_exec:s0
 /(vendor|system/vendor)/bin/tloc_daemon         u:object_r:tlocd_exec:s0
@@ -352,9 +354,10 @@
 /(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.qdutils_disp@1\.0-service-qti u:object_r:hal_qdutils_disp_qti_exec:s0
 /(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.sensorscalibrate@1\.0-service u:object_r:hal_sensorscalibrate_qti_default_exec:s0
 /(vendor|system/vendor)/bin/power_off_alarm        u:object_r:power_off_alarm_exec:s0
-/vendor/bin/hw/vendor\.qti\.hardware\.vibrator@1\.[0-2]-service    u:object_r:hal_vibrator_default_exec:s0
-/vendor/bin/hw/vendor\.qti\.hardware\.vibrator\.service    u:object_r:hal_vibrator_default_exec:s0
-/(vendor|system/vendor)/bin/hw/android\.hardware\.usb\.gadget@1\.0-service-qti u:object_r:hal_usb_gadget_qti_exec:s0
+/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.vibrator@1\.[0-2]-service    u:object_r:hal_vibrator_default_exec:s0
+/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.vibrator\.service    u:object_r:hal_vibrator_default_exec:s0
+/(vendor|system/vendor)/bin/hw/android\.hardware\.usb\@1\.[0-3]-service-qti    u:object_r:hal_usb_qti_exec:s0
+/(vendor|system/vendor)/bin/hw/android\.hardware\.usb\.gadget\@1\.[0-2]-service-qti    u:object_r:hal_usb_qti_exec:s0
 /(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.scve\.panorama@1\.0-service    u:object_r:vendor_scve_exec:s0
 /(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.scve\.objecttracker@1\.0-service    u:object_r:vendor_scve_exec:s0
 /(vendor|system/vendor)/bin/hdcp_srm               u:object_r:hdcp_srm_exec:s0
@@ -465,11 +468,13 @@
 /sys/devices(/platform)?/soc/[a-f0-9]+.qcom,mdss_mdp/caps           u:object_r:sysfs_graphics:s0
 /sys/devices/soc/[a-f0-9]+.qcom,mdss_mdp/bw_mode_bitmap             u:object_r:sysfs_graphics:s0
 /sys/devices(/platform)?/soc/[a-f0-9]+.qcom,mdss_mdp/bw_mode_bitmap             u:object_r:sysfs_graphics:s0
-/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,mdss_cam/video4linux/video[0-33]/name(/.*)?   u:object_r:sysfs_graphics:s0
-/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,mdss_rotator/video4linux/video[0-33]/name(/.*)?   u:object_r:sysfs_graphics:s0
+/sys/devices(/platform)?/soc/[a-z0-9]+\.qcom,fd/video4linux/video[0-9]+/name(/.*)?   u:object_r:sysfs_graphics:s0
+/sys/devices(/platform)?/soc/[a-z0-9]+\.qcom,msm-cam/video4linux/video[0-9]+/name(/.*)?   u:object_r:sysfs_graphics:s0
+/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,mdss_cam/video4linux/video[0-9]+/name(/.*)?   u:object_r:sysfs_graphics:s0
+/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,mdss_rotator/video4linux/video[0-9]+/name(/.*)?   u:object_r:sysfs_graphics:s0
 /sys/devices(/platform)?/soc/[a-f0-9]+.qcom,mdss_rotator/caps       u:object_r:sysfs_graphics:s0
-/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,vidc/video4linux/video[0-33]/name(/.*)?   u:object_r:sysfs_graphics:s0
-/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,cci/[a-z0-9]+.qcom,cci:qcom,camera@[0-2]/video4linux/video[0-33]/name(/.*)?   u:object_r:sysfs_graphics:s0
+/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,vidc/video4linux/video[0-9]+/name(/.*)?   u:object_r:sysfs_graphics:s0
+/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,cci/[a-z0-9]+.qcom,cci:qcom,camera@[0-2]/video4linux/video[0-9]+/name(/.*)?   u:object_r:sysfs_graphics:s0
 /sys/bus/platform/drivers/xhci_msm_hsic(/.*)?                       u:object_r:sysfs_hsic:s0
 /sys/devices/msm_hsic_host/host_ready                               u:object_r:sysfs_hsic_host_rdy:s0
 /sys/bus/esoc(/.*)?                                                 u:object_r:sysfs_esoc:s0
@@ -530,7 +535,6 @@
 /sys/module/vmpressure(/.*)?                                        u:object_r:sysfs_vmpressure:s0
 /sys/board_properties/virtualkeys.synaptics_dsx                     u:object_r:sysfs_virtualkeys:s0
 /sys/board_properties/virtualkeys.ft5x06_ts                         u:object_r:sysfs_virtualkeys:s0
-/sys/kernel/debug/ipc_logging(/.*)?                                 u:object_r:qti_debugfs:s0
 
 ###################################
 # data files-- only vendor paths should be added
@@ -602,7 +606,7 @@
 /mnt/vendor/persist/qti_fp(/.*)?                                    u:object_r:persist_qti_fp_file:s0
 /mnt/vendor/persist/hlos_rfs(/.*)?                                  u:object_r:persist_rfs_shared_hlos_file:s0
 /mnt/vendor/persist/display(/.*)?                                   u:object_r:persist_display_file:s0
-/mnt/vendor/persist/rfs.*                                           u:object_r:persist_rfs_file:s0
+/mnt/vendor/persist/rfs(/.*)?                                       u:object_r:persist_rfs_file:s0
 /mnt/vendor/persist/speccfg(/.*)?                                   u:object_r:regionalization_file:s0
 /mnt/vendor/persist/misc(/.*)?                                      u:object_r:persist_misc_file:s0
 /mnt/vendor/persist/bms(/.*)?                                       u:object_r:persist_bms_file:s0
@@ -614,7 +618,7 @@
 ###################################
 # etc files
 #
-/vendor/etc/hbtp/*                                                  u:object_r:hbtp_cfg_file:s0
+/(vendor|system/vendor)/etc/hbtp/*                                  u:object_r:hbtp_cfg_file:s0
 
 ###################################
 # adsp files
@@ -629,101 +633,101 @@
 ###################################
 # vendor files
 #
-/vendor/package(/.*)?                      u:object_r:vendor_carrier_file:s0
-/vendor/package(/.*)?/overlay(/.*)?        u:object_r:vendor_overlay_file:s0
-/vendor/package(/.*)?/app(/.*)?            u:object_r:vendor_app_file:s0
+/(vendor|system/vendor)/package(/.*)?                               u:object_r:vendor_carrier_file:s0
+/(vendor|system/vendor)/package(/.*)?/overlay(/.*)?                 u:object_r:vendor_overlay_file:s0
+/(vendor|system/vendor)/package(/.*)?/app(/.*)?                     u:object_r:vendor_app_file:s0
 
 #######################################
 # .so File which  needs to be shared across Treble boundary
 # are labeled as same-process HAL files
 # .so dependent chain also need to be in this list so adding this.
 #
-/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)?/vendor\.qti\.hardware\.display\.mapper@2\.0\.so   u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/vendor\.qti\.hardware\.display\.mapperextensions@1\.0\.so   u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/vendor\.qti\.hardware\.display\.mapperextensions@1\.1\.so   u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/hw/android\.hardware\.graphics\.mapper@3\.0-impl-qti-display\.so   u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/vendor\.qti\.hardware\.display\.mapper@3\.0\.so   u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/hw/android\.hardware\.graphics\.mapper@4\.0-impl-qti-display\.so   u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/vendor\.qti\.hardware\.display\.mapper@4\.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)?/libgralloc\.qti\.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
-/vendor/lib(64)?/libadreno_utils\.so       u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libgsl\.so                u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/hw/android\.hardware\.graphics\.mapper@2\.0-impl-qti-display\.so   u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/vendor\.qti\.hardware\.display\.mapper@1\.0\.so   u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/vendor\.qti\.hardware\.display\.mapper@1\.1\.so   u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/vendor\.qti\.hardware\.display\.mapper@2\.0\.so   u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/vendor\.qti\.hardware\.display\.mapperextensions@1\.0\.so   u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/vendor\.qti\.hardware\.display\.mapperextensions@1\.1\.so   u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/hw/android\.hardware\.graphics\.mapper@3\.0-impl-qti-display\.so   u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/vendor\.qti\.hardware\.display\.mapper@3\.0\.so   u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/hw/android\.hardware\.graphics\.mapper@4\.0-impl-qti-display\.so   u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/vendor\.qti\.hardware\.display\.mapper@4\.0\.so   u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libcamxexternalformatutils\.so                    u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libqdMetaData\.so         u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libgralloc\.qti\.so       u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libqservice\.so           u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libqdutils\.so            u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libadreno_utils\.so       u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libgsl\.so                u:object_r:same_process_hal_file:s0
 
-/vendor/lib(64)?/hw/vulkan\.adreno\.so     u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libEGL_adreno\.so         u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libGLESv1_CM_adreno\.so   u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libGLESv2_adreno\.so      u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/hw/vulkan\.adreno\.so     u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libEGL_adreno\.so         u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libGLESv1_CM_adreno\.so   u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libGLESv2_adreno\.so      u:object_r:same_process_hal_file:s0
 
-/vendor/lib(64)?/libdrmutils\.so           u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libdrm\.so                u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libdrmutils\.so           u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libdrm\.so                u:object_r:same_process_hal_file:s0
 
-/vendor/lib(64)?/libavenhancements\.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)?/libgralloccore\.so        u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libExtendedExtractor.so   u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libavenhancements\.so     u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libgrallocutils\.so       u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libgralloccore\.so        u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libExtendedExtractor.so   u:object_r:same_process_hal_file:s0
 
 # RenderScript dependencies.
 # To test: run cts -m CtsRenderscriptTestCases
-/vendor/lib(64)?/libRSDriver_adreno\.so     u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libCB\.so                  u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libllvm-qgl\.so            u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libbccQTI\.so              u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libllvm-qcom\.so           u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/librs_adreno\.so           u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/librs_adreno_sha1\.so      u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libqti-perfd-client\.so    u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libRSDriver_adreno\.so     u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libCB\.so                  u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libllvm-qgl\.so            u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libbccQTI\.so              u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libllvm-qcom\.so           u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/librs_adreno\.so           u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/librs_adreno_sha1\.so      u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libqti-perfd-client\.so    u:object_r:same_process_hal_file:s0
 # perf-hal client lib (included by libqti-perfd-client.so)
-/vendor/lib(64)?/vendor\.qti\.hardware\.perf@1\.0\.so    u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/vendor\.qti\.hardware\.perf@2\.0\.so    u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/vendor\.qti\.hardware\.perf@2\.1\.so    u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/vendor\.qti\.hardware\.perf@2\.2\.so    u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/vendor\.qti\.hardware\.perf@1\.0\.so    u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/vendor\.qti\.hardware\.perf@2\.0\.so    u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/vendor\.qti\.hardware\.perf@2\.1\.so    u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/vendor\.qti\.hardware\.perf@2\.2\.so    u:object_r:same_process_hal_file:s0
 
 # libGLESv2_adreno depends on this
-/vendor/lib(64)?/libllvm-glnext\.so         u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libllvm-glnext\.so         u:object_r:same_process_hal_file:s0
 
 # libOpenCL and its dependencies
-/vendor/lib(64)?/libOpenCL\.so              u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libq3dtools_adreno\.so     u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libOpenCL\.so              u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libq3dtools_adreno\.so     u:object_r:same_process_hal_file:s0
 
 # hbtp dependencies
-/vendor/lib(64)?/libhbtpitsjni\.so          u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libhbtpdbgclientjni\.so    u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libhbtpjni\.so             u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libhbtpitsjni\.so          u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libhbtpdbgclientjni\.so    u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libhbtpjni\.so             u:object_r:same_process_hal_file:s0
 
 #Loaded by native loader (zygote) for all processes
-/vendor/lib(64)?/libhalide_hexagon_host\.so u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libadsprpc\.so             u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libcdsprpc\.so             u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libsdsprpc\.so             u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/vendor.qti.hardware.dsp@1.0\.so     u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libdiag\.so                u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libtime_genoff\.so         u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libhalide_hexagon_host\.so u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libadsprpc\.so             u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libcdsprpc\.so             u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libsdsprpc\.so             u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/vendor.qti.hardware.dsp@1.0\.so     u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libdiag\.so                u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libtime_genoff\.so         u:object_r:same_process_hal_file:s0
 
 # libmmi_jni
-/vendor/lib(64)?/libmmi_jni\.so             u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libmmi_jni\.so             u:object_r:same_process_hal_file:s0
 
 # libqti_vndfwk_detect libs
-/vendor/lib(64)?/libvndfwk_detect_jni\.qti\.so        u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libqti_vndfwk_detect\.so             u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libvndfwk_detect_jni\.qti\.so        u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libqti_vndfwk_detect\.so             u:object_r:same_process_hal_file:s0
 
 # Fastcv libs
-/vendor/lib(64)?/libfastcvdsp_stub\.so      u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libfastcvadsp_stub\.so     u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/libfastcvopt\.so           u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libfastcvdsp_stub\.so      u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libfastcvadsp_stub\.so     u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libfastcvopt\.so           u:object_r:same_process_hal_file:s0
 
 # SVA files
-/vendor/lib(64)?/liblistenjni\.so           u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/liblistensoundmodel2\.so   u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/liblistenjni\.so           u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/liblistensoundmodel2\.so   u:object_r:same_process_hal_file:s0
 
 # libnpu
-/vendor/lib(64)?/libnpu\.so                 u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libnpu\.so                 u:object_r:same_process_hal_file:s0
 ###################################
 # firmware images -- Only Vendor path should be added here
 #
@@ -747,4 +751,4 @@
 #wifilearner daemon
 /(vendor|system/vendor)/bin/wifilearner    u:object_r:wifilearnersvc_exec:s0
 
-/vendor/bin/embmsslServer       u:object_r:vendor_hal_embmssl_qti_exec:s0
+/(vendor|system/vendor)/bin/embmsslServer u:object_r:vendor_hal_embmssl_qti_exec:s0
diff --git a/legacy/vendor/common/fm_app.te b/legacy/vendor/common/fm_app.te
index 7c424d8..a33542f 100644
--- a/legacy/vendor/common/fm_app.te
+++ b/legacy/vendor/common/fm_app.te
@@ -25,6 +25,8 @@
 # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+typeattribute vendor_fm_app system_writes_vendor_properties_violators;
+
 binder_call(vendor_fm_app, hal_bluetooth_qti)
 binder_call(vendor_fm_app, hal_perf_default)
 allow vendor_fm_app sysfs_kgsl:file r_file_perms;
@@ -33,3 +35,5 @@
 hal_client_domain(vendor_fm_app, hal_btconfigstore);
 get_prop(vendor_fm_app, vendor_bluetooth_prop)
 allow vendor_fm_app hal_perf_hwservice:hwservice_manager find;
+get_prop(vendor_fm_app, vendor_fm_prop);
+set_prop(vendor_fm_app, vendor_fm_prop);
diff --git a/legacy/vendor/common/genfs_contexts b/legacy/vendor/common/genfs_contexts
index cce796f..da2c674 100755
--- a/legacy/vendor/common/genfs_contexts
+++ b/legacy/vendor/common/genfs_contexts
@@ -53,7 +53,6 @@
 genfscon sysfs /devices/soc/soc:qcom,memlat-cpu4/devfreq u:object_r:sysfs_devfreq:s0
 genfscon sysfs /devices/soc/soc:qcom,memlat-cpu6/devfreq u:object_r:sysfs_devfreq:s0
 genfscon sysfs /devices/soc/soc:qcom,mincpubw/devfreq u:object_r:sysfs_devfreq:s0
-genfscon debugfs /kgsl/proc u:object_r:qti_debugfs:s0
 genfscon sysfs /kernel/wcd_cpe0 u:object_r:sysfs_audio:s0
 genfscon sysfs /devices/virtual/thermal u:object_r:sysfs_thermal:s0
 genfscon sysfs /devices/virtual/kgsl/kgsl/proc u:object_r:sysfs_kgsl_proc:s0
diff --git a/legacy/vendor/common/hal_audio.te b/legacy/vendor/common/hal_audio.te
index 91396a3..d5e42dd 100644
--- a/legacy/vendor/common/hal_audio.te
+++ b/legacy/vendor/common/hal_audio.te
@@ -40,10 +40,14 @@
 
 userdebug_or_eng(`
   diag_use(hal_audio)
-  #Allow access to debug fs
-  allow hal_audio_default debugfs:dir r_dir_perms;
-  allow hal_audio_default qti_debugfs:dir r_dir_perms;
-  allow hal_audio_default qti_debugfs:file rw_file_perms;
+')
+
+no_debugfs_restriction(`
+  userdebug_or_eng(`
+    allow hal_audio_default debugfs:dir r_dir_perms;
+    allow hal_audio_default qti_debugfs:dir r_dir_perms;
+    allow hal_audio_default qti_debugfs:file rw_file_perms;
+  ')
 ')
 
 #Allow access to firmware
diff --git a/legacy/vendor/common/hal_bluetooth_qti.te b/legacy/vendor/common/hal_bluetooth_qti.te
index 9c15992..051ac56 100644
--- a/legacy/vendor/common/hal_bluetooth_qti.te
+++ b/legacy/vendor/common/hal_bluetooth_qti.te
@@ -69,11 +69,16 @@
 allow hal_bluetooth_qti ramdump_vendor_data_file:dir rw_dir_perms;
 
 allow hal_bluetooth proc_sysrq:file w_file_perms;
-allow hal_bluetooth_qti qti_debugfs:file r_file_perms;
-allow hal_bluetooth_qti qti_debugfs:dir rw_dir_perms;
 allow hal_bluetooth_qti self:{ socket qipcrtr_socket } create_socket_perms_no_ioctl;
 ')
 
+no_debugfs_restriction(`
+  userdebug_or_eng(`
+    allow hal_bluetooth_qti qti_debugfs:file r_file_perms;
+    allow hal_bluetooth_qti qti_debugfs:dir rw_dir_perms;
+  ')
+')
+
 hal_server_domain(hal_bluetooth_qti, hal_fm)
 hal_server_domain(hal_bluetooth_qti, hal_btconfigstore)
 
diff --git a/legacy/vendor/common/hal_drm_clearkey.te b/legacy/vendor/common/hal_drm_clearkey.te
index a8adb1c..9805283 100644
--- a/legacy/vendor/common/hal_drm_clearkey.te
+++ b/legacy/vendor/common/hal_drm_clearkey.te
@@ -35,4 +35,4 @@
 
 vndbinder_use(hal_drm_clearkey);
 
-allow hal_drm_clearkey { appdomain -isolated_app }:fd use;
+allow hal_drm_clearkey { appdomain -isolated_app_all }:fd use;
diff --git a/legacy/vendor/common/hal_drm_widevine.te b/legacy/vendor/common/hal_drm_widevine.te
index 3d894f9..8af2883 100644
--- a/legacy/vendor/common/hal_drm_widevine.te
+++ b/legacy/vendor/common/hal_drm_widevine.te
@@ -33,7 +33,7 @@
 init_daemon_domain(hal_drm_widevine)
 
 allow hal_drm_widevine mediacodec:fd use;
-allow hal_drm_widevine { appdomain -isolated_app }:fd use;
+allow hal_drm_widevine { appdomain -isolated_app_all }:fd use;
 
 # The QTI DRM-HAL implementation uses a vendor-binder service provided
 # by the HWC HAL.
diff --git a/legacy/vendor/common/hal_graphics_composer.te b/legacy/vendor/common/hal_graphics_composer.te
index fb330a1..c343abe 100644
--- a/legacy/vendor/common/hal_graphics_composer.te
+++ b/legacy/vendor/common/hal_graphics_composer.te
@@ -27,10 +27,15 @@
 
 userdebug_or_eng(`
     diag_use(hal_graphics_composer)
-    # Allow read to /sys/kernel/debug/*
+')
+
+no_debugfs_restriction(`
+  userdebug_or_eng(`
     allow hal_graphics_composer qti_debugfs:dir r_dir_perms;
     allow hal_graphics_composer qti_debugfs:file r_file_perms;
+  ')
 ')
+
 hal_client_domain(hal_graphics_composer_default, hal_graphics_allocator);
 get_prop(hal_graphics_composer, vendor_display_prop)
 allow hal_graphics_composer_default self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl;
diff --git a/legacy/vendor/common/hal_memtrack.te b/legacy/vendor/common/hal_memtrack.te
index aecdcd0..7c0cffa 100644
--- a/legacy/vendor/common/hal_memtrack.te
+++ b/legacy/vendor/common/hal_memtrack.te
@@ -26,9 +26,11 @@
 # # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 #debugfs access to audio
-userdebug_or_eng(`
-allow hal_memtrack_default qti_debugfs:dir r_dir_perms;
-allow hal_memtrack_default qti_debugfs:file rw_file_perms;
+no_debugfs_restriction(`
+  userdebug_or_eng(`
+    allow hal_memtrack_default qti_debugfs:dir r_dir_perms;
+    allow hal_memtrack_default qti_debugfs:file rw_file_perms;
+  ')
 ')
 
 #Acess to kgsl memory /sys/class/kgsl/kgsl/proc/<pid>/mtrack
diff --git a/legacy/vendor/common/hal_sensors.te b/legacy/vendor/common/hal_sensors.te
index a9a25c4..fe972ee 100644
--- a/legacy/vendor/common/hal_sensors.te
+++ b/legacy/vendor/common/hal_sensors.te
@@ -29,8 +29,14 @@
 userdebug_or_eng(`
     diag_use(hal_sensors)
     get_prop(hal_sensors_default, vendor_sensors_dbg_prop)
-    allow hal_sensors debugfs_tracing:file { open write };
 ')
+
+no_debugfs_restriction(`
+  userdebug_or_eng(`
+    allow hal_sensors debugfs_tracing:file { open write };
+  ')
+')
+
 set_prop(hal_sensors, vendor_slpi_prop);
 allow hal_sensors self:{ socket qipcrtr_socket } create_socket_perms;
 allowxperm hal_sensors self:{ socket qipcrtr_socket } ioctl msm_sock_ipc_ioctls;
diff --git a/legacy/vendor/common/hal_usb.te b/legacy/vendor/common/hal_usb.te
new file mode 100644
index 0000000..9ed82d9
--- /dev/null
+++ b/legacy/vendor/common/hal_usb.te
@@ -0,0 +1,41 @@
+# Copyright (c) 2017-2018, 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.
+
+type hal_usb_qti, domain;
+hal_server_domain(hal_usb_qti, hal_usb_gadget)
+hal_server_domain(hal_usb_qti, hal_usb)
+
+type hal_usb_qti_exec, exec_type, vendor_file_type, file_type;
+init_daemon_domain(hal_usb_qti)
+
+set_prop(hal_usb_qti, vendor_usb_prop)
+
+allow hal_usb_qti sysfs_usbpd_device:dir r_dir_perms;
+allow hal_usb_qti sysfs_usbpd_device:lnk_file r_file_perms;
+allow hal_usb_qti sysfs_usbpd_device:file rw_file_perms;
+r_dir_file(hal_usb_qti, sysfs_battery_supply)
+r_dir_file(hal_usb_qti, sysfs_usb_supply)
diff --git a/legacy/vendor/common/init_shell.te b/legacy/vendor/common/init_shell.te
index 6446c65..206be91 100644
--- a/legacy/vendor/common/init_shell.te
+++ b/legacy/vendor/common/init_shell.te
@@ -296,3 +296,5 @@
 #dontaudit default_prop and init read
 dontaudit vendor_qti_init_shell default_prop:file read;
 set_prop(qti_init_shell, qemu_hw_prop)
+
+allow qti_init_shell proc_watermark_scale_factor:file rw_file_perms;
diff --git a/legacy/vendor/common/kernel.te b/legacy/vendor/common/kernel.te
index 897a327..4abe020 100755
--- a/legacy/vendor/common/kernel.te
+++ b/legacy/vendor/common/kernel.te
@@ -29,8 +29,13 @@
 
 userdebug_or_eng(`
   allow kernel self:{ socket qipcrtr_socket } create_socket_perms_no_ioctl;
-  r_dir_file(kernel, qti_debugfs);
-  allow kernel debugfs_mmc:dir search;
+')
+
+no_debugfs_restriction(`
+  userdebug_or_eng(`
+    r_dir_file(kernel, qti_debugfs);
+    allow kernel debugfs_mmc:dir search;
+  ')
 ')
 
 # Access firmware_file
diff --git a/legacy/vendor/common/location.te b/legacy/vendor/common/location.te
index a46f6fd..70f6156 100644
--- a/legacy/vendor/common/location.te
+++ b/legacy/vendor/common/location.te
@@ -136,3 +136,8 @@
 binder_call(location, qtidataservices_app)
 
 allow location sysfs_soc:dir r_dir_perms;
+
+get_prop(location, wifi_hal_prop)
+
+# xtra-daemon control
+get_prop(location, xtra_control_prop)
diff --git a/legacy/vendor/common/mediaserver.te b/legacy/vendor/common/mediaserver.te
index f7cf247..f63f3c1 100644
--- a/legacy/vendor/common/mediaserver.te
+++ b/legacy/vendor/common/mediaserver.te
@@ -38,8 +38,12 @@
 userdebug_or_eng(`
   allow mediaserver camera_data_file:dir rw_dir_perms;
   allow mediaserver camera_data_file:file create_file_perms;
-  # Access to audio
-  allow mediaserver qti_debugfs:file rw_file_perms;
+')
+
+no_debugfs_restriction(`
+  userdebug_or_eng(`
+    allow mediaserver qti_debugfs:file rw_file_perms;
+  ')
 ')
 
 # allow poweroffhandler to binder mediaserver
diff --git a/legacy/vendor/common/mm-qcamerad.te b/legacy/vendor/common/mm-qcamerad.te
index 49b317b..81f1f43 100644
--- a/legacy/vendor/common/mm-qcamerad.te
+++ b/legacy/vendor/common/mm-qcamerad.te
@@ -31,8 +31,6 @@
 
 #added to support EZTune for camera
 userdebug_or_eng(`
-  allow mm-qcamerad qti_debugfs:dir r_dir_perms;
-  allow mm-qcamerad qti_debugfs:file read;
   #allow mm-qcamerad self:tcp_socket create_stream_socket_perms;
   allow mm-qcamerad node:tcp_socket node_bind;
 
@@ -44,6 +42,13 @@
   set_prop(mm-qcamerad, camera_prop)
 ')
 
+no_debugfs_restriction(`
+  userdebug_or_eng(`
+    allow mm-qcamerad qti_debugfs:dir r_dir_perms;
+    allow mm-qcamerad qti_debugfs:file read;
+  ')
+')
+
 #Communicate with user land process through domain socket
 unix_socket_connect(mm-qcamerad, sensors, sensors)
 
@@ -104,3 +109,6 @@
 allowxperm mm-qcamerad self:socket ioctl msm_sock_ipc_ioctls;
 
 allow mm-qcamerad sysfs_data:file r_file_perms;
+
+#for v4L node "name" access
+allow mm-qcamerad sysfs_graphics:file rw_file_perms;
diff --git a/legacy/vendor/common/perfdump_app.te b/legacy/vendor/common/perfdump_app.te
index fb22602..2ed1232 100644
--- a/legacy/vendor/common/perfdump_app.te
+++ b/legacy/vendor/common/perfdump_app.te
@@ -32,16 +32,18 @@
 allow perfdump_app system_app_data_file:file create_file_perms;
 
 # systrace support
-allow perfdump_app debugfs_tracing:dir r_dir_perms;
-allow perfdump_app debugfs_tracing:file rw_file_perms;
+no_debugfs_restriction(`
+  userdebug_or_eng(`
+    allow perfdump_app debugfs_tracing:dir r_dir_perms;
+    allow perfdump_app debugfs_tracing:file rw_file_perms;
 
-userdebug_or_eng(`
-  allow perfdump_app debugfs_tracing_debug:dir r_dir_perms;
-  allow perfdump_app debugfs_tracing_debug:file rw_file_perms;
+    allow perfdump_app debugfs_tracing_debug:dir r_dir_perms;
+    allow perfdump_app debugfs_tracing_debug:file rw_file_perms;
+
+    allow perfdump_app debugfs_trace_marker:file getattr;
+  ')
 ')
 
-allow perfdump_app debugfs_trace_marker:file getattr;
-
 # perfdump sets debug.atrace.* properties
 set_prop(perfdump_app, debug_prop)
 
diff --git a/legacy/vendor/common/poweroffalarm_app.te b/legacy/vendor/common/poweroffalarm_app.te
index 71172a7..051562d 100644
--- a/legacy/vendor/common/poweroffalarm_app.te
+++ b/legacy/vendor/common/poweroffalarm_app.te
@@ -30,7 +30,17 @@
 
 allow poweroffalarm_app app_api_service:service_manager find;
 
+allow poweroffalarm_app mnt_vendor_file:dir r_dir_perms;
+allow poweroffalarm_app persist_alarm_file:dir rw_dir_perms;
+allow poweroffalarm_app persist_alarm_file:file create_file_perms;
+
 hal_client_domain(poweroffalarm_app, hal_alarm_qti);
 
 binder_call(poweroffalarm_app, hal_alarm_qti_default);
 
+allow poweroffalarm_app system_app_data_file:dir create_dir_perms;
+allow poweroffalarm_app system_app_data_file:{ file lnk_file } create_file_perms;
+
+allow poweroffalarm_app surfaceflinger_service:service_manager find;
+allow poweroffalarm_app audioserver_service:service_manager find;
+allow poweroffalarm_app mediaserver_service:service_manager find;
diff --git a/legacy/vendor/common/property.te b/legacy/vendor/common/property.te
index 3385034..f99ce76 100644
--- a/legacy/vendor/common/property.te
+++ b/legacy/vendor/common/property.te
@@ -70,7 +70,7 @@
 #Needed for  ubwc support
 vendor_restricted_prop(vendor_gralloc_prop);
 
-vendor_restricted_prop(vendor_fm_prop);
+vendor_public_prop(vendor_fm_prop);
 vendor_restricted_prop(chgdiabled_prop);
 
 vendor_restricted_prop(vendor_xlat_prop);
diff --git a/legacy/vendor/common/property_contexts b/legacy/vendor/common/property_contexts
index 0433fae..76325c7 100644
--- a/legacy/vendor/common/property_contexts
+++ b/legacy/vendor/common/property_contexts
@@ -27,6 +27,7 @@
 
 persist.vendor.service.bdroid.      u:object_r:vendor_bluetooth_prop:s0
 persist.vendor.bt.soc.scram_freqs   u:object_r:vendor_bluetooth_prop:s0
+persist.vendor.bluetooth.           u:object_r:vendor_bluetooth_prop:s0
 persist.vendor.bluetooth.a2dp.      u:object_r:vendor_bluetooth_prop:s0
 persist.vendor.qcom.bluetooth.      u:object_r:vendor_bluetooth_prop:s0
 vendor.qcom.bluetooth.              u:object_r:vendor_bluetooth_prop:s0
@@ -84,9 +85,11 @@
 vendor.perf.gestureflingboost.enable  u:object_r:vendor_scroll_prop:s0
 vendor.qti.izat.           u:object_r:vendor_location_prop:s0
 vendor.usb.                u:object_r:vendor_usb_prop:s0
+vendor.sys.usb.            u:object_r:vendor_usb_prop:s0
 vendor.wlan.driver.version       u:object_r:vendor_wifi_version:s0
 vendor.wlan.firmware.version     u:object_r:vendor_wifi_version:s0
 persist.vendor.usb.        u:object_r:vendor_usb_prop:s0
+ro.vendor.usb.             u:object_r:vendor_usb_prop:s0
 ro.vendor.dbg.coresight.cfg_file     u:object_r:vendor_coresight_prop:s0
 vendor.audio.              u:object_r:vendor_audio_prop:s0
 vendor.voice.              u:object_r:vendor_audio_prop:s0
@@ -185,6 +188,8 @@
 vendor.media.target.version        u:object_r:vendor_video_prop:s0
 vendor.video.disable.ubwc          u:object_r:vendor_video_prop:s0
 
+persist.vendor.camera.debug.logfile u:object_r:camera_prop:s0
+
 #rmt_storage
 ctl.vendor.rmt_storage     u:object_r:vendor_ctl_vendor_rmt_storage_prop:s0
 
diff --git a/legacy/vendor/common/qlogd.te b/legacy/vendor/common/qlogd.te
index fdf08e2..9b509da 100644
--- a/legacy/vendor/common/qlogd.te
+++ b/legacy/vendor/common/qlogd.te
@@ -65,13 +65,18 @@
 
 # need for qdss log and odl from UI
 userdebug_or_eng(`
-  allow qlogd { debugfs_tracing qdss_device }:file r_file_perms;
   allow qlogd { qdss_device }:file r_file_perms;
   r_dir_file(qlogd, storage_file)
   r_dir_file(qlogd, mnt_user_file)
   diag_use(qlogd)
 ')
 
+no_debugfs_restriction(`
+  userdebug_or_eng(`
+    allow qlogd debugfs_tracing:file r_file_perms;
+  ')
+')
+
 # need for capture adb logs
 unix_socket_connect(qlogd, logdr, logd)
 
diff --git a/legacy/vendor/common/qseecomd.te b/legacy/vendor/common/qseecomd.te
index 669113d..3413e7d 100644
--- a/legacy/vendor/common/qseecomd.te
+++ b/legacy/vendor/common/qseecomd.te
@@ -87,8 +87,6 @@
 binder_call(tee, surfaceflinger)
 #binder_use(tee)
 
-#allow tee system_app:unix_dgram_socket sendto;
-unix_socket_connect(tee, property, init)
 
 userdebug_or_eng(`
   allow tee su:unix_dgram_socket sendto;
diff --git a/legacy/vendor/common/qseeproxy.te b/legacy/vendor/common/qseeproxy.te
index 12517fb..7008ba4 100644
--- a/legacy/vendor/common/qseeproxy.te
+++ b/legacy/vendor/common/qseeproxy.te
@@ -43,9 +43,6 @@
 #Allow qseeproxy to use system_server via binder to check caller identity
 binder_call(qseeproxy, system_server)
 
-#Allow communication with init over property server
-unix_socket_connect(qseeproxy, property, init);
-
 #Allow access to tee device
 allow qseeproxy tee_device:chr_file rw_file_perms;
 
diff --git a/legacy/vendor/common/qti_logkit_app.te b/legacy/vendor/common/qti_logkit_app.te
index 914da6c..e3fefa7 100644
--- a/legacy/vendor/common/qti_logkit_app.te
+++ b/legacy/vendor/common/qti_logkit_app.te
@@ -39,7 +39,6 @@
 net_domain(qti_logkit_app)
 
 userdebug_or_eng(`
-  # allow qti_logkit_app debugfs:file r_file_perms;
   allow qti_logkit_app su:unix_dgram_socket sendto;
   allow qti_logkit_app mnt_vendor_file:dir r_dir_perms;
   allow qti_logkit_app sensors_persist_file:dir r_dir_perms;
@@ -70,7 +69,7 @@
 allow qti_logkit_app wcnss_service_exec:file rx_file_perms;
 
 # bugreport
-#allow qti_logkit_app ctl_dumpstate_prop:property_service set;
+#set_prop(qti_logkit_app, ctl_dumpstate_prop)
 unix_socket_connect(qti_logkit_app, dumpstate, dumpstate)
 
 # ANR
diff --git a/legacy/vendor/common/qvrd.te b/legacy/vendor/common/qvrd.te
index d26bce6..4b6cc02 100644
--- a/legacy/vendor/common/qvrd.te
+++ b/legacy/vendor/common/qvrd.te
@@ -71,10 +71,12 @@
 hal_client_domain(vendor_qvrd, hal_sensors)
 
 # QVRD
-userdebug_or_eng(`
-allow vendor_qvrd debugfs:dir r_dir_perms;
-allow vendor_qvrd qti_debugfs:dir r_dir_perms;
-allow vendor_qvrd qti_debugfs:file rw_file_perms;
+no_debugfs_restriction(`
+  userdebug_or_eng(`
+    allow vendor_qvrd debugfs:dir r_dir_perms;
+    allow vendor_qvrd qti_debugfs:dir r_dir_perms;
+    allow vendor_qvrd qti_debugfs:file rw_file_perms;
+  ')
 ')
 
 # Allow access to kgsl sysfs nodes for performance optimization
diff --git a/legacy/vendor/common/ridl.te b/legacy/vendor/common/ridl.te
index 31f2255..3c9280f 100644
--- a/legacy/vendor/common/ridl.te
+++ b/legacy/vendor/common/ridl.te
@@ -41,8 +41,11 @@
 allow RIDL RIDL_data_file:dir create_dir_perms;
 allow RIDL RIDL_data_file:file create_file_perms;
 allow RIDL RIDL_data_file:lnk_file { create read unlink };
-userdebug_or_eng(`
-allow RIDL qti_debugfs:file read;
+
+no_debugfs_restriction(`
+  userdebug_or_eng(`
+    allow RIDL qti_debugfs:file read;
+  ')
 ')
 
 # ver_info.txt
diff --git a/legacy/vendor/common/seapp_contexts b/legacy/vendor/common/seapp_contexts
index ae1ac85..6cbb4dd 100644
--- a/legacy/vendor/common/seapp_contexts
+++ b/legacy/vendor/common/seapp_contexts
@@ -48,7 +48,7 @@
 user=system seinfo=platform name=com.qualcomm.qti.perfdump domain=perfdump_app type=system_app_data_file
 
 #Add new domain for power off alarm app
-user=_app seinfo=platform name=com.qualcomm.qti.poweroffalarm domain=poweroffalarm_app type=app_data_file levelFrom=all
+user=_app seinfo=platform name=com.qualcomm.qti.poweroffalarm domain=poweroffalarm_app type=app_data_file
 
 #add new domain for qtidataservices
 user=_app seinfo=platform name=.qtidataservices domain=qtidataservices_app type=app_data_file levelFrom=all
diff --git a/legacy/vendor/common/sysmonapp/keys.conf b/legacy/vendor/common/sysmonapp/keys.conf
index 4c650c8..fd99109 100644
--- a/legacy/vendor/common/sysmonapp/keys.conf
+++ b/legacy/vendor/common/sysmonapp/keys.conf
@@ -26,4 +26,4 @@
 # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 [@SYSMONAPP]
-ALL : device/qcom/sepolicy/legacy/vendor/common/sysmonapp/sysmonapp_app_cert.x509.pem
+ALL : device/qcom/sepolicy-legacy-um/legacy/vendor/common/sysmonapp/sysmonapp_app_cert.x509.pem
diff --git a/legacy/vendor/common/system_app.te b/legacy/vendor/common/system_app.te
index 2ddc277..3610f92 100644
--- a/legacy/vendor/common/system_app.te
+++ b/legacy/vendor/common/system_app.te
@@ -34,7 +34,6 @@
 }:service_manager add;
 
 userdebug_or_eng(`
-  allow system_app qti_debugfs:file r_file_perms;
   allow system_app su:unix_dgram_socket sendto;
 
   # Access to tombstone segfaults
@@ -44,6 +43,12 @@
 
 ')
 
+no_debugfs_restriction(`
+  userdebug_or_eng(`
+    allow system_app qti_debugfs:file r_file_perms;
+  ')
+')
+
 allow system_app cnd_data_file:dir w_dir_perms;
 allow system_app cnd_data_file:file create_file_perms;
 allow system_app bluetooth:unix_stream_socket ioctl;
@@ -109,7 +114,7 @@
 #allow system_app qti_logkit_priv_socket:sock_file r_file_perms;
 
 # bugreport
-#allow system_app ctl_dumpstate_prop:property_service set;
+#set_prop(system_app, ctl_dumpstate_prop)
 unix_socket_connect(system_app, dumpstate, dumpstate)
 
 # allow gba auth service to add itself as system service
diff --git a/legacy/vendor/common/system_server.te b/legacy/vendor/common/system_server.te
index 314046f..a08d0d5 100644
--- a/legacy/vendor/common/system_server.te
+++ b/legacy/vendor/common/system_server.te
@@ -110,7 +110,7 @@
 allow system_server iqfp_service:service_manager find;
 
 # For shutdown animation
-allow system_server ctl_bootanim_prop:property_service set;
+set_prop(system_server, ctl_bootanim_prop)
 
 # allow tethering to access dhcp leases
 r_dir_file(system_server, dhcp_data_file)
diff --git a/legacy/vendor/common/vendor_init.te b/legacy/vendor/common/vendor_init.te
index 1f8b8dc..b3f8a87 100644
--- a/legacy/vendor/common/vendor_init.te
+++ b/legacy/vendor/common/vendor_init.te
@@ -126,3 +126,5 @@
 allow vendor_init tee_device:chr_file getattr;
 allow vendor_init block_device:lnk_file setattr;
 dontaudit vendor_init vendor_fm_prop:property_service set;
+
+set_prop(vendor_init, vendor_time_service_prop)
diff --git a/legacy/vendor/common/wifi_ftmd.te b/legacy/vendor/common/wifi_ftmd.te
index 2f61c08..2f1cf5d 100644
--- a/legacy/vendor/common/wifi_ftmd.te
+++ b/legacy/vendor/common/wifi_ftmd.te
@@ -33,4 +33,3 @@
 
 set_prop(wifi_ftmd,vendor_wifi_ftmd_prop);
 allow wifi_ftmd self:capability net_admin;
-allow wifi_ftmd vendor_wifi_ftmd_prop:property_service set;
diff --git a/legacy/vendor/common/zygote.te b/legacy/vendor/common/zygote.te
index 812951b..9921f39 100644
--- a/legacy/vendor/common/zygote.te
+++ b/legacy/vendor/common/zygote.te
@@ -25,7 +25,7 @@
 # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-allow zygote  system_prop:property_service set;
+set_prop(zygote, system_prop)
 get_prop(zygote, vendor_mpctl_prop)
 get_prop(zygote, vendor_video_prop)
 allow zygote self:capability kill;
diff --git a/legacy/vendor/msm8937/file_contexts b/legacy/vendor/msm8937/file_contexts
index 5fe87da..9c418ff 100644
--- a/legacy/vendor/msm8937/file_contexts
+++ b/legacy/vendor/msm8937/file_contexts
@@ -49,8 +49,7 @@
 /dev/block/platform/soc/7824900.sdhci/by-name/cache                 u:object_r:cache_block_device:s0
 /dev/block/platform/soc/7824900.sdhci/by-name/logdump               u:object_r:logdump_partition:s0
 /dev/block/platform/soc/7824900.sdhci/by-name/super                 u:object_r:super_block_device:s0
-
-
+/dev/block/platform/soc/7824900.sdhci/by-name/persist               u:object_r:persist_block_device:s0
 
 #rawdump partition
 /dev/block/platform/soc/7824900.sdhci/by-name/rawdump               u:object_r:rawdump_block_device:s0
@@ -59,11 +58,11 @@
 ############################################################################################
 #Same hal process libs
 #
-/vendor/lib(64)?/hw/gralloc\.msm8937\.so   u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/hw/vulkan\.msm8937\.so    u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/hw/gralloc\.msm8937\.so   u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/hw/vulkan\.msm8937\.so    u:object_r:same_process_hal_file:s0
 
 #For adreno libs
-/vendor/lib(64)?/libsc-a3xx\.so                                     u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/libsc-a3xx\.so            u:object_r:same_process_hal_file:s0
 
 # Single hal process
 /(vendor|system/vendor)/bin/hw/hal-server             u:object_r:hal-server_exec:s0
diff --git a/legacy/vendor/msm8953/file_contexts b/legacy/vendor/msm8953/file_contexts
index cc67751..bf9b484 100644
--- a/legacy/vendor/msm8953/file_contexts
+++ b/legacy/vendor/msm8953/file_contexts
@@ -49,6 +49,7 @@
 /dev/block/platform/soc/7824900.sdhci/by-name/recovery              u:object_r:recovery_block_device:s0
 /dev/block/platform/soc/7824900.sdhci/by-name/cache                 u:object_r:cache_block_device:s0
 /dev/block/platform/soc/7824900.sdhci/by-name/super                 u:object_r:super_block_device:s0
+/dev/block/platform/soc/7824900.sdhci/by-name/persist               u:object_r:persist_block_device:s0
 
 #rawdump partition
 /dev/block/platform/soc/7824900.sdhci/by-name/rawdump               u:object_r:rawdump_block_device:s0
@@ -57,8 +58,8 @@
 ############################################################################################
 #Same hal process libs
 #
-/vendor/lib(64)?/hw/gralloc\.msm8953\.so   u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/hw/vulkan\.msm8953\.so    u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/hw/gralloc\.msm8953\.so   u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/hw/vulkan\.msm8953\.so    u:object_r:same_process_hal_file:s0
 
 # FBE
 /(vendor|system/vendor)/bin/init.qti.qseecomd.sh		u:object_r:init-qti-fbe-sh_exec:s0
@@ -80,6 +81,7 @@
 /dev/block/platform/soc/7824900.sdhci/by-name/rpm_[ab]              u:object_r:custom_ab_block_device:s0
 /dev/block/platform/soc/7824900.sdhci/by-name/system_[ab]           u:object_r:system_block_device:s0
 /dev/block/platform/soc/7824900.sdhci/by-name/tz_[ab]               u:object_r:custom_ab_block_device:s0
+/dev/block/platform/soc/7824900.sdhci/by-name/lksecapp_[ab]         u:object_r:custom_ab_block_device:s0
 /dev/block/platform/soc/7824900.sdhci/by-name/ImageFv_[ab]          u:object_r:custom_ab_block_device:s0
 /dev/block/platform/soc/7824900.sdhci/by-name/vendor_[ab]           u:object_r:system_block_device:s0
 /dev/block/platform/soc/7824900.sdhci/by-name/sbl1_[ab]             u:object_r:xbl_block_device:s0
diff --git a/legacy/vendor/msm8953/init_shell.te b/legacy/vendor/msm8953/init_shell.te
index 4778457..143a5ee 100644
--- a/legacy/vendor/msm8953/init_shell.te
+++ b/legacy/vendor/msm8953/init_shell.te
@@ -25,9 +25,8 @@
 # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-allow qti_init_shell {
-    vendor_media_msm8953_version_prop
-}:property_service set;
+# media_msm8953_version_prop - to choose target version specific media_codecs.xml
+set_prop(qti_init_shell, vendor_media_msm8953_version_prop)
 
 # For regionalization
 allow qti_init_shell regionalization_file:dir r_dir_perms;
diff --git a/legacy/vendor/msm8953/update_engine_common.te b/legacy/vendor/msm8953/update_engine_common.te
new file mode 100644
index 0000000..9f86dbd
--- /dev/null
+++ b/legacy/vendor/msm8953/update_engine_common.te
@@ -0,0 +1,41 @@
+# Copyright (c) 2018, 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.
+
+# Allow update_engine and update_engine_sideload (recovery) read/write on the
+# device-specific partitions it should update.
+allow update_engine_common {
+    custom_ab_block_device
+    xbl_block_device
+    uefi_block_device
+    ssd_device
+    modem_block_device
+    boot_block_device
+    mdtp_device
+    system_block_device
+}:blk_file rw_file_perms;
+
diff --git a/legacy/vendor/msm8996/file.te b/legacy/vendor/msm8996/file.te
new file mode 100644
index 0000000..5000486
--- /dev/null
+++ b/legacy/vendor/msm8996/file.te
@@ -0,0 +1,29 @@
+# Copyright (c) 2015, 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.
+
+#sysfs emmc dload type
+type sysfs_emmc_dload, sysfs_type, fs_type;
diff --git a/legacy/vendor/msm8996/file_contexts b/legacy/vendor/msm8996/file_contexts
new file mode 100644
index 0000000..aaf7999
--- /dev/null
+++ b/legacy/vendor/msm8996/file_contexts
@@ -0,0 +1,154 @@
+# Copyright (c) 2015, 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.
+
+###################################
+# Dev block nodes
+
+# common
+/dev/block/mmcblk0rpmb                                                          u:object_r:rpmb_device:s0
+/dev/block/mmcblk0                                                              u:object_r:root_block_device:s0
+
+# UFS devices
+/dev/block/platform/soc/624000.ufshc/by-name/fsc                                u:object_r:modem_efs_partition_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/fsg                                u:object_r:modem_efs_partition_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/modemst1                           u:object_r:modem_efs_partition_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/modemst2                           u:object_r:modem_efs_partition_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/ssd                                u:object_r:ssd_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/misc                               u:object_r:misc_block_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/rpm                                u:object_r:rpmb_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/system                             u:object_r:system_block_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/userdata                           u:object_r:userdata_block_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/msadp                              u:object_r:mba_debug_dev:s0
+/dev/block/platform/soc/624000.ufshc/by-name/dip                                u:object_r:dip_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/mdtp                               u:object_r:mdtp_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/boot                               u:object_r:boot_block_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/recovery                           u:object_r:recovery_block_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/cache                              u:object_r:cache_block_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/frp                                u:object_r:frp_block_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/mdm1m9kefs1                        u:object_r:efs_boot_dev:s0
+/dev/block/platform/soc/624000.ufshc/by-name/mdm1m9kefs2                        u:object_r:efs_boot_dev:s0
+/dev/block/platform/soc/624000.ufshc/by-name/mdm1m9kefs3                        u:object_r:efs_boot_dev:s0
+/dev/block/platform/soc/624000.ufshc/by-name/mdm1m9kefsc                        u:object_r:efs_boot_dev:s0
+/dev/block/platform/soc/624000.ufshc/by-name/logdump                            u:object_r:logdump_partition:s0
+/dev/block/platform/soc/624000.ufshc/by-name/persist                            u:object_r:persist_block_device:s0
+
+# eMMC devices
+/dev/block/platform/soc/7464900.sdhci/by-name/fsc                               u:object_r:modem_efs_partition_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/fsg                               u:object_r:modem_efs_partition_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/modemst1                          u:object_r:modem_efs_partition_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/modemst2                          u:object_r:modem_efs_partition_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/ssd                               u:object_r:ssd_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/misc                              u:object_r:misc_block_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/rpm                               u:object_r:rpmb_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/system                            u:object_r:system_block_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/userdata                          u:object_r:userdata_block_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/msadp                             u:object_r:mba_debug_dev:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/dip                               u:object_r:dip_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/mdtp                              u:object_r:mdtp_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/boot                              u:object_r:boot_block_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/recovery                          u:object_r:recovery_block_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/cache                             u:object_r:cache_block_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/frp                               u:object_r:frp_block_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/mdm1m9kefs1                       u:object_r:efs_boot_dev:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/mdm1m9kefs2                       u:object_r:efs_boot_dev:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/mdm1m9kefs3                       u:object_r:efs_boot_dev:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/mdm1m9kefsc                       u:object_r:efs_boot_dev:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/logdump                           u:object_r:logdump_partition:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/persist                           u:object_r:persist_block_device:s0
+
+###################################
+# Dev socket nodes
+#
+
+###################################
+# System files
+#
+/(vendor|system/vendor)/bin/seccamd u:object_r:seccamd_exec:s0
+
+###################################
+# sysfs files
+#
+
+/sys/devices/soc/b00000.qcom,kgsl-3d0/kgsl/kgsl-3d0/gpu_available_frequencies   u:object_r:sysfs_kgsl:s0
+
+#rawdump partition
+/dev/block/platform/soc/7464900.sdhci/by-name/rawdump                           u:object_r:rawdump_block_device:s0
+/sys/kernel/dload/emmc_dload                                                    u:object_r:sysfs_emmc_dload:s0
+
+############################################################################################
+#Same hal process libs
+#
+/(vendor|system/vendor)/lib(64)?/hw/gralloc\.msm8996\.so   u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/hw/vulkan\.msm8996\.so    u:object_r:same_process_hal_file:s0
+
+##################################
+# A/B partitions.
+#EMMC
+/dev/block/platform/soc/7464900.sdhci/by-name/aboot_[ab]            u:object_r:custom_ab_block_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/boot_[ab]             u:object_r:boot_block_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/cmnlib_[ab]           u:object_r:custom_ab_block_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/cmnlib64_[ab]         u:object_r:custom_ab_block_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/devcfg_[ab]           u:object_r:custom_ab_block_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/mdtp_[ab]             u:object_r:mdtp_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/hyp_[ab]              u:object_r:custom_ab_block_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/keymaster_[ab]        u:object_r:custom_ab_block_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/modem_[ab]            u:object_r:modem_block_device:s0
+/dev/block/platform/soc/7464900.ufshc/by-name/bluetooth_[ab]        u:object_r:modem_block_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/dsp_[ab]              u:object_r:custom_ab_block_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/pmic_[ab]             u:object_r:custom_ab_block_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/rpm_[ab]              u:object_r:custom_ab_block_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/system_[ab]           u:object_r:system_block_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/tz_[ab]               u:object_r:custom_ab_block_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/ImageFv_[ab]          u:object_r:custom_ab_block_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/vendor_[ab]           u:object_r:system_block_device:s0
+/dev/block/platform/soc/7464900.sdhci/by-name/xbl_[ab]              u:object_r:xbl_block_device:s0
+
+#UFS
+/dev/block/platform/soc/624000.ufshc/by-name/aboot_[ab]        u:object_r:custom_ab_block_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/boot_[ab]         u:object_r:boot_block_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/cmnlib_[ab]       u:object_r:custom_ab_block_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/cmnlib64_[ab]     u:object_r:custom_ab_block_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/devcfg_[ab]       u:object_r:custom_ab_block_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/mdtp_[ab]         u:object_r:mdtp_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/hyp_[ab]          u:object_r:custom_ab_block_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/keymaster_[ab]    u:object_r:custom_ab_block_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/modem_[ab]        u:object_r:modem_block_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/bluetooth_[ab]    u:object_r:modem_block_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/dsp_[ab]          u:object_r:custom_ab_block_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/pmic_[ab]         u:object_r:custom_ab_block_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/rpm_[ab]          u:object_r:custom_ab_block_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/system_[ab]       u:object_r:system_block_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/tz_[ab]           u:object_r:custom_ab_block_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/ImageFv_[ab]      u:object_r:custom_ab_block_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/vendor_[ab]       u:object_r:system_block_device:s0
+/dev/block/platform/soc/624000.ufshc/by-name/xbl_[ab]          u:object_r:xbl_block_device:s0
+
+# Block device holding the GPT, where the A/B attributes are stored.
+/dev/block/platform/soc/624000.ufshc/sd[ade]                   u:object_r:gpt_block_device:s0
+
+# Block devices for the drive that holds the xbl_a and xbl_b partitions.
+/dev/block/platform/soc/624000.ufshc/sd[bc]                 u:object_r:xbl_block_device:s0
diff --git a/legacy/vendor/msm8996/genfs_contexts b/legacy/vendor/msm8996/genfs_contexts
new file mode 100644
index 0000000..ad8fe7c
--- /dev/null
+++ b/legacy/vendor/msm8996/genfs_contexts
@@ -0,0 +1,38 @@
+# Copyright (c) 2018, 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.
+###################################
+
+genfscon sysfs /devices/soc/soc:qcom,wil6210/subsys3/name              u:object_r:sysfs_ssr:s0
+genfscon sysfs /devices/soc/soc:qcom,cnss/subsys2/name                 u:object_r:sysfs_ssr:s0
+genfscon sysfs /devices/soc/soc:qcom,kgsl-hyp/subsys1/name             u:object_r:sysfs_ssr:s0
+genfscon sysfs /devices/soc/1c00000.qcom,ssc/subsys4/name              u:object_r:sysfs_ssr:s0
+genfscon sysfs /devices/soc/1c00000.qcom,ssc/subsys5/name              u:object_r:sysfs_ssr:s0
+genfscon sysfs /devices/soc/9300000.qcom,lpass/subsys3/name            u:object_r:sysfs_ssr:s0
+genfscon sysfs /devices/soc/9300000.qcom,lpass/subsys4/name            u:object_r:sysfs_ssr:s0
+genfscon sysfs /devices/soc/2080000.qcom,mss/subsys5/name              u:object_r:sysfs_ssr:s0
+genfscon sysfs /devices/soc/2080000.qcom,mss/subsys6/name              u:object_r:sysfs_ssr:s0
+genfscon sysfs /devices/soc/ce0000.qcom,venus/subsys0/name             u:object_r:sysfs_ssr:s0
diff --git a/legacy/vendor/msm8996/mediaserver.te b/legacy/vendor/msm8996/mediaserver.te
new file mode 100644
index 0000000..bbce365
--- /dev/null
+++ b/legacy/vendor/msm8996/mediaserver.te
@@ -0,0 +1,28 @@
+# Copyright (c) 2015, 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.
+
+binder_call(mediaserver, seccamd)
diff --git a/legacy/vendor/msm8996/qti-logkit.te b/legacy/vendor/msm8996/qti-logkit.te
new file mode 100644
index 0000000..725cf47
--- /dev/null
+++ b/legacy/vendor/msm8996/qti-logkit.te
@@ -0,0 +1,33 @@
+# Copyright (c) 2016, 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.
+
+# allow qti_logkit for rawdump partition
+allow qti_logkit block_device:dir r_dir_perms;
+allow qti_logkit rawdump_block_device:blk_file rw_file_perms;
+
+# allow qti_logkit for sysfs emmc dload node
+allow qti_logkit sysfs_emmc_dload:file rw_file_perms;
diff --git a/legacy/vendor/msm8996/ridl.te b/legacy/vendor/msm8996/ridl.te
new file mode 100644
index 0000000..0147c26
--- /dev/null
+++ b/legacy/vendor/msm8996/ridl.te
@@ -0,0 +1,33 @@
+# Copyright (c) 2016, 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.
+
+# allow RIDL for rawdump partition
+allow RIDL block_device:dir r_dir_perms;
+allow RIDL rawdump_block_device:blk_file rw_file_perms;
+
+# allow RIDL for enable sysfs node
+allow RIDL sysfs_emmc_dload:file rw_file_perms;
diff --git a/legacy/vendor/msm8996/seccamd.te b/legacy/vendor/msm8996/seccamd.te
new file mode 100644
index 0000000..a71ba5f
--- /dev/null
+++ b/legacy/vendor/msm8996/seccamd.te
@@ -0,0 +1,34 @@
+# Copyright (c) 2015, 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.
+
+type seccamd, domain;
+type seccamd_exec, exec_type, vendor_file_type, file_type;
+
+init_daemon_domain(seccamd)
+
+# Allow interacting with qseecom
+allow seccamd tee_device:chr_file rw_file_perms;
diff --git a/legacy/vendor/msm8998/file_contexts b/legacy/vendor/msm8998/file_contexts
index 7419309..3e28591 100644
--- a/legacy/vendor/msm8998/file_contexts
+++ b/legacy/vendor/msm8998/file_contexts
@@ -49,7 +49,7 @@
 /dev/block/platform/soc/c0c4000.sdhci/by-name/mdm1m9kefsc                       u:object_r:efs_boot_dev:s0
 /dev/block/platform/soc/c0c4000.sdhci/by-name/logdump                           u:object_r:logdump_partition:s0
 /dev/block/platform/soc/c0c4000.sdhci/by-name/super                             u:object_r:super_block_device:s0
-
+/dev/block/platform/soc/c0c4000.sdhci/by-name/persist                           u:object_r:persist_block_device:s0
 
 #for UFS blocks
 /dev/block/platform/soc/1da4000.ufshc/by-name/fsc                               u:object_r:modem_efs_partition_device:s0
@@ -74,6 +74,7 @@
 /dev/block/platform/soc/1da4000.ufshc/by-name/mdm1m9kefsc                       u:object_r:efs_boot_dev:s0
 /dev/block/platform/soc/1da4000.ufshc/by-name/logdump                           u:object_r:logdump_partition:s0
 /dev/block/platform/soc/1da4000.ufshc/by-name/super                             u:object_r:super_block_device:s0
+/dev/block/platform/soc/1da4000.ufshc/by-name/persist                           u:object_r:persist_block_device:s0
 
 #Primary storage device nodes
 /dev/block/mmcblk0rpmb                                                          u:object_r:rpmb_device:s0
@@ -148,27 +149,8 @@
 ############################################################################################
 #Same hal process libs
 #
-/vendor/lib(64)?/hw/gralloc\.msm8998\.so   u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/hw/vulkan\.msm8998\.so    u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/hw/gralloc\.msm8998\.so   u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/hw/vulkan\.msm8998\.so    u:object_r:same_process_hal_file:s0
 #sysfs
-/sys/devices(/platform)?/soc/caa0000.qcom,jpeg/video4linux/video[0-33]/name(/.*)?   u:object_r:sysfs_jpeg:s0
-/sys/devices(/platform)?/soc/ca00000.qcom,msm-cam/video4linux/video[0-33]/name(/.*)?  u:object_r:sysfs_jpeg:s0
-
-#SSR nodes
-/sys/devices(/platform)?/soc/soc:qcom,ipa_fws@1e08000/subsys[0-9]+/name   u:object_r:sysfs_ssr:s0
-/sys/devices(/platform)?/soc/cce0000.qcom,venus/subsys[0-9]+/name   u:object_r:sysfs_ssr:s0
-/sys/devices(/platform)?/soc/1d0101c.qcom,spss/subsys[0-9]+/name   u:object_r:sysfs_ssr:s0
-/sys/devices(/platform)?/soc/soc:qcom,kgsl-hyp/subsys[0-9]+/name   u:object_r:sysfs_ssr:s0
-/sys/devices(/platform)?/soc/17300000.qcom,lpass/subsys[0-9]+/name   u:object_r:sysfs_ssr:s0
-/sys/devices(/platform)?/soc/5c00000.qcom,ssc/subsys[0-9]+/name   u:object_r:sysfs_ssr:s0
-/sys/devices(/platform)?/soc/4080000.qcom,mss/subsys[0-9]+/name   u:object_r:sysfs_ssr:s0
-/sys/devices(/platform)?/soc/soc:qcom,wil6210/subsys[0-9]+/name   u:object_r:sysfs_ssr:s0
-
-/sys/devices(/platform)?/soc/soc:qcom,ipa_fws@1e08000/subsys[0-9]+/restart_level  u:object_r:sysfs_ssr_toggle:s0
-/sys/devices(/platform)?/soc/cce0000.qcom,venus/subsys[0-9]+/restart_level  u:object_r:sysfs_ssr_toggle:s0
-/sys/devices(/platform)?/soc/1d0101c.qcom,spss/subsys[0-9]+/restart_level  u:object_r:sysfs_ssr_toggle:s0
-/sys/devices(/platform)?/soc/soc:qcom,kgsl-hyp/subsys[0-9]+/restart_level  u:object_r:sysfs_ssr_toggle:s0
-/sys/devices(/platform)?/soc/17300000.qcom,lpass/subsys[0-9]+/restart_level  u:object_r:sysfs_ssr_toggle:s0
-/sys/devices(/platform)?/soc/5c00000.qcom,ssc/subsys[0-9]+/restart_level  u:object_r:sysfs_ssr_toggle:s0
-/sys/devices(/platform)?/soc/4080000.qcom,mss/subsys[0-9]+/restart_level  u:object_r:sysfs_ssr_toggle:s0
-/sys/devices(/platform)?/soc/soc:qcom,wil6210/subsys[0-9]+/restart_level  u:object_r:sysfs_ssr_toggle:s0
+/sys/devices(/platform)?/soc/caa0000.qcom,jpeg/video4linux/video[0-9]+/name(/.*)?   u:object_r:sysfs_jpeg:s0
+/sys/devices(/platform)?/soc/ca00000.qcom,msm-cam/video4linux/video[0-9]+/name(/.*)?  u:object_r:sysfs_jpeg:s0
diff --git a/legacy/vendor/msm8998/genfs_contexts b/legacy/vendor/msm8998/genfs_contexts
index c612119..7ed7e0c 100644
--- a/legacy/vendor/msm8998/genfs_contexts
+++ b/legacy/vendor/msm8998/genfs_contexts
@@ -26,6 +26,31 @@
 # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 ###################################
 
+#rtc sysfs node
+genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-00/800f000.qcom,spmi:qcom,pm8998@0:qcom,pm8998_rtc/rtc u:object_r:sysfs_rtc:s0
+
+#secure touch sysfs node
+genfscon sysfs /devices/soc/c179000.i2c/i2c-5/5-0020 u:object_r:sysfs_sectouch:s0
+
+# msm8998 specific sysfs
+genfscon sysfs /devices/soc/soc:qcom,ipa_fws@1e08000/subsys0/name                                u:object_r:sysfs_ssr:s0
+genfscon sysfs /devices/soc/cce0000.qcom,venus/subsys1/name                                      u:object_r:sysfs_ssr:s0
+genfscon sysfs /devices/soc/1d0101c.qcom,spss/subsys2/name                                       u:object_r:sysfs_ssr:s0
+genfscon sysfs /devices/soc/soc:qcom,kgsl-hyp/subsys3/name                                       u:object_r:sysfs_ssr:s0
+genfscon sysfs /devices/soc/17300000.qcom,lpass/subsys4/name                                     u:object_r:sysfs_ssr:s0
+genfscon sysfs /devices/soc/5c00000.qcom,ssc/subsys5/name                                        u:object_r:sysfs_ssr:s0
+genfscon sysfs /devices/soc/4080000.qcom,mss/subsys6/name                                        u:object_r:sysfs_ssr:s0
+genfscon sysfs /devices/soc/soc:qcom,wil6210/subsys7/name                                        u:object_r:sysfs_ssr:s0
+
+genfscon sysfs /devices/soc/soc:qcom,ipa_fws@1e08000/subsys0/restart_level                       u:object_r:sysfs_ssr_toggle:s0
+genfscon sysfs /devices/soc/cce0000.qcom,venus/subsys1/restart_level                             u:object_r:sysfs_ssr_toggle:s0
+genfscon sysfs /devices/soc/1d0101c.qcom,spss/subsys2/restart_level                              u:object_r:sysfs_ssr_toggle:s0
+genfscon sysfs /devices/soc/soc:qcom,kgsl-hyp/subsys3/restart_level                              u:object_r:sysfs_ssr_toggle:s0
+genfscon sysfs /devices/soc/17300000.qcom,lpass/subsys4/restart_level                            u:object_r:sysfs_ssr_toggle:s0
+genfscon sysfs /devices/soc/5c00000.qcom,ssc/subsys5/restart_level                               u:object_r:sysfs_ssr_toggle:s0
+genfscon sysfs /devices/soc/4080000.qcom,mss/subsys6/restart_level                               u:object_r:sysfs_ssr_toggle:s0
+genfscon sysfs /devices/soc/soc:qcom,wil6210/subsys7/restart_level                               u:object_r:sysfs_ssr_toggle:s0
+
 #vibrator sysfs node
 genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-03/800f000.qcom,spmi:qcom,pmi8998@3:qcom,haptics@c000/leds/vibrator u:object_r:sysfs_leds:s0
 
@@ -36,4 +61,26 @@
 genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qpnp,fg/power_supply/bms            u:object_r:sysfs_battery_supply:s0
 genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,qpnp-smb2/power_supply/usb     u:object_r:sysfs_usb_supply:s0
 genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,qpnp-smb2/power_supply/main    u:object_r:sysfs_battery_supply:s0
+genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,usb-pdphy@1700/usbpd/usbpd0    u:object_r:sysfs_usbpd_device:s0
 genfscon sysfs /devices/soc/c1b5000.i2c/i2c-7/7-0008/c1b5000.i2c:qcom,smb138x@8:qcom,smb1381-charger@1000/power_supply/parallel    u:object_r:sysfs_battery_supply:s0
+genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-03/800f000.qcom,spmi:qcom,pmi8998@3:qcom,leds@d000/leds/red u:object_r:sysfs_graphics:s0
+genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-03/800f000.qcom,spmi:qcom,pmi8998@3:qcom,leds@d000/leds/green u:object_r:sysfs_graphics:s0
+genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-03/800f000.qcom,spmi:qcom,pmi8998@3:qcom,leds@d000/leds/blue u:object_r:sysfs_graphics:s0
+genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-03/800f000.qcom,spmi:qcom,pmi8998@3:qcom,leds@d300/leds u:object_r:sysfs_leds:s0
+genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-03/800f000.qcom,spmi:qcom,pmi8998@3:qcom,leds@d800/leds/wled u:object_r:sysfs_leds:s0
+
+#extcon
+genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,qpnp-smb2/extcon/extcon0/cable.0/name          u:object_r:sysfs_graphics:s0
+genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,qpnp-smb2/extcon/extcon0/cable.1/name          u:object_r:sysfs_graphics:s0
+genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,qpnp-smb2/extcon/extcon0/cable.2/name          u:object_r:sysfs_graphics:s0
+genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,qpnp-smb2/extcon/extcon0/cable.3/name          u:object_r:sysfs_graphics:s0
+genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,usb-pdphy@1700/extcon/extcon1/cable.0/name     u:object_r:sysfs_graphics:s0
+genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,usb-pdphy@1700/extcon/extcon1/cable.1/name     u:object_r:sysfs_graphics:s0
+genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,usb-pdphy@1700/extcon/extcon1/cable.2/name     u:object_r:sysfs_graphics:s0
+genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,usb-pdphy@1700/extcon/extcon1/cable.3/name     u:object_r:sysfs_graphics:s0
+genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,usb-pdphy@1700/extcon/extcon1/cable.4/name     u:object_r:sysfs_graphics:s0
+
+#ufs
+genfscon sysfs /devices/soc/1da4000.ufshc/host0/target0:0:0/0:0:0:0/block/sda/queue/discard_max_bytes           u:object_r:sysfs_mmc_host:s0
+genfscon sysfs /devices/soc/1da4000.ufshc/host0/target0:0:0/0:0:0:0/block/sdb/queue/discard_max_bytes           u:object_r:sysfs_mmc_host:s0
+genfscon sysfs /devices/soc/1da4000.ufshc/host0/target0:0:0/0:0:0:1/block/sdb/queue/discard_max_bytes           u:object_r:sysfs_mmc_host:s0
diff --git a/legacy/vendor/sdm660/file_contexts b/legacy/vendor/sdm660/file_contexts
index 1f59c5a..2b004eb 100644
--- a/legacy/vendor/sdm660/file_contexts
+++ b/legacy/vendor/sdm660/file_contexts
@@ -49,7 +49,7 @@
 /dev/block/platform/soc/c0c4000.sdhci/by-name/mdm1m9kefsc                       u:object_r:efs_boot_dev:s0
 /dev/block/platform/soc/c0c4000.sdhci/by-name/logdump                           u:object_r:logdump_partition:s0
 /dev/block/platform/soc/c0c4000.sdhci/by-name/super                             u:object_r:super_block_device:s0
-
+/dev/block/platform/soc/c0c4000.sdhci/by-name/persist                           u:object_r:persist_block_device:s0
 
 #for UFS blocks
 /dev/block/platform/soc/1da4000.ufshc/by-name/fsc                               u:object_r:modem_efs_partition_device:s0
@@ -74,6 +74,7 @@
 /dev/block/platform/soc/1da4000.ufshc/by-name/mdm1m9kefsc                       u:object_r:efs_boot_dev:s0
 /dev/block/platform/soc/1da4000.ufshc/by-name/logdump                           u:object_r:logdump_partition:s0
 /dev/block/platform/soc/1da4000.ufshc/by-name/super                             u:object_r:super_block_device:s0
+/dev/block/platform/soc/1da4000.ufshc/by-name/persist                           u:object_r:persist_block_device:s0
 
 #Primary storage device nodes
 /dev/mmcblk0rpmb                                                                u:object_r:rpmb_device:s0
@@ -149,17 +150,19 @@
 ############################################################################################
 #Same hal process libs
 #
-/vendor/lib(64)?/hw/gralloc\.sdm660\.so   u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/hw/vulkan\.sdm660\.so    u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/hw/gralloc\.sdm660\.so   u:object_r:same_process_hal_file:s0
+/(vendor|system/vendor)/lib(64)?/hw/vulkan\.sdm660\.so    u:object_r:same_process_hal_file:s0
 
 #/(vendor|system/vendor)/bin/init\.qcom\.debug-sdm660\.sh    u:object_r:qti_init_shell_exec:s0
 /(vendor|system/vendor)/bin/init\.qti\.can\.sh              u:object_r:qti_init_shell_exec:s0
 #sysfs
-/sys/devices(/platform)?/soc/caa0000.qcom,jpeg/video4linux/video[0-33]/name(/.*)?   u:object_r:sysfs_jpeg:s0
-/sys/devices(/platform)?/soc/ca00000.qcom,msm-cam/video4linux/video[0-33]/name(/.*)?  u:object_r:sysfs_jpeg:s0
+/sys/devices(/platform)?/soc/caa0000.qcom,jpeg/video4linux/video[0-9]+/name(/.*)?   u:object_r:sysfs_jpeg:s0
+/sys/devices(/platform)?/soc/ca00000.qcom,msm-cam/video4linux/video[0-9]+/name(/.*)?  u:object_r:sysfs_jpeg:s0
 #sysfs graphics
 /sys/devices/virtual/graphics/fb0/supported_bitclk                  u:object_r:sysfs_graphics:s0
 
 /sys/devices/platform/soc/c0c4000.sdhci/mmc_host/mmc0/mmc0:0001/block/mmcblk0/queue/discard_max_bytes  u:object_r:sysfs_mmc_host:s0
 
 /sys/devices/platform/soc/151c0000.slim/tavil-slim-pgd/wakeup/wakeup[0-9]+(/.*)?     u:object_r:sysfs_wakeup:s0
+
+/sys/devices/soc/780000.qcom,msm-core/uio/uio[0-9]+(/.*)?        u:object_r:sysfs_uio_file:s0
diff --git a/legacy/vendor/sdm660/genfs_contexts b/legacy/vendor/sdm660/genfs_contexts
index 071f40f..650fbb5 100644
--- a/legacy/vendor/sdm660/genfs_contexts
+++ b/legacy/vendor/sdm660/genfs_contexts
@@ -26,6 +26,9 @@
 # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 ###################################
 
+#rtc sysfs node
+genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-00/800f000.qcom,spmi:qcom,pm660@0:qcom,pm660_rtc/rtc u:object_r:sysfs_rtc:s0
+
 #secure touch sysfs node
 genfscon sysfs /devices/soc/c178000.i2c/i2c-4/4-0020 u:object_r:sysfs_sectouch:s0
 
@@ -51,6 +54,12 @@
 genfscon  sysfs /devices/soc/4080000.qcom,mss/subsys0/name                u:object_r:sysfs_ssr:s0
 genfscon  sysfs /devices/soc/soc:qcom,kgsl-hyp/subsys4/name               u:object_r:sysfs_ssr:s0
 
+genfscon sysfs /devices/soc/15700000.qcom,lpass/subsys2/restart_level    u:object_r:sysfs_ssr_toggle:s0
+genfscon sysfs /devices/soc/1a300000.qcom,turing/subsys3/restart_level   u:object_r:sysfs_ssr_toggle:s0
+genfscon sysfs /devices/soc/4080000.qcom,mss/subsys4/restart_level       u:object_r:sysfs_ssr_toggle:s0
+genfscon sysfs /devices/soc/cce0000.qcom,venus/subsys0/restart_level     u:object_r:sysfs_ssr_toggle:s0
+genfscon sysfs /devices/soc/soc:qcom,kgsl-hyp/subsys1/restart_level      u:object_r:sysfs_ssr_toggle:s0
+
 #pmic sysfs_nodes
 genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-00/800f000.qcom,spmi:qcom,pm660@0:qcom,qpnp-smb2/power_supply/battery u:object_r:sysfs_battery_supply:s0
 genfscon sysfs /devices/soc/800f000.qcom,spmi/spmi-0/spmi0-00/800f000.qcom,spmi:qcom,pm660@0:qcom,qpnp-smb2/power_supply/dc u:object_r:sysfs_battery_supply:s0
@@ -81,6 +90,7 @@
 genfscon sysfs /devices/platform/soc/800f000.qcom,spmi/spmi-0/spmi0-03/800f000.qcom,spmi:qcom,pm660l@3:qcom,leds@d000/leds/green u:object_r:sysfs_graphics:s0
 genfscon sysfs /devices/platform/soc/800f000.qcom,spmi/spmi-0/spmi0-03/800f000.qcom,spmi:qcom,pm660l@3:qcom,leds@d000/leds/blue u:object_r:sysfs_graphics:s0
 genfscon sysfs /devices/platform/soc/800f000.qcom,spmi/spmi-0/spmi0-03/800f000.qcom,spmi:qcom,pm660l@3:qcom,leds@d300/leds u:object_r:sysfs_leds:s0
+genfscon sysfs /devices/platform/soc/800f000.qcom,spmi/spmi-0/spmi0-03/800f000.qcom,spmi:qcom,pm660l@3:qcom,leds@d800/backlight u:object_r:sysfs_leds:s0
 
 #cpu-ddr devfreq nodes for K4.14
 genfscon sysfs /devices/platform/soc/soc:qcom,cpu-cpu-ddr-bw/devfreq u:object_r:sysfs_devfreq:s0
diff --git a/legacy/vendor/sdm660/init.te b/legacy/vendor/sdm660/init.te
deleted file mode 100644
index 7dbc1bc..0000000
--- a/legacy/vendor/sdm660/init.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2020, 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.
-
-allow init socket_device:sock_file { unlink setattr create };
-allow init vendor_file:file execute;
diff --git a/legacy/vendor/sdm660/init_shell.te b/legacy/vendor/sdm660/init_shell.te
index 5715401..f21c8e1 100644
--- a/legacy/vendor/sdm660/init_shell.te
+++ b/legacy/vendor/sdm660/init_shell.te
@@ -32,5 +32,5 @@
 #Needed for starting cdsprpcd service post-boot
 set_prop(qti_init_shell, vendor_cdsprpcd_prop)
 #Needed for ctl property denials
-allow qti_init_shell ctl_start_prop:property_service set;
-allow qti_init_shell ctl_stop_prop:property_service set;
+set_prop(qti_init_shell, ctl_start_prop)
+set_prop(qti_init_shell, ctl_stop_prop)
diff --git a/legacy/vendor/sdm660/vendor_init.te b/legacy/vendor/sdm660/vendor_init.te
index b29678c..1fb0054 100644
--- a/legacy/vendor/sdm660/vendor_init.te
+++ b/legacy/vendor/sdm660/vendor_init.te
@@ -25,6 +25,5 @@
 # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-allow vendor_init vendor_freq_prop:property_service set;
-
+set_prop(vendor_init, vendor_freq_prop)
 set_prop(vendor_init, vendor_video_prop);
diff --git a/legacy/vendor/sdm710/device.te b/legacy/vendor/sdm710/device.te
deleted file mode 100644
index 647d226..0000000
--- a/legacy/vendor/sdm710/device.te
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) 2016-2017, 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.
diff --git a/legacy/vendor/sdm710/file_contexts b/legacy/vendor/sdm710/file_contexts
deleted file mode 100644
index 8afcadf..0000000
--- a/legacy/vendor/sdm710/file_contexts
+++ /dev/null
@@ -1,161 +0,0 @@
-# Copyright (c) 2016-2017, 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.
-###################################
-# Dev block nodes
-
-#for rpmb block
-/dev/block/mmcblk0rpmb                                                          u:object_r:rpmb_device:s0
-
-# UFS Devices
-/dev/block/platform/soc/1d84000.ufshc/by-name/system                            u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/userdata                          u:object_r:userdata_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/boot                              u:object_r:boot_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/logdump                           u:object_r:logdump_partition:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/fsc                                u:object_r:modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/fsg                                u:object_r:modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modemst1                           u:object_r:modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modemst2                           u:object_r:modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/ssd                                u:object_r:ssd_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/misc                               u:object_r:misc_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/rpm                                u:object_r:rpmb_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/msadp                              u:object_r:mba_debug_dev:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/recovery                           u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cache                              u:object_r:cache_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/frp                                u:object_r:frp_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtp                               u:object_r:mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/dip                                u:object_r:dip_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/storsec                            u:object_r:boot_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/super                              u:object_r:super_block_device:s0
-
-#rawdump partition
-/dev/block/platform/soc/1d84000.ufshc/by-name/rawdump                            u:object_r:rawdump_block_device:s0
-
-# A/B partitions.
-/dev/block/platform/soc/1d84000.ufshc/by-name/abl_[ab]          u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/apdp_[ab]         u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/boot_[ab]         u:object_r:boot_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cmnlib_[ab]       u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cmnlib64_[ab]     u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/devcfg_[ab]       u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/hyp_[ab]          u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/keymaster_[ab]    u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modem_[ab]        u:object_r:modem_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/bluetooth_[ab]    u:object_r:modem_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/msadp_[ab]        u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/pmic_[ab]         u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/rpm_[ab]          u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/system_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/tz_[ab]           u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vendor_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/xbl_[ab]          u:object_r:xbl_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/aop_[ab]          u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vbmeta_[ab]       u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/dtbo_[ab]         u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/dsp_[ab]          u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtp_[ab]         u:object_r:mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtpsecapp_[ab]   u:object_r:mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/qupfw_[ab]        u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/xbl_config_[ab]   u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/storsec_[ab]      u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/ImageFv_[ab]      u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/recovery_[ab]      u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vbmeta_system_[ab] u:object_r:custom_ab_block_device:s0
-
-#for eMMC
-/dev/block/platform/soc/7c4000.sdhci/by-name/super             u:object_r:super_block_device:s0
-
-# A/B partitions.
-/dev/block/platform/soc/7c4000.sdhci/by-name/abl_[ab]          u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/apdp_[ab]         u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/boot_[ab]         u:object_r:boot_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/cmnlib_[ab]       u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/cmnlib64_[ab]     u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/devcfg_[ab]       u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/hyp_[ab]          u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/keymaster_[ab]    u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/modem_[ab]        u:object_r:modem_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/bluetooth_[ab]    u:object_r:modem_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/msadp_[ab]        u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/pmic_[ab]         u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/rpm_[ab]          u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/system_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/tz_[ab]           u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/vendor_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/xbl_[ab]          u:object_r:xbl_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/aop_[ab]          u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/vbmeta_[ab]       u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/dtbo_[ab]         u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/dsp_[ab]          u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/mdtp_[ab]         u:object_r:mdtp_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/mdtpsecapp_[ab]   u:object_r:mdtp_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/qupfw_[ab]        u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/xbl_config_[ab]   u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/storsec_[ab]      u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/ImageFv_[ab]      u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/recovery_[ab]      u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/vbmeta_system_[ab] u:object_r:custom_ab_block_device:s0
-
-#non A/B
-/dev/block/platform/soc/7c4000.sdhci/by-name/system                            u:object_r:system_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/userdata                          u:object_r:userdata_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/boot                              u:object_r:boot_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/logdump                           u:object_r:logdump_partition:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/fsc                                u:object_r:modem_efs_partition_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/fsg                                u:object_r:modem_efs_partition_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/modemst1                           u:object_r:modem_efs_partition_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/modemst2                           u:object_r:modem_efs_partition_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/ssd                                u:object_r:ssd_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/misc                               u:object_r:misc_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/rpm                                u:object_r:rpmb_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/msadp                              u:object_r:mba_debug_dev:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/recovery                           u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/cache                              u:object_r:cache_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/frp                                u:object_r:frp_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/mdtp                               u:object_r:mdtp_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/dip                                u:object_r:dip_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/storsec                            u:object_r:boot_block_device:s0
-
-#rawdump partition
-/dev/block/platform/soc/7c4000.sdhci/by-name/rawdump                            u:object_r:rawdump_block_device:s0
-
-# Block device holding the GPT, where the A/B attributes are stored.
-/dev/block/mmcblk0                                              u:object_r:root_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/sd[ade]                   u:object_r:gpt_block_device:s0
-
-# Block devices for the drive that holds the xbl_a and xbl_b partitions.
-/dev/block/platform/soc/1d84000.ufshc/sd[bc]                 u:object_r:xbl_block_device:s0
-
-##################################
-# non-hlos mount points
-# FBE
-/(vendor|system/vendor)/bin/init.qti.qseecomd.sh		u:object_r:init-qti-fbe-sh_exec:s0
-
-/vendor/bin/init.qti.chg_policy.sh                              u:object_r:qti_init_shell_exec:s0
-##################################
-# same process HAL libs
-/vendor/lib(64)?/hw/gralloc\.sdm710\.so   u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/hw/vulkan\.sdm710\.so    u:object_r:same_process_hal_file:s0
diff --git a/legacy/vendor/sdm710/genfs_contexts b/legacy/vendor/sdm710/genfs_contexts
deleted file mode 100644
index 6a26798..0000000
--- a/legacy/vendor/sdm710/genfs_contexts
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright (c) 2018, 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.
-###################################
-
-#secure touch sysfs-node
-genfscon sysfs /devices/platform/soc/a84000.i2c/i2c-2/2-0020 u:object_r:sysfs_sectouch:s0
-
-#qdss sysfs-node
-genfscon sysfs /devices/platform/soc/6047000.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/14066f0.hwevent/coresight-hwevent u:object_r:sysfs_qdss_dev:s0
-
-genfscon sysfs /devices/platform/soc/soc:qcom,l3-cdsp/devfreq u:object_r:sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,l3-cdsp/devfreq/soc:qcom,l3-cdsp/userspace u:object_r:sysfs_devfreq_l3cdsp:s0
-
-#net sysfs
-genfscon sysfs /devices/platform/soc/18800000.qcom,icnss/net u:object_r:sysfs_net:s0
-# sdm710 specific sysfs
-genfscon sysfs /devices/platform/soc/soc:qcom,ipa_fws/subsys0/name                                        u:object_r:sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/aae0000.qcom,venus/subsys1/name                                      u:object_r:sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-hyp/subsys2/name                                       u:object_r:sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/62400000.qcom,lpass/subsys3/name                                     u:object_r:sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/8300000.qcom,turing/subsys4/name                                     u:object_r:sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/4080000.qcom,mss/subsys5/name                                        u:object_r:sysfs_ssr:s0
-
-#pmic sysfs_nodes
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm660@0:qcom,qpnp-smb2/power_supply/battery u:object_r:sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm660@0:qcom,qpnp-smb2/power_supply/dc u:object_r:sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm660@0:qcom,qpnp-smb2/power_supply/main u:object_r:sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm660@0:qcom,qpnp-smb2/power_supply/pc_port u:object_r:sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm660@0:qcom,qpnp-smb2/power_supply/usb u:object_r:sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm660@0:qpnp,fg/power_supply/bms u:object_r:sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm660@0:qcom,usb-pdphy@1700/usbpd/usbpd0 u:object_r:sysfs_usbpd_device:s0
-genfscon sysfs /devices/platform/soc/a88000.i2c/i2c-0/0-0008/a88000.i2c:qcom,smb1355@8:qcom,smb1355-charger@1000/power_supply/parallel u:object_r:sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/a88000.i2c/i2c-0/0-000c/a88000.i2c:qcom,smb1355@c:qcom,smb1355-charger@1000/power_supply/parallel u:object_r:sysfs_battery_supply:s0
-genfscon sysfs /class/qcom-battery u:object_r:sysfs_battery_supply:s0
-genfscon sysfs /class/charge_pump u:object_r:sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-03/c440000.qcom,spmi:qcom,pm660l@3:qcom,leds@d000/leds/red u:object_r:sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-03/c440000.qcom,spmi:qcom,pm660l@3:qcom,leds@d000/leds/green u:object_r:sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-03/c440000.qcom,spmi:qcom,pm660l@3:qcom,leds@d000/leds/blue u:object_r:sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-03/c440000.qcom,spmi:qcom,pm660l@3:qcom,leds@d300/leds u:object_r:sysfs_leds:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-03/c440000.qcom,spmi:qcom,pm660l@3:qcom,leds@d800/leds/wled u:object_r:sysfs_leds:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-01/c440000.qcom,spmi:qcom,pm660@1:qcom,haptics@c000/leds/vibrator u:object_r:sysfs_leds:s0
diff --git a/legacy/vendor/sdm710/idmap.te b/legacy/vendor/sdm710/idmap.te
deleted file mode 100755
index e4e085f..0000000
--- a/legacy/vendor/sdm710/idmap.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2017, 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.
-
-#for oemfs
-r_dir_file(idmap, oemfs);
diff --git a/legacy/vendor/sdm710/init-qti-fbe-sh.te b/legacy/vendor/sdm710/init-qti-fbe-sh.te
deleted file mode 100644
index 05bb8dc..0000000
--- a/legacy/vendor/sdm710/init-qti-fbe-sh.te
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright (c) 2017, 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.
-
-type init-qti-fbe-sh, domain;
-type init-qti-fbe-sh_exec, exec_type, file_type, vendor_file_type;
-
-init_daemon_domain(init-qti-fbe-sh)
-
-allow init-qti-fbe-sh vendor_shell_exec:file rx_file_perms;
-
-# execute toybox/toolbox
-allow init-qti-fbe-sh vendor_toolbox_exec:file rx_file_perms;
-get_prop(init-qti-fbe-sh, vendor_tee_listener_prop)
diff --git a/legacy/vendor/sdm710/init_shell.te b/legacy/vendor/sdm710/init_shell.te
deleted file mode 100644
index 413d6a1..0000000
--- a/legacy/vendor/sdm710/init_shell.te
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (c) 2017-2018, 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.
-
-# media_sdm710_version_prop - to choose target version specific media_codecs.xml
-allow qti_init_shell {
-    vendor_media_sdm710_version_prop
-}:property_service set;
-
-# For regionalization
-allow qti_init_shell regionalization_file:dir r_dir_perms;
-allow qti_init_shell regionalization_file:file create_file_perms;
-
-r_dir_file(qti_init_shell, sysfs_devfreq_l3cdsp)
-allow qti_init_shell sysfs_devfreq_l3cdsp:file setattr;
diff --git a/legacy/vendor/sdm710/mediacodec.te b/legacy/vendor/sdm710/mediacodec.te
deleted file mode 100644
index 448eae9..0000000
--- a/legacy/vendor/sdm710/mediacodec.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2018, 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.
-
-get_prop(mediacodec,  vendor_media_sdm710_version_prop)
diff --git a/legacy/vendor/sdm710/mediaserver.te b/legacy/vendor/sdm710/mediaserver.te
deleted file mode 100644
index 24315d3..0000000
--- a/legacy/vendor/sdm710/mediaserver.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2017, 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.
-
-get_prop(mediaserver,  vendor_media_sdm710_version_prop)
diff --git a/legacy/vendor/sdm710/platform_app.te b/legacy/vendor/sdm710/platform_app.te
deleted file mode 100755
index 9e0a50d..0000000
--- a/legacy/vendor/sdm710/platform_app.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2017, 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.
-
-#for oemfs
-allow platform_app oemfs:lnk_file { read getattr };
diff --git a/legacy/vendor/sdm710/priv_app.te b/legacy/vendor/sdm710/priv_app.te
deleted file mode 100755
index 144af71..0000000
--- a/legacy/vendor/sdm710/priv_app.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2017, 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.
-
-#for oemfs
-allow priv_app oemfs:lnk_file { read getattr };
diff --git a/legacy/vendor/sdm710/property.te b/legacy/vendor/sdm710/property.te
deleted file mode 100644
index b7ddb79..0000000
--- a/legacy/vendor/sdm710/property.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2017, 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.
-
-#properites for init.qcom.sh script
-type vendor_media_sdm710_version_prop, property_type;
diff --git a/legacy/vendor/sdm710/property_contexts b/legacy/vendor/sdm710/property_contexts
deleted file mode 100644
index d8d8824..0000000
--- a/legacy/vendor/sdm710/property_contexts
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2017, 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.
-
-vendor.media.sdm710.version      u:object_r:vendor_media_sdm710_version_prop:s0
diff --git a/legacy/vendor/sdm710/system_server.te b/legacy/vendor/sdm710/system_server.te
deleted file mode 100755
index 87b7234..0000000
--- a/legacy/vendor/sdm710/system_server.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2017, 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.
-
-allow system_server resourcecache_data_file:dir create_dir_perms;
-allow system_server resourcecache_data_file:file create_file_perms;
diff --git a/legacy/vendor/sdm710/untrusted_app.te b/legacy/vendor/sdm710/untrusted_app.te
deleted file mode 100644
index 1d3ae48..0000000
--- a/legacy/vendor/sdm710/untrusted_app.te
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (c) 2017, 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.
-
-
-# for oemfs
-allow untrusted_app oemfs:lnk_file { read getattr };
diff --git a/legacy/vendor/sdm710/update_engine_common.te b/legacy/vendor/sdm710/update_engine_common.te
deleted file mode 100644
index c025eb4..0000000
--- a/legacy/vendor/sdm710/update_engine_common.te
+++ /dev/null
@@ -1,47 +0,0 @@
-# Copyright (c) 2017, 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.
-
-# Allow update_engine and update_engine_sideload (recovery) read/write on the
-# device-specific partitions it should update.
-allow update_engine_common {
-	custom_ab_block_device
-	xbl_block_device
-	ssd_device
-	modem_block_device
-	root_block_device
-	system_block_device
-	boot_block_device
-	mdtp_device
-        recovery_block_device
-}:blk_file rw_file_perms;
-
-allow update_engine_common tmpfs:lnk_file r_file_perms;
-allow update_engine_common metadata_file:dir search;
-allow update_engine_common {adsprpcd_file firmware_file}:dir search;
-allow update_engine_common {bt_firmware_file firmware_file}:filesystem getattr;
-
-dontaudit update_engine_common self:capability {dac_read_search dac_override};
diff --git a/legacy/vendor/sdm710/zygote.te b/legacy/vendor/sdm710/zygote.te
deleted file mode 100644
index b769d60..0000000
--- a/legacy/vendor/sdm710/zygote.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2017, 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.
-
-# For regionalization
-r_dir_file(zygote, oemfs);
diff --git a/legacy/vendor/sdm845/device.te b/legacy/vendor/sdm845/device.te
deleted file mode 100644
index 647d226..0000000
--- a/legacy/vendor/sdm845/device.te
+++ /dev/null
@@ -1,26 +0,0 @@
-# Copyright (c) 2016-2017, 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.
diff --git a/legacy/vendor/sdm845/file_contexts b/legacy/vendor/sdm845/file_contexts
deleted file mode 100644
index 976d033..0000000
--- a/legacy/vendor/sdm845/file_contexts
+++ /dev/null
@@ -1,103 +0,0 @@
-# Copyright (c) 2016-2017, 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.
-###################################
-# Dev block nodes
-
-# UFS Devices
-/dev/block/platform/soc/1d84000.ufshc/by-name/system                            u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/userdata                          u:object_r:userdata_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/boot                              u:object_r:boot_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/logdump                           u:object_r:logdump_partition:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/fsc                                u:object_r:modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/fsg                                u:object_r:modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modemst1                           u:object_r:modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modemst2                           u:object_r:modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/ssd                                u:object_r:ssd_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/misc                               u:object_r:misc_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/rpm                                u:object_r:rpmb_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/msadp                              u:object_r:mba_debug_dev:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/recovery                           u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cache                              u:object_r:cache_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/frp                                u:object_r:frp_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtp                               u:object_r:mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/dip                                u:object_r:dip_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/storsec                            u:object_r:boot_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/super                              u:object_r:super_block_device:s0
-
-#rawdump partition
-/dev/block/platform/soc/1d84000.ufshc/by-name/rawdump                            u:object_r:rawdump_block_device:s0
-
-# A/B partitions.
-/dev/block/platform/soc/1d84000.ufshc/by-name/abl_[ab]          u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/apdp_[ab]         u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/boot_[ab]         u:object_r:boot_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cmnlib_[ab]       u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cmnlib64_[ab]     u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/devcfg_[ab]       u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/hyp_[ab]          u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/keymaster_[ab]    u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modem_[ab]        u:object_r:modem_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/bluetooth_[ab]    u:object_r:modem_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/msadp_[ab]        u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/pmic_[ab]         u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/rpm_[ab]          u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/system_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/tz_[ab]           u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vendor_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/xbl_[ab]          u:object_r:xbl_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/aop_[ab]          u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vbmeta_[ab]       u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/dtbo_[ab]         u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/dsp_[ab]          u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtp_[ab]         u:object_r:mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtpsecapp_[ab]   u:object_r:mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/qupfw_[ab]        u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/xbl_config_[ab]   u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/storsec_[ab]      u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/ImageFv_[ab]      u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/persist           u:object_r:persist_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/recovery_[ab]     u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vbmeta_system_[ab]  u:object_r:custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/uefisecapp_[ab]     u:object_r:uefi_block_device:s0
-
-# Block device holding the GPT, where the A/B attributes are stored.
-/dev/block/platform/soc/1d84000.ufshc/sd[ade]                   u:object_r:gpt_block_device:s0
-
-# Block devices for the drive that holds the xbl_a and xbl_b partitions.
-/dev/block/platform/soc/1d84000.ufshc/sd[bc]                 u:object_r:xbl_block_device:s0
-
-##################################
-# non-hlos mount points
-# FBE
-/(vendor|system/vendor)/bin/init.qti.qseecomd.sh		u:object_r:init-qti-fbe-sh_exec:s0
-
-/vendor/bin/init.qti.chg_policy.sh                  u:object_r:qti_init_shell_exec:s0
-
-# Same process file
-/vendor/lib(64)?/hw/gralloc\.sdm845\.so   u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/hw/vulkan\.sdm845\.so    u:object_r:same_process_hal_file:s0
-/(vendor|system/vendor)/bin/sscrpcd       u:object_r:sensors_exec:s0
diff --git a/legacy/vendor/sdm845/genfs_contexts b/legacy/vendor/sdm845/genfs_contexts
deleted file mode 100644
index 7c3f7da..0000000
--- a/legacy/vendor/sdm845/genfs_contexts
+++ /dev/null
@@ -1,75 +0,0 @@
-# Copyright (c) 2018, 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.
-###################################
-
-#secure touch sysfs node
-genfscon sysfs /devices/platform/soc/a98000.i2c/i2c-2/2-0020 u:object_r:sysfs_sectouch:s0
-
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm8998@0:qcom,pm8998_rtc/rtc u:object_r:sysfs_rtc:s0
-
-#qdss sysfs-node
-genfscon sysfs /devices/platform/soc/6047000.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/14066f0.hwevent/coresight-hwevent u:object_r:sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/6b0e000.csr/coresight-swao-csr u:object_r:sysfs_qdss_dev:s0
-
-genfscon sysfs /devices/platform/soc/soc:qcom,l3-cdsp/devfreq u:object_r:sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,l3-cdsp/devfreq/soc:qcom,l3-cdsp/userspace u:object_r:sysfs_devfreq_l3cdsp:s0
-
-# sdm845 specific sysfs
-genfscon sysfs /devices/platform/soc/17d41000.qcom,cpucc/17d41000.qcom,cpucc:qcom,wil6210/subsys8/name    u:object_r:sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/188101c.qcom,spss/subsys0/name                                       u:object_r:sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/aae0000.qcom,venus/subsys1/name                                      u:object_r:sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,ipa_fws/subsys2/name                                        u:object_r:sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-hyp/subsys3/name                                       u:object_r:sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/17300000.qcom,lpass/subsys4/name                                     u:object_r:sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/5c00000.qcom,ssc/subsys5/name                                        u:object_r:sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/8300000.qcom,turing/subsys6/name                                     u:object_r:sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/4080000.qcom,mss/subsys7/name                                        u:object_r:sysfs_ssr:s0
-
-#net sysfs
-genfscon sysfs /devices/platform/soc/18800000.qcom,icnss/net u:object_r:sysfs_net:s0
-
-#pmic sysfs_nodes
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pmi8998@2:qcom,qpnp-smb2/power_supply/battery u:object_r:sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pmi8998@2:qcom,qpnp-smb2/power_supply/dc u:object_r:sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pmi8998@2:qcom,qpnp-smb2/power_supply/main u:object_r:sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pmi8998@2:qcom,qpnp-smb2/power_supply/pc_port u:object_r:sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pmi8998@2:qcom,qpnp-smb2/power_supply/usb u:object_r:sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pmi8998@2:qpnp,fg/power_supply/bms u:object_r:sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-02/c440000.qcom,spmi:qcom,pmi8998@2:qcom,usb-pdphy@1700/usbpd/usbpd0 u:object_r:sysfs_usbpd_device:s0
-genfscon sysfs /devices/platform/soc/a88000.i2c/i2c-0/0-0008/a88000.i2c:qcom,smb1355@8:qcom,smb1355-charger@1000/power_supply/parallel u:object_r:sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/a88000.i2c/i2c-0/0-000c/a88000.i2c:qcom,smb1355@c:qcom,smb1355-charger@1000/power_supply/parallel u:object_r:sysfs_battery_supply:s0
-genfscon sysfs /class/qcom-battery u:object_r:sysfs_battery_supply:s0
-genfscon sysfs /class/charge_pump u:object_r:sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-03/c440000.qcom,spmi:qcom,pmi8998@3:qcom,leds@d000/leds/red u:object_r:sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-03/c440000.qcom,spmi:qcom,pmi8998@3:qcom,leds@d000/leds/green u:object_r:sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-03/c440000.qcom,spmi:qcom,pmi8998@3:qcom,leds@d000/leds/blue u:object_r:sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-03/c440000.qcom,spmi:qcom,pmi8998@3:qcom,leds@d300/leds u:object_r:sysfs_leds:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-03/c440000.qcom,spmi:qcom,pmi8998@3:qcom,leds@d800/leds/wled u:object_r:sysfs_leds:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-03/c440000.qcom,spmi:qcom,pmi8998@3:qcom,haptics@c000/leds/vibrator u:object_r:sysfs_leds:s0
diff --git a/legacy/vendor/sdm845/idmap.te b/legacy/vendor/sdm845/idmap.te
deleted file mode 100755
index 5a17b25..0000000
--- a/legacy/vendor/sdm845/idmap.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2016, 2018 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.
-
-#for oemfs
-r_dir_file(idmap, oemfs);
diff --git a/legacy/vendor/sdm845/init-qti-fbe-sh.te b/legacy/vendor/sdm845/init-qti-fbe-sh.te
deleted file mode 100644
index aff8576..0000000
--- a/legacy/vendor/sdm845/init-qti-fbe-sh.te
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (c) 2017, 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.
-
-type init-qti-fbe-sh, domain;
-type init-qti-fbe-sh_exec, exec_type, file_type, vendor_file_type;
-
-init_daemon_domain(init-qti-fbe-sh)
-
-not_full_treble(`allow init-qti-fbe-sh shell_exec:file rx_file_perms;')
-full_treble_only(`allow init-qti-fbe-sh vendor_shell_exec:file rx_file_perms;')
-# execute toybox/toolbox
-not_full_treble(`allow init-qti-fbe-sh toolbox_exec:file rx_file_perms;')
-full_treble_only(`allow init-qti-fbe-sh vendor_toolbox_exec:file rx_file_perms;')
-get_prop(init-qti-fbe-sh, vendor_tee_listener_prop)
diff --git a/legacy/vendor/sdm845/init_shell.te b/legacy/vendor/sdm845/init_shell.te
deleted file mode 100755
index 7896ffe..0000000
--- a/legacy/vendor/sdm845/init_shell.te
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (c) 2016, 2018, 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.
-
-
-# For regionalization
-allow qti_init_shell regionalization_file:dir r_dir_perms;
-allow qti_init_shell regionalization_file:file create_file_perms;
-
-r_dir_file(qti_init_shell, sysfs_devfreq_l3cdsp)
-allow qti_init_shell sysfs_devfreq_l3cdsp:file setattr;
diff --git a/legacy/vendor/sdm845/platform_app.te b/legacy/vendor/sdm845/platform_app.te
deleted file mode 100755
index bc02a19..0000000
--- a/legacy/vendor/sdm845/platform_app.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2016, 2018, 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.
-
-#for oemfs
-allow platform_app oemfs:lnk_file { read getattr };
diff --git a/legacy/vendor/sdm845/priv_app.te b/legacy/vendor/sdm845/priv_app.te
deleted file mode 100755
index e0a8fa3..0000000
--- a/legacy/vendor/sdm845/priv_app.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2016, 2018, 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.
-
-#for oemfs
-allow priv_app oemfs:lnk_file { read getattr };
diff --git a/legacy/vendor/sdm845/system_server.te b/legacy/vendor/sdm845/system_server.te
deleted file mode 100755
index d2cb28e..0000000
--- a/legacy/vendor/sdm845/system_server.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2016, 2018, 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.
-
-allow system_server resourcecache_data_file:dir create_dir_perms;
-allow system_server resourcecache_data_file:file create_file_perms;
diff --git a/legacy/vendor/sdm845/update_engine_common.te b/legacy/vendor/sdm845/update_engine_common.te
deleted file mode 100644
index 8631c93..0000000
--- a/legacy/vendor/sdm845/update_engine_common.te
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright (c) 2017, 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.
-
-# Allow update_engine and update_engine_sideload (recovery) read/write on the
-# device-specific partitions it should update.
-allow update_engine_common {
-	custom_ab_block_device
-	xbl_block_device
-	ssd_device
-	modem_block_device
-        uefi_block_device
-        recovery_block_device
-}:blk_file rw_file_perms;
-
-allow update_engine_common tmpfs:lnk_file r_file_perms;
-allow update_engine_common metadata_file:dir search;
-allow update_engine_common {adsprpcd_file firmware_file}:dir search;
-allow update_engine_common {bt_firmware_file firmware_file}:filesystem getattr;
-
-dontaudit update_engine_common self:capability {dac_read_search dac_override};
diff --git a/legacy/vendor/ssg/keys.conf b/legacy/vendor/ssg/keys.conf
index 3448a87..ea56366 100644
--- a/legacy/vendor/ssg/keys.conf
+++ b/legacy/vendor/ssg/keys.conf
@@ -26,4 +26,4 @@
 # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 [@SSG]
-ALL : device/qcom/sepolicy/legacy/vendor/ssg/ssg_app_cert.x509.pem
+ALL : device/qcom/sepolicy-legacy-um/legacy/vendor/ssg/ssg_app_cert.x509.pem
diff --git a/legacy/vendor/test/debugfs/file.te b/legacy/vendor/test/debugfs/file.te
new file mode 100644
index 0000000..dd3feab
--- /dev/null
+++ b/legacy/vendor/test/debugfs/file.te
@@ -0,0 +1,30 @@
+# 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.
+
+# /sys/kernel/debug/binder/state file
+# read by system_server only in userdebug builds
+type binder_state, file_type, debugfs_type;
diff --git a/legacy/vendor/test/debugfs/file_contexts b/legacy/vendor/test/debugfs/file_contexts
new file mode 100644
index 0000000..d6ce18e
--- /dev/null
+++ b/legacy/vendor/test/debugfs/file_contexts
@@ -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.
+
+/sys/kernel/debug/dsi_dual_samsung_cmd(/.*)?                    u:object_r:qti_debugfs:s0
+/sys/kernel/debug/binder/state                                  u:object_r:binder_state:s0
diff --git a/legacy/vendor/test/genfs_contexts b/legacy/vendor/test/debugfs/genfs_contexts
similarity index 100%
rename from legacy/vendor/test/genfs_contexts
rename to legacy/vendor/test/debugfs/genfs_contexts
diff --git a/legacy/vendor/test/dumpstate.te b/legacy/vendor/test/dumpstate.te
index 94a705d..244a36a 100644
--- a/legacy/vendor/test/dumpstate.te
+++ b/legacy/vendor/test/dumpstate.te
@@ -25,4 +25,8 @@
 # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-allow dumpstate binder_state:file r_file_perms;
+no_debugfs_restriction(`
+  userdebug_or_eng(`
+    allow dumpstate binder_state:file r_file_perms;
+  ')
+')
diff --git a/legacy/vendor/test/energyawareness.te b/legacy/vendor/test/energyawareness.te
index 0ef47fa..2d5ee42 100644
--- a/legacy/vendor/test/energyawareness.te
+++ b/legacy/vendor/test/energyawareness.te
@@ -27,7 +27,9 @@
 
 #Access to power costs for testing
 
-userdebug_or_eng(`
-allow energyawareness qti_debugfs:dir r_dir_perms;
-allow energyawareness qti_debugfs:file rw_file_perms;
+no_debugfs_restriction(`
+  userdebug_or_eng(`
+    allow energyawareness qti_debugfs:dir r_dir_perms;
+    allow energyawareness qti_debugfs:file rw_file_perms;
+  ')
 ')
diff --git a/legacy/vendor/test/fidotest.te b/legacy/vendor/test/fidotest.te
index c0b8a75..12e881b 100644
--- a/legacy/vendor/test/fidotest.te
+++ b/legacy/vendor/test/fidotest.te
@@ -44,9 +44,6 @@
   #Allow fido test daemons to be registered with service manager
   #allow fidotest fidotest_service:service_manager add;
 
-  # Allow communication with init over property server
-  unix_socket_connect(fidotest, property, init);
-
   # Allow access to tee device
   allow fidotest tee_device:chr_file rw_file_perms;
 
diff --git a/legacy/vendor/test/file.te b/legacy/vendor/test/file.te
index a909ad9..2a8e55a 100644
--- a/legacy/vendor/test/file.te
+++ b/legacy/vendor/test/file.te
@@ -31,9 +31,5 @@
 # To allow GPU application to read "/data/misc/gpu" path
 type system_gles_data_file, core_data_file_type, file_type, data_file_type;
 
-# /sys/kernel/debug/binder/state file
-# read by system_server only in userdebug builds
-type binder_state, file_type, debugfs_type;
-
 # sensors data file type for script access by test apps
 type sensors_data_file, file_type, data_file_type, core_data_file_type;
\ No newline at end of file
diff --git a/legacy/vendor/test/file_contexts b/legacy/vendor/test/file_contexts
index 52afa23..53b7b2a 100644
--- a/legacy/vendor/test/file_contexts
+++ b/legacy/vendor/test/file_contexts
@@ -93,7 +93,6 @@
 /(vendor|system/vendor)/bin/sns.*               u:object_r:sensors_test_exec:s0
 #for testscripts support
 /(vendor|system/vendor)/bin/init\.qcom\.vendor\.testscripts\.sh u:object_r:vendor-qti-testscripts_exec:s0
-/sys/kernel/debug/dsi_dual_samsung_cmd(/.*)?                    u:object_r:qti_debugfs:s0
 
 #Context for GPU applications
 /data/vendor/gpu(/.*)?                                          u:object_r:vendor_gles_data_file:s0
@@ -101,7 +100,5 @@
 #Used only in debug build to enable gpu config settings
 /data/misc/gpu(/.*)?                                            u:object_r:system_gles_data_file:s0
 
-/sys/kernel/debug/binder/state                                  u:object_r:binder_state:s0
-
 # Sensors scripts for test app
-/data/sensors/scripts(/.*)?                                     u:object_r:sensors_data_file:s0
\ No newline at end of file
+/data/sensors/scripts(/.*)?                                     u:object_r:sensors_data_file:s0
diff --git a/legacy/vendor/test/init.te b/legacy/vendor/test/init.te
index 8c3ff0b..20206e0 100644
--- a/legacy/vendor/test/init.te
+++ b/legacy/vendor/test/init.te
@@ -25,5 +25,8 @@
 # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-allow init binder_state:file r_file_perms;
-
+no_debugfs_restriction(`
+  userdebug_or_eng(`
+    allow init binder_state:file r_file_perms;
+  ')
+')
diff --git a/legacy/vendor/test/qseeproxysample.te b/legacy/vendor/test/qseeproxysample.te
index a21e83d..e0a14fa 100644
--- a/legacy/vendor/test/qseeproxysample.te
+++ b/legacy/vendor/test/qseeproxysample.te
@@ -45,9 +45,6 @@
   #Allow test daemon to use system_server via binder to check caller identity
   binder_call(qseeproxysample, system_server)
 
-  # Allow communication with init over property server
-  unix_socket_connect(qseeproxysample, property, init);
-
   # Allow access to tee device
   allow qseeproxysample tee_device:chr_file rw_file_perms;
 
diff --git a/legacy/vendor/test/system_server.te b/legacy/vendor/test/system_server.te
index 8accae9..3679b26 100644
--- a/legacy/vendor/test/system_server.te
+++ b/legacy/vendor/test/system_server.te
@@ -25,4 +25,8 @@
 # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-allow system_server binder_state:file r_file_perms;
+no_debugfs_restriction(`
+  userdebug_or_eng(`
+    allow system_server binder_state:file r_file_perms;
+  ')
+')
diff --git a/legacy/vendor/test/vendor_init.te b/legacy/vendor/test/vendor_init.te
index e92bb85..9e4a393 100644
--- a/legacy/vendor/test/vendor_init.te
+++ b/legacy/vendor/test/vendor_init.te
@@ -25,5 +25,8 @@
 # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
 # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-allow vendor_init binder_state:file r_file_perms;
-
+no_debugfs_restriction(`
+  userdebug_or_eng(`
+    allow vendor_init binder_state:file r_file_perms;
+  ')
+')
diff --git a/qva/private/fm_app.te b/qva/private/fm_app.te
index 265f229..b4b6113 100644
--- a/qva/private/fm_app.te
+++ b/qva/private/fm_app.te
@@ -35,5 +35,6 @@
 binder_call(vendor_fm_app, gpuservice)
 allow vendor_fm_app radio_service:service_manager find;
 allow vendor_fm_app audioserver_service:service_manager find;
+allow vendor_fm_app mediametrics_service:service_manager find;
 allow vendor_fm_app mediaserver_service:service_manager find;
 allow vendor_fm_app app_api_service:service_manager find;
diff --git a/qva/private/property_contexts b/qva/private/property_contexts
index 59c6ffd..48e8780 100644
--- a/qva/private/property_contexts
+++ b/qva/private/property_contexts
@@ -35,7 +35,6 @@
 vendor.pts.                                u:object_r:bluetooth_prop:s0
 vendor.bt.pts.                             u:object_r:bluetooth_prop:s0
 vendor.bluetooth.                          u:object_r:bluetooth_prop:s0
-vendor.camera.aux.packagelist              u:object_r:vendor_persist_camera_prop:s0
 persist.vendor.camera.privapp.list         u:object_r:vendor_persist_camera_prop:s0
 
 #mm-parser
diff --git a/qva/private/service_contexts b/qva/private/service_contexts
index 2e158d0..d353bd6 100644
--- a/qva/private/service_contexts
+++ b/qva/private/service_contexts
@@ -31,6 +31,7 @@
 vendor.qdtservice                              u:object_r:vendor_qdt_service:s0
 sms-sec                                        u:object_r:radio_service:s0
 extphone                                       u:object_r:radio_service:s0
+qti.ims.ext                                    u:object_r:radio_service:s0
 qti.radio.extphone                             u:object_r:radio_service:s0
 com.qualcomm.location.izat.IzatService         u:object_r:vendor_izat_service:s0
 qti.security.seempspa                          u:object_r:vendor_seemp_service:s0
diff --git a/qva/private/wfdservice.te b/qva/private/wfdservice.te
index 3a61c6e..427524a 100644
--- a/qva/private/wfdservice.te
+++ b/qva/private/wfdservice.te
@@ -68,9 +68,6 @@
 #Allow access to encoder for YUV statistics
 allow wfdservice gpu_device:chr_file rw_file_perms;
 
-#Allow communication with init over property server
-unix_socket_connect(wfdservice, property, init);
-
 #Allow access to /dev/video/* devices for encoding/decoding
 allow wfdservice video_device:chr_file rw_file_perms;
 allow wfdservice video_device:dir r_dir_perms;
diff --git a/qva/product/private/hwservice_contexts b/qva/product/private/hwservice_contexts
deleted file mode 100644
index 9a6ccd8..0000000
--- a/qva/product/private/hwservice_contexts
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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.
-
-vendor.qti.hardware.systemhelper::ISystemResource         u:object_r:vendor_hal_systemhelper_hwservice:s0
-vendor.qti.hardware.systemhelper::ISystemEvent            u:object_r:vendor_hal_systemhelper_hwservice:s0
diff --git a/qva/public/property.te b/qva/public/property.te
index 8b5e65c..9fa59de 100644
--- a/qva/public/property.te
+++ b/qva/public/property.te
@@ -26,7 +26,6 @@
 # IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 system_restricted_prop(vendor_persist_dpm_prop)
-system_restricted_prop(vendor_persist_camera_prop)
 
 # this is vendor defined property  and added with prefix vendor
 # which is going to be working from system
diff --git a/qva/vendor/atoll/device.te b/qva/vendor/atoll/device.te
deleted file mode 100755
index 28e7e54..0000000
--- a/qva/vendor/atoll/device.te
+++ /dev/null
@@ -1,32 +0,0 @@
-# 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.
-
-#logdump partition
-type vendor_logdump_partition, dev_type;
-type vendor_mba_debug_dev, dev_type;
-type vendor_dip_device, dev_type;
-type vendor_rawdump_block_device, dev_type;
diff --git a/qva/vendor/atoll/file.te b/qva/vendor/atoll/file.te
deleted file mode 100644
index 4e2b1fd..0000000
--- a/qva/vendor/atoll/file.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_sysfs_fps_attr, fs_type, sysfs_type;
diff --git a/qva/vendor/atoll/file_contexts b/qva/vendor/atoll/file_contexts
deleted file mode 100644
index 7a6f5b5..0000000
--- a/qva/vendor/atoll/file_contexts
+++ /dev/null
@@ -1,170 +0,0 @@
-# Copyright (c) 2016-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.
-###################################
-# Dev block nodes
-
-#Primary storage device nodes
-/dev/block/mmcblk0rpmb                                                          u:object_r:vendor_rpmb_device:s0
-/dev/block/mmcblk0                                                              u:object_r:root_block_device:s0
-
-# UFS Devices
-/dev/block/platform/soc/1d84000.ufshc/by-name/system                            u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/metadata                            u:object_r:metadata_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/userdata                          u:object_r:userdata_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/boot                              u:object_r:boot_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/logdump                           u:object_r:vendor_logdump_partition:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/fsc                                u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/fsg                                u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modemst1                           u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modemst2                           u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/ssd                                u:object_r:vendor_ssd_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/misc                               u:object_r:misc_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/rpm                                u:object_r:vendor_rpmb_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/msadp                              u:object_r:vendor_mba_debug_dev:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/recovery                           u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cache                              u:object_r:cache_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/frp                                u:object_r:frp_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtp                               u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/dip                                u:object_r:vendor_dip_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/super                              u:object_r:super_block_device:s0
-
-#rawdump partition
-/dev/block/platform/soc/1d84000.ufshc/by-name/rawdump                            u:object_r:vendor_rawdump_block_device:s0
-
-# A/B partitions.
-/dev/block/platform/soc/1d84000.ufshc/by-name/abl_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/aop_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/apdp_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/bluetooth_[ab]    u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/boot_[ab]         u:object_r:boot_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cmnlib_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cmnlib64_[ab]     u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/devcfg_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/dsp_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/dtbo_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/hyp_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/keymaster_[ab]    u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtp_[ab]         u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtpsecapp_[ab]   u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modem_[ab]        u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/msadp_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/persist           u:object_r:vendor_persist_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/pmic_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/qupfw_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/rpm_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/system_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/tz_[ab]           u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vbmeta_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vendor_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/xbl_[ab]          u:object_r:vendor_xbl_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/xbl_config_[ab]   u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/imagefv_[ab]      u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/uefisecapp_[ab]   u:object_r:vendor_uefi_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vbmeta_system_[ab]     u:object_r:vendor_custom_ab_block_device:s0
-
-# Block device holding the GPT, where the A/B attributes are stored.
-/dev/block/platform/soc/1d84000.ufshc/sd[ade]                   u:object_r:vendor_gpt_block_device:s0
-
-# Block devices for the drive that holds the xbl_a and xbl_b partitions.
-/dev/block/platform/soc/1d84000.ufshc/sd[bc]                 u:object_r:vendor_xbl_block_device:s0
-
-##################################
-# non-hlos mount points
-/firmware                  u:object_r:firmware_file:s0
-/bt_firmware               u:object_r:bt_firmware_file:s0
-
-#for eMMC
-/dev/block/platform/soc/7c4000.sdhci/by-name/abl_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/apdp_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/boot_[ab]         u:object_r:boot_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/cmnlib_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/cmnlib64_[ab]     u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/devcfg_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/hyp_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/keymaster_[ab]    u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/modem_[ab]        u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/bluetooth_[ab]    u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/msadp_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/pmic_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/rpm_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/system_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/tz_[ab]           u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/vendor_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/xbl_[ab]          u:object_r:vendor_xbl_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/aop_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/vbmeta_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/dtbo_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/dsp_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/mdtp_[ab]         u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/mdtpsecapp_[ab]   u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/qupfw_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/xbl_config_[ab]   u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/storsec_[ab]      u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/imagefv_[ab]      u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/uefisecapp_[ab]   u:object_r:vendor_uefi_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/vbmeta_system_[ab]     u:object_r:vendor_custom_ab_block_device:s0
-
-#non A/B
-/dev/block/platform/soc/7c4000.sdhci/by-name/system                            u:object_r:system_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/metadata                            u:object_r:metadata_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/userdata                          u:object_r:userdata_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/boot                              u:object_r:boot_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/logdump                           u:object_r:vendor_logdump_partition:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/fsc                                u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/fsg                                u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/modemst1                           u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/modemst2                           u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/ssd                                u:object_r:vendor_ssd_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/misc                               u:object_r:misc_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/rpm                                u:object_r:vendor_rpmb_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/msadp                              u:object_r:vendor_mba_debug_dev:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/recovery                           u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/cache                              u:object_r:cache_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/frp                                u:object_r:frp_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/mdtp                               u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/dip                                u:object_r:vendor_dip_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/storsec                            u:object_r:boot_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/persist                            u:object_r:vendor_persist_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/super                              u:object_r:super_block_device:s0
-
-#rawdump partition
-/dev/block/platform/soc/7c4000.sdhci/by-name/rawdump                            u:object_r:vendor_rawdump_block_device:s0
-
-# FBE
-/(vendor|system/vendor)/bin/init.qti.qseecomd.sh                                u:object_r:vendor_init-qti-fbe-sh_exec:s0
-/(vendor|system/vendor)/bin/init\.qti\.can\.sh                                  u:object_r:vendor_qti_init_shell_exec:s0
-
-#QFPROM0 file access
-/sys/devices/platform/soc/786018.qfprom/qfprom0/nvmem                           u:object_r:vendor_sysfs_qfprom:s0
-
-#FPC
-/sys/devices/platform/soc/soc:fpc1020(/.*?) u:object_r:vendor_sysfs_fps_attr:s0
-/sys/devices/platform/soc/200f000.qcom,spmi/spmi-0/spmi0-03/200f000.qcom,spmi:qcom,pmi632@3:qcom,leds@d000/modalias u:object_r:vendor_sysfs_fps_attr:s0
-
-#Same process file
-/vendor/lib(64)?/hw/gralloc\.atoll\.so                            u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/hw/vulkan\.atoll\.so                             u:object_r:same_process_hal_file:s0
diff --git a/qva/vendor/atoll/genfs_contexts b/qva/vendor/atoll/genfs_contexts
deleted file mode 100644
index fc813e2..0000000
--- a/qva/vendor/atoll/genfs_contexts
+++ /dev/null
@@ -1,108 +0,0 @@
-# Copyright (c) 2018, 2020, 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.
-###################################
-
-#pmic sysfs_nodes
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qcom,qpnp-smb5/power_supply/battery u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qcom,qpnp-smb5/power_supply/dc u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qcom,qpnp-smb5/power_supply/main u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qcom,qpnp-smb5/power_supply/pc_port u:object_r:vendor_sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qcom,qpnp-smb5/power_supply/usb u:object_r:vendor_sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qcom,usb-pdphy@1700/usbpd/usbpd0 u:object_r:vendor_sysfs_usbpd_device:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qpnp,qg/power_supply/bms u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qcom,pm6150_rtc/rtc u:object_r:sysfs_rtc:s0
-genfscon sysfs /devices/platform/soc/88c000.i2c/i2c-2/2-0008/88c000.i2c:qcom,smb1355@8:qcom,smb1355-charger@1000/power_supply/parallel u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/88c000.i2c/i2c-2/2-000c/88c000.i2c:qcom,smb1355@c:qcom,smb1355-charger@1000/power_supply/parallel u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/88c000.i2c/i2c-2/2-0010/88c000.i2c:qcom,smb1390@10:qcom,charge_pump/power_supply/charge_pump u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/a8c000.i2c/i2c-2/2-0034/a8c000.i2c:qcom,smb1396@34:qcom,div2_cp/power_supply/charge_pump_master u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/a8c000.i2c/i2c-2/2-0035/a8c000.i2c:qcom,smb1396@35:qcom,div2_cp_slave/power_supply/cp_slave u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /class/qcom-battery u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /class/charge_pump u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/a8c000.i2c/i2c-2/2-000c/a8c000.i2c:qcom,smb1355@c:qcom,smb1355-charger@1000/power_supply/parallel u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/a8c000.i2c/i2c-2/2-0008/a8c000.i2c:qcom,smb1355@8:qcom,smb1355-charger@1000/power_supply/parallel u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/a8c000.i2c/i2c-2/2-0010/a8c000.i2c:qcom,smb1390@10:qcom,charge_pump/power_supply/charge_pump_master u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/88c000.i2c/i2c-2/2-0010/88c000.i2c:qcom,smb1390@10:qcom,charge_pump/power_supply/charge_pump_master u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-01/c440000.qcom,spmi:qcom,pm6150@1:qcom,vibrator@5300/leds/vibrator u:object_r:sysfs_leds:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm6150l@5:qcom,leds@d000/leds/red u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm6150l@5:qcom,leds@d000/leds/green u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm6150l@5:qcom,leds@d000/leds/blue u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm6150l@5:qcom,leds@d300/leds u:object_r:sysfs_leds:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm6150l@5:qcom,wled@d800/leds u:object_r:sysfs_leds:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm6150l@5:qcom,wled@d800/backlight u:object_r:sysfs_leds:s0
-
-# subsys  SSR entries
-genfscon sysfs /devices/platform/soc/62400000.qcom,lpass/subsys0/name         u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/4080000.qcom,mss/subsys1/name            u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/8300000.qcom,turing/subsys2/name         u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/aae0000.qcom,venus/subsys3/name          u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,ipa_fws/subsys4/name            u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-hyp/subsys5/name           u:object_r:vendor_sysfs_ssr:s0
-
-#diffrent target using same apps combo
-genfscon sysfs /devices/platform/soc/4080000.qcom,mss/subsys2/name            u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/9800000.qcom,npu/subsys4/name            u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,ipa_fws/subsys5/name            u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-hyp/subsys6/name           u:object_r:vendor_sysfs_ssr:s0
-
-# We see this combo set also so adding this also
-genfscon sysfs  /devices/platform/soc/4080000.qcom,mss/subsys0/name           u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs  /devices/platform/soc/8300000.qcom,turing/subsys1/name        u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs  /devices/platform/soc/62400000.qcom,lpass/subsys2/name        u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs  /devices/platform/soc/soc:qcom,ipa_fws/subsys3/name           u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs  /devices/platform/soc/aae0000.qcom,venus/subsys4/name         u:object_r:vendor_sysfs_ssr:s0
-
-#entry for usb controller
-genfscon sysfs /devices/platform/soc/a600000.ssusb/a600000.dwc3/udc/a600000.dwc3 u:object_r:vendor_sysfs_usb_controller:s0
-
-#qdss sysfs-node
-genfscon sysfs /devices/platform/soc/6047000.tmc/coresight-tmc-etf u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/6048000.tmc/coresight-tmc-etr u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/6002000.stm/coresight-stm u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/91866f0.hwevent/coresight-hwevent u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/6b0e000.csr/coresight-swao-csr u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu-cpu-llcc-bw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu-llcc-ddr-bw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu0-cpu-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu6-cpu-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu0-cpu-llcc-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu6-cpu-llcc-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu0-llcc-ddr-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu6-llcc-ddr-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu0-cpu-ddr-latfloor/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu6-cpu-ddr-latfloor/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cdsp-cdsp-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,npu-npu-ddr-bw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-#fps sysfs-node
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-0/measured_fps u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-1/measured_fps u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-2/measured_fps u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-0/fps_periodicity_ms u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-1/fps_periodicity_ms u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-2/fps_periodicity_ms u:object_r:vendor_sysfs_graphics:s0
-#subsys nodes
-genfscon sysfs /devices/platform/soc/soc:bt_qca6174/extldo u:object_r:sysfs_bluetooth_writable:s0
-genfscon sysfs /devices/platform/soc/soc:bt_qca6174/rfkill/rfkill0/state u:object_r:sysfs_bluetooth_writable:s0
diff --git a/qva/vendor/atoll/hal_perf_default.te b/qva/vendor/atoll/hal_perf_default.te
deleted file mode 100644
index cb232af..0000000
--- a/qva/vendor/atoll/hal_perf_default.te
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (c) 2020, 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.
-
-allow vendor_hal_perf_default self:capability kill;
-allow vendor_hal_perf_default {appdomain}:process sigkill;
-
diff --git a/qva/vendor/atoll/init-qti-fbe-sh.te b/qva/vendor/atoll/init-qti-fbe-sh.te
deleted file mode 100644
index ee17f17..0000000
--- a/qva/vendor/atoll/init-qti-fbe-sh.te
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_init-qti-fbe-sh, domain;
-type vendor_init-qti-fbe-sh_exec, exec_type, file_type, vendor_file_type;
-
-init_daemon_domain(vendor_init-qti-fbe-sh)
-
-allow vendor_init-qti-fbe-sh vendor_shell_exec:file rx_file_perms;
-
-# execute toybox/toolbox
-allow vendor_init-qti-fbe-sh vendor_toolbox_exec:file rx_file_perms;
-get_prop(vendor_init-qti-fbe-sh, vendor_tee_listener_prop)
diff --git a/qva/vendor/bengal/device.te b/qva/vendor/bengal/device.te
deleted file mode 100644
index aab907f..0000000
--- a/qva/vendor/bengal/device.te
+++ /dev/null
@@ -1,31 +0,0 @@
-# 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.
-
-type vendor_logdump_partition, dev_type;
-type vendor_mba_debug_dev, dev_type;
-type vendor_dip_device, dev_type;
-type vendor_rawdump_block_device, dev_type;
diff --git a/qva/vendor/bengal/file.te b/qva/vendor/bengal/file.te
deleted file mode 100644
index 1b690c7..0000000
--- a/qva/vendor/bengal/file.te
+++ /dev/null
@@ -1,27 +0,0 @@
-# Copyright (c) 2018-2020, 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.
-
-type vendor_sysfs_fps_attr, fs_type, sysfs_type;
diff --git a/qva/vendor/bengal/file_contexts b/qva/vendor/bengal/file_contexts
deleted file mode 100644
index dbbaf91..0000000
--- a/qva/vendor/bengal/file_contexts
+++ /dev/null
@@ -1,173 +0,0 @@
-# Copyright (c) 2020, 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.
-
-# Bluetooth LAZY HAL
-/vendor/bin/hw/android\.hardware\.bluetooth@1\.0-service-qti-lazy        u:object_r:hal_bluetooth_default_exec:s0
-###################################
-# Dev block nodes
-
-#Primary storage device nodes
-/dev/block/mmcblk0rpmb                                          u:object_r:vendor_rpmb_device:s0
-/dev/mmcblk0rpmb                                                u:object_r:vendor_rpmb_device:s0
-/dev/block/mmcblk0                                              u:object_r:root_block_device:s0
-
-# UFS Devices
-/dev/block/platform/soc/4804000.ufshc/by-name/system            u:object_r:system_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/metadata          u:object_r:metadata_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/userdata          u:object_r:userdata_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/boot              u:object_r:boot_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/logdump           u:object_r:vendor_logdump_partition:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/fsc               u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/fsg               u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/modemst1          u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/modemst2          u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/ssd               u:object_r:vendor_ssd_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/misc              u:object_r:misc_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/rpm               u:object_r:vendor_rpmb_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/msadp             u:object_r:vendor_mba_debug_dev:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/recovery          u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/cache             u:object_r:cache_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/frp               u:object_r:frp_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/mdtp              u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/dip               u:object_r:vendor_dip_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/super             u:object_r:super_block_device:s0
-
-#rawdump partition
-/dev/block/platform/soc/4804000.ufshc/by-name/rawdump           u:object_r:vendor_rawdump_block_device:s0
-
-# A/B partitions.
-/dev/block/platform/soc/4804000.ufshc/by-name/abl_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/aop_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/apdp_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/bluetooth_[ab]    u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/boot_[ab]         u:object_r:boot_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/cmnlib_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/cmnlib64_[ab]     u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/devcfg_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/dsp_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/dtbo_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/hyp_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/keymaster_[ab]    u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/mdtp_[ab]         u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/mdtpsecapp_[ab]   u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/modem_[ab]        u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/msadp_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/persist           u:object_r:vendor_persist_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/pmic_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/qupfw_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/rpm_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/system_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/tz_[ab]           u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/vbmeta_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/vendor_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/xbl_[ab]          u:object_r:vendor_xbl_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/xbl_config_[ab]   u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/imagefv_[ab]      u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/uefisecapp_[ab]   u:object_r:vendor_uefi_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/recovery_[ab]     u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/vbmeta_system_[ab]    u:object_r:vendor_custom_ab_block_device:s0
-
-# Block device holding the GPT, where the A/B attributes are stored.
-/dev/block/platform/soc/4804000.ufshc/sd[ade]                   u:object_r:vendor_gpt_block_device:s0
-
-# Block devices for the drive that holds the xbl_a and xbl_b partitions.
-/dev/block/platform/soc/4804000.ufshc/sd[bc]                    u:object_r:vendor_xbl_block_device:s0
-
-#for eMMC
-/dev/block/platform/soc/4744000.sdhci/by-name/abl_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/apdp_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/boot_[ab]         u:object_r:boot_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/cmnlib_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/cmnlib64_[ab]     u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/devcfg_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/hyp_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/keymaster_[ab]    u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/modem_[ab]        u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/bluetooth_[ab]    u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/msadp_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/pmic_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/rpm_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/system_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/tz_[ab]           u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/vendor_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/xbl_[ab]          u:object_r:vendor_xbl_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/aop_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/vbmeta_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/dtbo_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/dsp_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/mdtp_[ab]         u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/mdtpsecapp_[ab]   u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/qupfw_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/xbl_config_[ab]   u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/storsec_[ab]      u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/imagefv_[ab]      u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/uefisecapp_[ab]   u:object_r:vendor_uefi_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/recovery_[ab]     u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/vbmeta_system_[ab] u:object_r:vendor_custom_ab_block_device:s0
-
-#non A/B
-/dev/block/platform/soc/4744000.sdhci/by-name/system            u:object_r:system_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/metadata          u:object_r:metadata_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/userdata          u:object_r:userdata_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/boot              u:object_r:boot_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/logdump           u:object_r:vendor_logdump_partition:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/fsc               u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/fsg               u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/modemst1          u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/modemst2          u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/ssd               u:object_r:vendor_ssd_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/misc              u:object_r:misc_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/rpm               u:object_r:vendor_rpmb_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/msadp             u:object_r:vendor_mba_debug_dev:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/recovery          u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/cache             u:object_r:cache_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/frp               u:object_r:frp_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/mdtp              u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/dip               u:object_r:vendor_dip_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/storsec           u:object_r:boot_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/persist           u:object_r:vendor_persist_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/super             u:object_r:super_block_device:s0
-
-# FBE
-/vendor/bin/init.qti.qseecomd.sh                                u:object_r:vendor_init-qti-fbe-sh_exec:s0
-
-##################################
-# same process HAL libs
-/vendor/lib(64)?/hw/vulkan\bengal\.so                           u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/hw/gralloc\.bengal\.so                         u:object_r:same_process_hal_file:s0
-
-###################################
-# sysfs files
-#
-/sys/devices/platform/soc/1b40000.qfprom/qfprom0/feat_conf10            u:object_r:vendor_sysfs_qfprom:s0
-/sys/devices/virtual/block/dm-[0-6]/queue/read_ahead_kb                 u:object_r:vendor_sysfs_mmc_host:s0
-/sys/devices/platform/soc/4744000.sdhci/mmc_host/mmc0/mmc0:0001/block/mmcblk0/queue/read_ahead_kb u:object_r:vendor_sysfs_mmc_host:s0
-
-###################################
-#camera
-/sys/firmware/devicetree/base/memory/ddr_device_rank_ch0               u:object_r:vendor_sysfs_ddr:s0
-/sys/firmware/devicetree/base/memory/ddr_device_type                   u:object_r:vendor_sysfs_ddr:s0
diff --git a/qva/vendor/bengal/genfs_contexts b/qva/vendor/bengal/genfs_contexts
deleted file mode 100644
index d72a996..0000000
--- a/qva/vendor/bengal/genfs_contexts
+++ /dev/null
@@ -1,94 +0,0 @@
-# Copyright (c) 2019-2020, 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.
-###################################
-
-#TODO: As of lines are commented once testing is done we should be enabling
-# with actual paths .
-
-#pmic sysfs_nodes
-#PM6125 & PMI632
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-00/1c40000.qcom,spmi:qcom,pm6125@0:qcom,pm6125_rtc/rtc u:object_r:sysfs_rtc:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-02/1c40000.qcom,spmi:qcom,pmi632@2:qcom,qpnp-smb5/power_supply/battery u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-02/1c40000.qcom,spmi:qcom,pmi632@2:qcom,qpnp-smb5/power_supply/pc_port u:object_r:vendor_sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-02/1c40000.qcom,spmi:qcom,pmi632@2:qcom,qpnp-smb5/power_supply/usb u:object_r:vendor_sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-02/1c40000.qcom,spmi:qcom,pmi632@2:qcom,qpnp-smb5/power_supply/main u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-02/1c40000.qcom,spmi:qcom,pmi632@2:qpnp,qg/power_supply/bms u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/4a84000.i2c/i2c-0/0-0008/4a84000.i2c:qcom,smb1355@8:qcom,smb1355-charger@1000/power_supply/parallel u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/4a84000.i2c/i2c-0/0-000c/4a84000.i2c:qcom,smb1355@c:qcom,smb1355-charger@1000/power_supply/parallel u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /class/qcom-battery u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-03/1c40000.qcom,spmi:qcom,pmi632@3:qcom,leds@d000/leds u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-03/1c40000.qcom,spmi:qcom,pmi632@3:qcom,leds@d300/leds u:object_r:sysfs_leds:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-03/1c40000.qcom,spmi:qcom,pmi632@3:qcom,vibrator@5700/leds/vibrator u:object_r:sysfs_leds:s0
-
-#PM2250
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-00/1c40000.qcom,spmi:qcom,pm2250@0:qcom,pm2250_rtc/rtc u:object_r:sysfs_rtc:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-00/1c40000.qcom,spmi:qcom,pm2250@0:qcom,qpnp-smblite/power_supply/battery u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-00/1c40000.qcom,spmi:qcom,pm2250@0:qcom,qpnp-smblite/power_supply/pc_port u:object_r:vendor_sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-00/1c40000.qcom,spmi:qcom,pm2250@0:qcom,qpnp-smblite/power_supply/usb u:object_r:vendor_sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-00/1c40000.qcom,spmi:qcom,pm2250@0:qcom,qpnp-smblite/power_supply/main u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-00/1c40000.qcom,spmi:qcom,pm2250@0:qpnp,qg/power_supply/bms u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-01/1c40000.qcom,spmi:qcom,pm2250@1:qcom,flash_led@d300/leds u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-01/1c40000.qcom,spmi:qcom,pm2250@1:qcom,vibrator@5600/leds/vibrator u:object_r:sysfs_leds:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-01/1c40000.qcom,spmi:qcom,pm2250@1:qcom,rg_leds/leds u:object_r:sysfs_leds:s0
-
-#qdss sysfs-node
-genfscon sysfs /devices/platform/soc/8047000.tmc/coresight-tmc-etf u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/8048000.tmc/coresight-tmc-etr u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/8002000.stm/coresight-stm u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/soc:hwevent/coresight-hwevent u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/soc:dummy_source/coresight-modem-diag u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/8a03000.csr/coresight-swao-csr u:object_r:vendor_sysfs_qdss_dev:s0
-
-# DCVS nodes
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu4-cpu-ddr-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu0-cpu-ddr-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu4-cpu-ddr-latfloor/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu0-cpu-ddr-latfloor/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu-cpu-ddr-bw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-
-
-#net sysfs
-genfscon sysfs /devices/platform/soc/c800000.qcom,icnss u:object_r:sysfs_net:s0
-
-#fps sysfs-node
-
-#SSR nodes
-genfscon sysfs /devices/platform/soc/ab00000.qcom,lpass/subsys0/name   u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/b300000.qcom,turing/subsys1/name  u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/5ab0000.qcom,venus/subsys2/name   u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/6080000.qcom,mss/subsys3/name     u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,ipa_fws/subsys4/name     u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-hyp/subsys5/name    u:object_r:vendor_sysfs_ssr:s0
-
-
-genfscon sysfs /devices/platform/soc/ab00000.qcom,lpass/subsys0/restart_level  u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/b300000.qcom,turing/subsys1/restart_level u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/5ab0000.qcom,venus/subsys2/restart_level  u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/6080000.qcom,mss/subsys3/restart_level    u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,ipa_fws/subsys4/restart_level    u:object_r:vendor_sysfs_ssr_toggle:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-hyp/subsys5/restart_level   u:object_r:vendor_sysfs_ssr_toggle:s0
-
diff --git a/qva/vendor/bengal/init-qti-fbe-sh.te b/qva/vendor/bengal/init-qti-fbe-sh.te
deleted file mode 100644
index 8f72daf..0000000
--- a/qva/vendor/bengal/init-qti-fbe-sh.te
+++ /dev/null
@@ -1,37 +0,0 @@
-# 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.
-
-type vendor_init-qti-fbe-sh, domain;
-type vendor_init-qti-fbe-sh_exec, exec_type, file_type, vendor_file_type;
-
-init_daemon_domain(vendor_init-qti-fbe-sh)
-
-allow vendor_init-qti-fbe-sh vendor_shell_exec:file rx_file_perms;
-
-# execute toybox/toolbox
-allow vendor_init-qti-fbe-sh vendor_toolbox_exec:file rx_file_perms;
-get_prop(vendor_init-qti-fbe-sh, vendor_tee_listener_prop)
diff --git a/qva/vendor/common/adpl.te b/qva/vendor/common/adpl.te
deleted file mode 100644
index 8177e89..0000000
--- a/qva/vendor/common/adpl.te
+++ /dev/null
@@ -1,50 +0,0 @@
-#Copyright (c) 2018, 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.
-
-type vendor_adpl, domain;
-type vendor_adpl_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_adpl)
-net_domain(vendor_adpl)
-
-allow vendor_adpl { vendor_rmnet_device vendor_mhi_device vendor_ipa_dev }:chr_file rw_file_perms;
-
-allow vendor_adpl self:{
-    socket
-    udp_socket
-    qipcrtr_socket
-} create_socket_perms_no_ioctl;
-
-set_prop(vendor_adpl, vendor_dataadpl_prop)
-
-#diag
-userdebug_or_eng(`
-    diag_use(vendor_adpl)
-    allow vendor_adpl vendor_sysfs_data:file r_file_perms;
-')
-
-#Allow vendor_adpl to create vendor_adpl socket
-allow vendor_adpl vendor_dataadpl_socket:sock_file rw_file_perms;
diff --git a/qva/vendor/common/app.te b/qva/vendor/common/app.te
deleted file mode 100644
index 9ac2370..0000000
--- a/qva/vendor/common/app.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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.
-
-#Add app permissions for iop property access
-get_prop(appdomain, vendor_iop_prop)
diff --git a/qva/vendor/common/attributes b/qva/vendor/common/attributes
deleted file mode 100644
index 0b78f19..0000000
--- a/qva/vendor/common/attributes
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (c) 2018-2020, 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.
-
-
-attribute wifidisplayhalservice;
-attribute wifidisplayhalservice_client;
-attribute wifidisplayhalservice_server;
diff --git a/qva/vendor/common/bluetooth.te b/qva/vendor/common/bluetooth.te
deleted file mode 100644
index 8a11ab0..0000000
--- a/qva/vendor/common/bluetooth.te
+++ /dev/null
@@ -1,41 +0,0 @@
-# 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.
-
-#allow bluetooth to access btconfigstore hal
-hal_client_domain(bluetooth, vendor_hal_btconfigstore);
-
-#allow bluetooth to access perf hal
-hal_client_domain(bluetooth, vendor_hal_perf);
-
-#allow bluetooth to access bluetooth_dun hal
-hal_client_domain(bluetooth, vendor_hal_bluetooth_dun);
-
-#allow bluetooth to access qspmhal
-hal_client_domain(bluetooth, vendor_hal_qspmhal)
-
-#allow bluetooth to make binder call to gpuservice
-binder_call(bluetooth, gpuservice);
diff --git a/qva/vendor/common/cnd.te b/qva/vendor/common/cnd.te
deleted file mode 100644
index c4f019b..0000000
--- a/qva/vendor/common/cnd.te
+++ /dev/null
@@ -1,79 +0,0 @@
-# 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.
-
-set_prop(vendor_cnd, vendor_cnd_vendor_prop)
-
-net_domain(vendor_cnd)
-
-allow vendor_cnd vendor_smem_log_device:chr_file rw_file_perms;
-
-# allow vendor_cnd the following capability
-allow vendor_cnd self:capability {
-    net_admin
-};
-
-allow vendor_cnd self:{
-    netlink_tcpdiag_socket
-    netlink_route_socket
-} create_socket_perms_no_ioctl;
-
-# allow vendor_cnd to access wpa_socket
-allow vendor_cnd vendor_wifi_vendor_data_file:dir r_dir_perms;
-allow vendor_cnd vendor_wifi_vendor_wpa_socket:sock_file write;
-
-#allow vendor_cnd daemon to invoke hostapd_cli
-allow vendor_cnd vendor_shell_exec:file rx_file_perms;
-domain_auto_trans(vendor_cnd, vendor_hostapd_exec, vendor_hostapd)
-allow vendor_cnd vendor_hostapd_socket:dir r_dir_perms;
-unix_socket_send(vendor_cnd, vendor_hostapd, vendor_hostapd)
-
-# only allow getopt for appdomain
-allow appdomain zygote:unix_dgram_socket getopt;
-dontaudit { domain -appdomain } zygote:unix_dgram_socket getopt;
-
-allow vendor_cnd self:socket create_socket_perms_no_ioctl;
-
-allowxperm vendor_cnd self:udp_socket ioctl wlan_sock_ioctls;
-
-add_hwservice(vendor_cnd, vendor_hal_latency_hwservice)
-
-add_hwservice(vendor_cnd, vendor_hal_slmadapter_hwservice)
-
-get_prop(vendor_cnd, vendor_slm_prop)
-
-add_hwservice(vendor_cnd, vendor_hal_mwqemadapter_hwservice)
-
-get_prop(vendor_cnd, vendor_mwqem_prop)
-
-##############################################################
-#for using public interface vendor.qti.data.factory
-#client should add their domain to vendor_cnd.te
-##############################################################
-userdebug_or_eng(`
-  binder_call(vendor_cnd, radio)
-  diag_use(vendor_cnd)
-')
diff --git a/qva/vendor/common/device.te b/qva/vendor/common/device.te
deleted file mode 100644
index 6e1329d..0000000
--- a/qva/vendor/common/device.te
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright (c) 2018-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.
-
-type vendor_hsic_device, dev_type;
-type vendor_spss_utils_device, dev_type;
-type vendor_skp_device, dev_type;
-type vendor_sp_keymaster_device, dev_type;
-type vendor_sp_keymaster_ssr_device, dev_type;
-type vendor_sp_ssr_device, dev_type;
-type vendor_sp_nvm_device, dev_type;
-type vendor_spdaemon_ssr_device, dev_type;
-type vendor_spu_hal_ssr_device, dev_type;
-type vendor_iuicc_device, dev_type;
-type vendor_cryptoapp_device, dev_type;
-type vendor_sec_nvm_device, dev_type;
-type vendor_qbt_device, dev_type;
-type vendor_esoc_device, dev_type;
-type vendor_mhi_diag_device, dev_type;
-type vendor_mhi_device, dev_type;
-type vendor_efs_boot_dev, dev_type;
-type vendor_smem_log_device, dev_type;
-type vendor_fm_radio_device, dev_type;
-
-#define qg char device
-type vendor_qg_device, dev_type;
-
-#define qvr external sensor device
-type vendor_qvr_external_sensor_device, dev_type;
diff --git a/qva/vendor/common/domain.te b/qva/vendor/common/domain.te
deleted file mode 100644
index d0e76b5..0000000
--- a/qva/vendor/common/domain.te
+++ /dev/null
@@ -1,35 +0,0 @@
-# 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.
-
-dontaudit domain vendor_persist_dpm_prop:file r_file_perms;
-neverallow {
-   coredomain
-   -init
-   -ueventd
-   -vendor_spdaemon
-   -vendor_hal_authsecret_qti
-} vendor_spunvm_file_type: { dir file } *;
diff --git a/qva/vendor/common/dpmd.te b/qva/vendor/common/dpmd.te
deleted file mode 100644
index 5db2c1d..0000000
--- a/qva/vendor/common/dpmd.te
+++ /dev/null
@@ -1,48 +0,0 @@
-# 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.
-
-#Add netutils support to install iptables
-use_netutils(vendor_dpmd)
-
-get_prop(vendor_dpmd, vendor_persist_dpm_prop)
-
-wakelock_use(vendor_dpmd)
-
-r_dir_file(vendor_dpmd, vendor_sysfs_data)
-
-#Allow vendor_dpmd to connect to hal_dpmQMiMgr
-allow vendor_dpmd vendor_hal_dpmqmi_hwservice:hwservice_manager find;
-get_prop(vendor_dpmd, hwservicemanager_prop)
-binder_call(vendor_dpmd,vendor_hal_dpmQmiMgr)
-hwbinder_use(vendor_dpmd)
-
-#diag
-userdebug_or_eng(`
-    diag_use(vendor_dpmd)
-hal_client_domain(vendor_dpmd, vendor_hal_diaghal)
-hal_client_domain(vendor_dpmd, hal_allocator)
-')
diff --git a/qva/vendor/common/dumpstate.te b/qva/vendor/common/dumpstate.te
deleted file mode 100644
index c1b9d18..0000000
--- a/qva/vendor/common/dumpstate.te
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright (c) 2019-2020, 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.
-
-
-# CTS test case  CtsSecurityHostTestCases#testNoBugreportDenials
-# tries to check the if there are any denials from
-# dumpstate. As per the b/131578979 discussion
-# adding dontaudit for now.
-
-allow dumpstate adsprpcd_file:dir getattr;
-allow dumpstate bt_firmware_file:dir getattr;
-allow dumpstate bt_firmware_file:filesystem getattr;
-allow dumpstate firmware_file:dir getattr;
-allow dumpstate firmware_file:filesystem getattr;
-allow dumpstate vendor_vm_system_file:dir getattr;
-allow dumpstate vendor_vm_system_file:filesystem getattr;
-dontaudit dumpstate sysfs:file *;
-allow dumpstate debugfs_mmc:dir search;
-
-# Signal native process to dump its stack 
-allow dumpstate vendor_hal_neuralnetworks_default:process signal;
-
-binder_call(dumpstate, hal_light_default)
-binder_call(dumpstate, hal_power_default)
diff --git a/qva/vendor/common/esepmdaemon.te b/qva/vendor/common/esepmdaemon.te
deleted file mode 100644
index d293647..0000000
--- a/qva/vendor/common/esepmdaemon.te
+++ /dev/null
@@ -1,53 +0,0 @@
-# Copyright (c) 2016, 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.
-
-type vendor_esepmdaemon, domain;
-type vendor_esepmdaemon_exec, exec_type, vendor_file_type, file_type;
-
-#Allow for transition from init domain to vendor_esepmdaemon
-init_daemon_domain(vendor_esepmdaemon)
-
-#Allow vendor_esepmdaemon to use Binder IPC
-vndbinder_use(vendor_esepmdaemon)
-
-#Allow apps to interact with vendor_esepmdaemon
-binder_call(vendor_esepmdaemon, system_app)
-
-#Allow vendor_esepmdaemon to be registered with service manager
-add_service(vendor_esepmdaemon, vendor_esepmdaemon_service)
-
-#Allow access to nfc device
-allow vendor_esepmdaemon nfc_device:chr_file rw_file_perms;
-
-# Allow vendor_esepmdaemon to load firmware images
-r_dir_file(vendor_esepmdaemon, firmware_file);
-
-# Allow vendor_esepmdaemon to interract with ion_device
-allow vendor_esepmdaemon ion_device:chr_file r_file_perms;
-
-# Allow vendor_esepmdaemon to interract with qseecom
-allow vendor_esepmdaemon tee_device:chr_file rw_file_perms;
diff --git a/qva/vendor/common/file.te b/qva/vendor/common/file.te
deleted file mode 100644
index a54aafe..0000000
--- a/qva/vendor/common/file.te
+++ /dev/null
@@ -1,142 +0,0 @@
-# Copyright (c) 2018-2020, 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.
-
-#QTI file types
-type vendor_qti_data_file, file_type, data_file_type;
-
-type vendor_persist_secnvm_file, file_type , vendor_persist_type;
-type vendor_persist_iar_db_file, file_type , vendor_persist_type;
-
-#mink-lowi-interface-daemon (mlid) socket
-type vendor_mlid_socket, file_type, mlstrustedobject;
-
-#Wireless Edge Service (QWES) socket and files
-type vendor_qwesd_socket, file_type, mlstrustedobject;
-type vendor_qwes_data_file, file_type, data_file_type;
-#ssg qmi gateway daemon socket
-type vendor_ssgqmig_socket, file_type, mlstrustedobject;
-
-#ssg tz daemon socket
-type vendor_ssgtzd_socket, file_type, mlstrustedobject;
-
-#spunvm file types
-type vendor_spunvm_file, file_type, vendor_spunvm_file_type;
-allow vendor_spunvm_file self:filesystem associate;
-
-type vendor_qfp-daemon_data_file, file_type, data_file_type;
-type vendor_persist_qti_fp_file, file_type, vendor_persist_type;
-type vendor_sysfs_touch_aoi, fs_type, sysfs_type;
-
-#sysfs jpeg
-type vendor_sysfs_jpeg, fs_type, sysfs_type;
-
-#vendor sysfs ddr
-type vendor_sysfs_ddr, fs_type, sysfs_type;
-
-#vendor sysfs sku version
-type vendor_sysfs_sku, fs_type, sysfs_type;
-
-# qcc-trd data files
-type vendor_qcc_trd_data_file, file_type, data_file_type;
-
-type vendor_sysfs_npu, fs_type, sysfs_type;
-
-type vendor_persist_mmi_file, file_type, vendor_persist_type;
-type vendor_persist_hvdcp_file, file_type, vendor_persist_type;
-
-#File type by mmi
-type vendor_mmi_socket, file_type;
-
-#ADPL socket file types
-type vendor_dataadpl_socket, file_type;
-
-#perf
-type vendor_sysfs_lib, fs_type, sysfs_type;
-type vendor_sysfs_memory, fs_type, sysfs_type;
-type vendor_sysfs_process_reclaim, fs_type, sysfs_type;
-type vendor_sysfs_vmpressure, fs_type, sysfs_type;
-
-# secure element file type for data vendor access
-type vendor_secure_element_vendor_data_file, file_type, data_file_type;
-
-#Define the files written during the operation of mpctl
-type vendor_sysfs_mpctl, fs_type, sysfs_type;
-type vendor_mpctl_socket, file_type, mlstrustedobject;
-type vendor_mpctl_data_file, file_type, data_file_type;
-
-#IOP
-type vendor_iop_socket, file_type;
-type vendor_iop_data_file, file_type, data_file_type;
-
-#Define the files used by lm
-type vendor_lm_data_file, file_type, data_file_type;
-
-# Wifi Data file
-type vendor_wifi_vendor_data_file, file_type, data_file_type;
-type vendor_wifi_vendor_wpa_socket, file_type, data_file_type;
-type vendor_hostapd_socket, file_type, data_file_type;
-
-#spss sysfs files
-type vendor_sysfs_spss, fs_type, sysfs_type;
-
-#vpp
-type vendor_vpp_data_file, file_type, data_file_type;
-type vendor_persist_vpp_file, file_type, vendor_persist_type;
-
-# Spdaemon file
-type vendor_sysfs_spdaemon, fs_type, sysfs_type;
-
-# wigig, fstman
-type vendor_sysfs_wigig, fs_type, sysfs_type;
-type vendor_wigignpt_socket, file_type;
-type vendor_wigig_vendor_wpa_socket, file_type;
-# wigig_hostapd
-type vendor_wigig_hostapd_socket, file_type, data_file_type;
-type vendor_sensingdaemon_socket, file_type;
-type vendor_sensing_vendor_data_file, file_type, data_file_type;
-
-#rmnet module files
-type vendor_sysfs_rmnet, fs_type, sysfs_type;
-
-#qvrservice sysfs files
-type vendor_sysfs_qvr_external_sensor, sysfs_type, fs_type;
-
-#GuestVM PIL files
-type vendor_sysfs_bootguestvm, fs_type, sysfs_type;
-
-#qspm-hal
-type vendor_qspmhal_data_file, file_type, data_file_type;
-
-#System memory file types
-type vendor_sysfs_system_memory, sysfs_type, fs_type;
-
-# Memory offlining file types
-type vendor_sysfs_mem_offline, sysfs_type, fs_type;
-
-#slub-debug
-type vendor_sysfs_slab_zshandle_storeuser, fs_type, sysfs_type;
-type vendor_sysfs_slab_zspage_storeuser, fs_type, sysfs_type;
diff --git a/qva/vendor/common/file_contexts b/qva/vendor/common/file_contexts
deleted file mode 100644
index fea9a6a..0000000
--- a/qva/vendor/common/file_contexts
+++ /dev/null
@@ -1,234 +0,0 @@
-# Copyright (c) 2018-2020, 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.
-
-###################################
-#Dev nodes
-#
-/dev/hsicctl.*                        u:object_r:vendor_hsic_device:s0
-/dev/sp_kernel                        u:object_r:vendor_skp_device:s0
-/dev/sp_nvm                           u:object_r:vendor_sp_nvm_device:s0
-/dev/sp_keymaster                     u:object_r:vendor_sp_keymaster_device:s0
-/dev/sp_keymaster_ssr                 u:object_r:vendor_sp_keymaster_ssr_device:s0
-/dev/sp_ssr                           u:object_r:vendor_sp_ssr_device:s0
-/dev/spdaemon_ssr                     u:object_r:vendor_spdaemon_ssr_device:s0
-/dev/spss_utils                       u:object_r:vendor_spss_utils_device:s0
-/dev/spu_hal_ssr                      u:object_r:vendor_spu_hal_ssr_device:s0
-/dev/iuicc                            u:object_r:vendor_iuicc_device:s0
-/dev/iuicc0                           u:object_r:vendor_iuicc_device:s0
-/dev/iuicc1                           u:object_r:vendor_iuicc_device:s0
-/dev/cryptoapp                        u:object_r:vendor_cryptoapp_device:s0
-/dev/sec_nvm_.*                       u:object_r:vendor_sec_nvm_device:s0
-/dev/qbt.*                            u:object_r:vendor_qbt_device:s0
-/dev/esoc.*                           u:object_r:vendor_esoc_device:s0
-/dev/mhi_.*                           u:object_r:vendor_mhi_device:s0
-/dev/mhi_.*_pipe_4                    u:object_r:vendor_mhi_diag_device:s0
-/dev/smem_log                         u:object_r:vendor_smem_log_device:s0
-/dev/radio0                           u:object_r:vendor_fm_radio_device:s0
-/dev/qg                               u:object_r:vendor_qg_device:s0
-/dev/qg_battery                       u:object_r:vendor_qg_device:s0
-/dev/qvr_external_sensor_ioctl        u:object_r:vendor_qvr_external_sensor_device:s0
-###################################
-# Dev socket nodes
-#
-/dev/socket/iop                                 u:object_r:vendor_iop_socket:s0
-/dev/socket/mlid                                u:object_r:vendor_mlid_socket:s0
-/dev/socket/qwes_ipc                            u:object_r:vendor_qwesd_socket:s0
-/dev/socket/ssgqmig                             u:object_r:vendor_ssgqmig_socket:s0
-/dev/socket/ssgtzd                              u:object_r:vendor_ssgtzd_socket:s0
-/dev/socket/adpl_cmd_uds_file                   u:object_r:vendor_dataadpl_socket:s0
-/dev/socket/vendor_wpa_wlan[0-9]                u:object_r:vendor_wifi_vendor_wpa_socket:s0
-/dev/socket/wigig/wpa_wigig[0-9]                u:object_r:vendor_wigig_vendor_wpa_socket:s0
-/dev/socket/wigig/wigignpt                      u:object_r:vendor_wigignpt_socket:s0
-/dev/socket/wigig/sensingdaemon                 u:object_r:vendor_sensingdaemon_socket:s0
-
-
-/dev/smcinvoke                                  u:object_r:tee_device:s0
-###################################
-# System files
-#
-
-/(vendor|system/vendor)/bin/dpmQmiMgr                                              u:object_r:vendor_hal_dpmQmiMgr_exec:s0
-/vendor/bin/hw/android\.hardware\.keymaster@4\.0-strongbox-service-qti             u:object_r:vendor_hal_keymaster_qti_exec:s0
-/vendor/bin/hw/android\.hardware\.keymaster@4\.1-strongbox-service-qti             u:object_r:vendor_hal_keymaster_qti_exec:s0
-/vendor/bin/hw/vendor\.qti\.hardware\.cryptfshw@1\.0-service-qti                   u:object_r:vendor_hal_keymaster_qti_exec:s0
-/vendor/bin/hw/android\.hardware\.authsecret@1\.0-service-qti                      u:object_r:vendor_hal_authsecret_qti_exec:s0
-/vendor/bin/hw/android\.hardware\.drm@[0-9]+\.[0-9]+-service.clearkey             u:object_r:vendor_hal_drm_clearkey_exec:s0
-/vendor/bin/hw/android\.hardware\.drm@[0-9]+\.[0-9]+-service-lazy.clearkey         u:object_r:vendor_hal_drm_clearkey_exec:s0
-
-/vendor/bin/hw/vendor\.nxp\.hardware\.nfc@1\.2-service                             u:object_r:hal_nfc_default_exec:s0
-/vendor/bin/hw/vendor\.nxp\.hardware\.nfc@2\.0-service                             u:object_r:hal_nfc_default_exec:s0
-/vendor/bin/hw/vendor\.qti\.hardware\.alarm@1\.0-service                           u:object_r:vendor_hal_alarm_qti_default_exec:s0
-/vendor/bin/hw/vendor\.qti\.hardware\.iop@2\.0-service                             u:object_r:vendor_hal_iop_default_exec:s0
-/vendor/bin/hw/vendor\.qti\.hardware\.qteeconnector@1\.0-service                   u:object_r:vendor_hal_qteeconnector_qti_exec:s0
-/vendor/bin/hw/vendor\.qti\.hardware\.qseecom@1\.0-service                         u:object_r:vendor_hal_qseecom_default_exec:s0
-/vendor/bin/hw/vendor\.qti\.hardware\.scve\.objecttracker@1\.0-service             u:object_r:vendor_scve_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.spu@1\.[0-1]-service                   u:object_r:vendor_hal_spu_qti_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.scve\.panorama@1\.0-service  u:object_r:vendor_scve_exec:s0
-/vendor/bin/hw/vendor\.qti\.hardware\.sensorscalibrate@1\.0-service                u:object_r:vendor_hal_sensorscalibrate_qti_default_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.soter@1\.0-service           u:object_r:vendor_hal_soter_qti_exec:s0
-/vendor/bin/hw/vendor\.qti\.hardware\.vibrator@1\.[0-3]-service                    u:object_r:hal_vibrator_default_exec:s0
-/vendor/bin/hw/vendor\.qti\.hardware\.vibrator\.service                            u:object_r:hal_vibrator_default_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.power\.pasrmanager\@1\.0-service       u:object_r:vendor_hal_pasrmanager_qti_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.memory\.pasrmanager\@1\.0-service      u:object_r:vendor_pasrmanager_memory_qti_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.psiclient\@1\.0-service                u:object_r:vendor_psiservice_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.secure_element@1\.0-service            u:object_r:hal_secure_element_default_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.secure_element@1\.2-service            u:object_r:hal_secure_element_default_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.perf@2\.[0-2]-service        u:object_r:vendor_hal_perf_default_exec:s0
-/(vendor|system/vendor)/bin/mm-audio-ftm                                           u:object_r:vendor_audioftm_exec:s0
-/(vendor|system/vendor)/bin/qrtr-ns                                                u:object_r:vendor_qrtr_exec:s0
-/(vendor|system/vendor)/bin/spdaemon                                               u:object_r:vendor_spdaemon_exec:s0
-/(vendor|system/vendor)/bin/sec_nvm                                                u:object_r:vendor_sec_nvm_exec:s0
-/(vendor|system/vendor)/bin/hostapd_cli                                            u:object_r:vendor_hostapd_exec:s0
-/(vendor|system/vendor)/bin/qcom-system-daemon                                     u:object_r:vendor_qcomsysd_exec:s0
-/(vendor|system/vendor)/bin/init\.qti\.media\.sh                                   u:object_r:vendor_qti_media_exec:s0
-/(vendor|system/vendor)/bin/vppservice                                             u:object_r:vendor_vppservice_exec:s0
-/(vendor|system/vendor)/bin/wifidisplayhalservice                                  u:object_r:wifidisplayhalservice_qti_exec:s0
-/(vendor|system/vendor)/bin/hw/qconfigservice                                      u:object_r:vendor_qconfigservice_exec:s0
-/(vendor|system/vendor)/bin/nqnfcinfo                                              u:object_r:vendor_nqnfcinfo_exec:s0
-/(vendor|system/vendor)/bin/ssgqmigd                                               u:object_r:vendor_ssgqmigd_exec:s0
-/(vendor|system/vendor)/bin/ssgtzd                                                 u:object_r:vendor_ssgtzd_exec:s0
-/(vendor|system/vendor)/bin/mlid                                                   u:object_r:vendor_mlid_exec:s0
-/(vendor|system/vendor)/bin/qcc-trd                                             u:object_r:vendor_qcc_trd_exec:s0
-/(vendor|system/vendor)/bin/seemp_healthd                                          u:object_r:vendor_seemp_health_daemon_exec:s0
-/(vendor|system/vendor)/bin/qfp-daemon                                             u:object_r:vendor_qfp-daemon_exec:s0
-/(vendor|system/vendor)/bin/adpl                                                   u:object_r:vendor_adpl_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.esepowermanager@1\.0-service           u:object_r:vendor_hal_esepowermanager_qti_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.esepowermanager@1\.1-service           u:object_r:vendor_hal_esepowermanager_qti_exec:s0
-/(vendor|system/vendor)/bin/esepmdaemon                                            u:object_r:vendor_esepmdaemon_exec:s0
-/(vendor|system/vendor)/bin/mdm_helper                                             u:object_r:vendor_mdm_helper_exec:s0
-/(vendor|system/vendor)/bin/ks                                                     u:object_r:vendor_mdm_helper_exec:s0
-/(vendor|system/vendor)/bin/mmi                                                    u:object_r:vendor_mmi_exec:s0
-/(vendor|system/vendor)/bin/mmid                                                   u:object_r:vendor_mmi_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.factory@1\.[0-1]-service     u:object_r:vendor_hal_factory_qti_default_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.servicetracker@1\.[0-2]-service u:object_r:vendor_hal_srvctracker_default_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.cvp@1\.0-service             u:object_r:vendor_cvp_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.secureprocessor@1\.0         u:object_r:vendor_hal_secureprocessor_qti_exec:s0
-/(vendor|system/vendor)/bin/fstman                                                 u:object_r:vendor_fstman_exec:s0
-/(vendor|system/vendor)/bin/wigighalsvc                                            u:object_r:vendor_wigighalsvc_exec:s0
-/(vendor|system/vendor)/bin/wigignpt                                               u:object_r:vendor_wigignpt_exec:s0
-/(vendor|system/vendor)/bin/sensingdaemon                                          u:object_r:vendor_sensingdaemon_exec:s0
-/vendor/bin/hw/android\.hardware\.usb\@1\.[0-2]-service-qti                        u:object_r:vendor_hal_usb_qti_exec:s0
-/vendor/bin/hw/android\.hardware\.usb\.gadget\@1\.[0-2]-service-qti                u:object_r:vendor_hal_usb_qti_exec:s0
-/vendor/bin/vendor\.qti\.qspmhal@1\.0-service                                      u:object_r:vendor_hal_qspmhal_default_exec:s0
-/(vendor|system/vendor)/bin/mutualex                                               u:object_r:vendor_mutualex_exec:s0
-
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.qccvndhal@1\.0-service       u:object_r:vendor_hal_qccvndhal_qti_exec:s0
-
-#### Context for location features
-## location daemons and binaries
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.gnss@.*-service                        u:object_r:vendor_hal_gnss_qti_exec:s0
-/(vendor|system/vendor)/bin/xtwifi-inet-agent                                      u:object_r:vendor_location_exec:s0
-/(vendor|system/vendor)/bin/xtwifi-client                                          u:object_r:vendor_location_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.seccam@1\.0-service-qti      u:object_r:vendor_hal_seccam_qti_exec:s0
-/(vendor|system/vendor)/bin/garden_app                                             u:object_r:vendor_location_exec:s0
-/(vendor|system/vendor)/bin/DR_AP_Service                                          u:object_r:vendor_location_exec:s0
-/(vendor|system/vendor)/bin/slim_daemon                                            u:object_r:vendor_location_exec:s0
-
-#bluetooth
-/vendor/bin/hw/vendor\.qti\.hardware\.bluetooth_dun@1\.0-service                   u:object_r:vendor_hal_bluetooth_dun_qti_exec:s0
-
-#hvdcp
-/vendor/bin/hvdcp_opti                                                             u:object_r:vendor_hvdcp_exec:s0
-/vendor/bin/init.qti.chg_policy.sh                                                 u:object_r:vendor_qti_init_shell_exec:s0
-
-#perf
-/sys/module/cpu_boost(/.*)?                                         u:object_r:vendor_sysfs_cpu_boost:s0
-/sys/module/msm_performance(/.*)?                                   u:object_r:vendor_sysfs_msm_perf:s0
-/sys/module/process_reclaim(/.*)?                                   u:object_r:vendor_sysfs_process_reclaim:s0
-/sys/module/vmpressure(/.*)?                                        u:object_r:vendor_sysfs_vmpressure:s0
-
-###################################
-# sysfs files
-#
-/sys/devices/virtual/net/bond0/bonding/queue_id                     u:object_r:vendor_sysfs_bond0:s0
-/sys/devices/virtual/net/bond0/queues/rx-0/rps_cpus                 u:object_r:vendor_sysfs_bond0:s0
-/sys/devices/virtual/net/bond0/statistics/rx_bytes                  u:object_r:vendor_sysfs_bond0:s0
-/sys/devices/virtual/net/bond0/statistics/tx_bytes                  u:object_r:vendor_sysfs_bond0:s0
-
-/sys/devices(/platform)?/soc/[a-z0-9]+\.qcom,pcie/pci[0-9:]+/[0-9:\.]+/[0-9:\.]+/wil6210/fst_link_loss            u:object_r:vendor_sysfs_wigig:s0
-/sys/devices(/platform)?/soc/[a-z0-9]+\.qcom,pcie/pci[0-9:]+/[0-9:\.]+/[0-9:\.]+/wil6210/thermal_throttling       u:object_r:vendor_sysfs_wigig:s0
-/sys/devices(/platform)?/soc/[a-z0-9]+\.qcom,pcie/pci[0-9:]+/[0-9:\.]+/[0-9:\.]+/wil6210/snr_thresh               u:object_r:vendor_sysfs_wigig:s0
-/sys/devices(/platform)?/soc/[a-f0-9]+\.qcom,pcie/pci[0-9:]+/[0-9:\.]+/[0-9:\.]+/wil6210/fst_config               u:object_r:vendor_sysfs_wigig:s0
-/sys/devices(/platform)?/soc/[a-z0-9]+\.qcom,pcie/pci[0-9:]+/[0-9:\.]+/[0-9:\.]+/net/wigig0/queues/rx-0/rps_cpus  u:object_r:vendor_sysfs_wigig:s0
-/sys/devices(/platform)?/soc/[a-z0-9]+\.qcom,pcie/pci[0-9:]+/[0-9:\.]+/[0-9:\.]+/net/wigig0/gro_flush_timeout     u:object_r:vendor_sysfs_wigig:s0
-
-/sys/devices(/platform)?/soc/soc:qcom,gpubw/devfreq/soc:qcom,gpubw(/.*)? u:object_r:vendor_sysfs_devfreq:s0
-/sys/class/kgsl/kgsl/proc(/.*)?                                    u:object_r:vendor_sysfs_kgsl_proc:s0
-
-/sys/devices(/platform)?/soc/soc:qcom,spss_utils(/.*)?             u:object_r:vendor_sysfs_spss:s0
-/sys/devices(/platform)?/soc/[a-f0-9]+.qcom,vidc/sku_version       u:object_r:vendor_sysfs_sku:s0
-
-###################################
-# data files
-#
-/data/vendor/iop(/.*)?                                              u:object_r:vendor_iop_data_file:s0
-/data/vendor/misc/qti_fp(/.*)?                                      u:object_r:vendor_qfp-daemon_data_file:s0
-/data/vendor/wifi(/.*)?                                             u:object_r:vendor_wifi_vendor_data_file:s0
-/data/vendor/wifi/sockets(/.*)?                                     u:object_r:vendor_wifi_vendor_wpa_socket:s0
-/data/vendor/wifi/wigig_sockets(/.*)?                               u:object_r:vendor_wifi_vendor_wpa_socket:s0
-/data/vendor/wifi/wigig_sockets/wpa_ctrl.*                          u:object_r:vendor_wifi_vendor_wpa_socket:s0
-/dev/cam-hyp-intf-[0-9]+                                            u:object_r:video_device:s0
-/data/vendor/perfd(/.*)?                                            u:object_r:vendor_mpctl_data_file:s0
-/data/vendor/dataqti(/.*)?                                          u:object_r:vendor_qti_data_file:s0
-/data/vendor/qdmastats(/.*)?                                        u:object_r:vendor_qcc_trd_data_file:s0
-/data/vendor/qdma(/.*)?                                             u:object_r:vendor_qcc_trd_data_file:s0
-/data/vendor/qwes(/.*)?                                             u:object_r:vendor_qwes_data_file:s0
-/data/vendor/vpp(/.*)?                                              u:object_r:vendor_vpp_data_file:s0
-/data/vendor/wifi/wigig_hostapd(/.*)?                               u:object_r:vendor_wigig_hostapd_socket:s0
-/data/vendor/lm(/.*)?                                               u:object_r:vendor_lm_data_file:s0
-/data/vendor/secure_element(/.*)?                                   u:object_r:vendor_secure_element_vendor_data_file:s0
-/data/vendor/sensing(/.*)?                                          u:object_r:vendor_sensing_vendor_data_file:s0
-/data/vendor/gaming(/.*)?                                           u:object_r:vendor_qspmhal_data_file:s0
-
-###################################
-# persist files
-#
-/mnt/vendor/persist/secnvm(/.*)?      u:object_r:vendor_persist_secnvm_file:s0
-/mnt/vendor/persist/iar_db(/.*)?      u:object_r:vendor_persist_iar_db_file:s0
-/mnt/vendor/persist/qti_fp(/.*)?      u:object_r:vendor_persist_qti_fp_file:s0
-/mnt/vendor/persist/FTM_AP(/.*)?      u:object_r:vendor_persist_mmi_file:s0
-/mnt/vendor/persist/vpp(/.*)?         u:object_r:vendor_persist_vpp_file:s0
-/mnt/vendor/persist/hvdcp_opti(/.*)?  u:object_r:vendor_persist_hvdcp_file:s0
-
-# spunvm partition
-/mnt/vendor/spunvm(/.*)?              u:object_r:vendor_spunvm_file:s0
-
-# same-process HAL files and their dependencies
-#
-# libmmi_jni
-/vendor/lib(64)?/libmmi_jni\.so             u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/vendor\.qti\.hardware\.perf@2\.0\.so    u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/vendor\.qti\.hardware\.perf@2\.1\.so    u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/vendor\.qti\.hardware\.perf@2\.2\.so    u:object_r:same_process_hal_file:s0
-
-# SVA files
-/vendor/lib(64)?/liblistenjni\.so          u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/liblistensoundmodel2\.so  u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/vendor.qti.qspmhal@1.0\.so  u:object_r:same_process_hal_file:s0
-
-#wifilearner daemon
-/(vendor|system/vendor)/bin/wifilearner    u:object_r:vendor_wifilearnersvc_exec:s0
diff --git a/qva/vendor/common/fm_app.te b/qva/vendor/common/fm_app.te
deleted file mode 100644
index de6d28d..0000000
--- a/qva/vendor/common/fm_app.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2020, 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.
-
-allow vendor_fm_app vendor_sysfs_kgsl:file r_file_perms;
-get_prop(vendor_fm_app, vendor_bluetooth_prop)
diff --git a/qva/vendor/common/fstman.te b/qva/vendor/common/fstman.te
deleted file mode 100644
index 02e69f2..0000000
--- a/qva/vendor/common/fstman.te
+++ /dev/null
@@ -1,82 +0,0 @@
-# Copyright (c) 2015,2017,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.
-
-type vendor_fstman, domain;
-type vendor_fstman_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_fstman)
-net_domain(vendor_fstman)
-
-#use bypass because net_admin capability is needed
-hal_server_domain_bypass(vendor_fstman, vendor_hal_fstman)
-
-#allows calls between client and server and vice-versa
-binder_call(vendor_hal_fstman_client, vendor_hal_fstman_server)
-binder_call(vendor_hal_fstman_server, vendor_hal_fstman_client)
-
-#register hal service, allow hal clients to find the service
-hal_attribute_hwservice(vendor_hal_fstman, vendor_hal_fstman_hwservice)
-
-# fstman requires special network privileges.
-# access traffic control (TC) for marking packets to identify from
-# which slave interface they arrive, drop multicast packets and
-# duplicate packets. This requires the net_raw capability.
-# network admin operations mainly on the bonding driver:
-# interface up/down, add/remove slave interfaces, set queue parameters
-# This requires the net_admin capability.
-allow vendor_fstman self:capability { net_admin net_raw };
-
-# netlink socket is used to access traffic control (TC)
-allow vendor_fstman self:netlink_route_socket nlmsg_write;
-
-# allow privileged socket operations: interface up/down, bond interface management
-allowxperm vendor_fstman self:udp_socket ioctl { SIOCGIFFLAGS SIOCSIFFLAGS SIOCSIFTXQLEN SIOCBONDENSLAVE SIOCBONDRELEASE SIOCETHTOOL SIOCSIFHWADDR };
-
-# need access to bond0 sysfs in order to manage attached interfaces
-allow vendor_fstman sysfs_net:dir r_dir_perms;
-allow vendor_fstman vendor_sysfs_bond0:file rw_file_perms;
-
-# need access to wigig sysfs in order to control fst_link_loss
-allow vendor_fstman vendor_sysfs_wigig:file rw_file_perms;
-
-# create/read vendor_fstman configuration file (/data/vendor/wifi/vendor_fstman.ini)
-r_dir_file(vendor_fstman, vendor_wifi_vendor_data_file)
-allow vendor_fstman vendor_wifi_vendor_data_file:dir rw_dir_perms;
-allow vendor_fstman vendor_wifi_vendor_data_file:file create_file_perms;
-
-# vendor_fstman needs to communicate with wpa_supplicant and hostapd using socket
-# for managing FST state
-allow vendor_fstman { hal_wifi_supplicant hal_wifi_hostapd_default }:unix_dgram_socket sendto;
-# supplicant interface sockets
-allow vendor_fstman vendor_wifi_vendor_wpa_socket:dir rw_dir_perms;
-allow vendor_fstman vendor_wifi_vendor_wpa_socket:sock_file create_file_perms;
-allow vendor_fstman vendor_wigig_vendor_wpa_socket:sock_file rw_file_perms;
-# hostapd global socket
-allow vendor_fstman hostapd_data_file:dir rw_dir_perms;
-allow vendor_fstman hostapd_data_file:sock_file create_file_perms;
-# access capability config store
-hal_client_domain(vendor_fstman, vendor_hal_capabilityconfigstore_qti);
diff --git a/qva/vendor/common/genfs_contexts b/qva/vendor/common/genfs_contexts
deleted file mode 100644
index 9623261..0000000
--- a/qva/vendor/common/genfs_contexts
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright (c) 2018-2020, 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.
-
-genfscon sysfs /devices/virtual/npu/msm_npu/pwr u:object_r:vendor_sysfs_npu:s0
-genfscon sysfs /devices/virtual/fts/touch_aoi       u:object_r:vendor_sysfs_touch_aoi:s0
-genfscon proc /asound/card0/state u:object_r:vendor_proc_audiod:s0
-genfscon proc /asound/cards u:object_r:vendor_proc_audiod:s0
-genfscon sysfs /module/msm_thermal/core_control/cpus_offlined           u:object_r:vendor_sysfs_mpctl:s0
-
-genfscon sysfs /devices/platform/soc/soc:qcom,msm-ext-disp/extcon/extcon0/name u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,msm-ext-disp/extcon/extcon0/cable.0/ u:object_r:vendor_sysfs_graphics:s0
-
-genfscon sysfs /devices/platform/soc/soc:qcom,msm-ext-disp/extcon/extcon1/name u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,msm-ext-disp/extcon/extcon1/cable.0/ u:object_r:vendor_sysfs_graphics:s0
-
-genfscon sysfs /module/rmnet_perf/parameters u:object_r:vendor_sysfs_rmnet:s0
-
-genfscon sysfs /kernel/load_guestvm/boot_guestvm u:object_r:vendor_sysfs_bootguestvm:s0
-
-genfscon sysfs /kernel/qvr_external_sensor u:object_r:vendor_sysfs_qvr_external_sensor:s0
-genfscon sysfs /devices/system/memory/ u:object_r:vendor_sysfs_system_memory:s0
-genfscon sysfs /kernel/mem-offline/ u:object_r:vendor_sysfs_mem_offline:s0
-
-genfscon sysfs /kernel/slab/zs_handle/store_user u:object_r:vendor_sysfs_slab_zshandle_storeuser:s0
-genfscon sysfs /kernel/slab/zspage/store_user u:object_r:vendor_sysfs_slab_zspage_storeuser:s0
diff --git a/qva/vendor/common/hal_alarm_qti.te b/qva/vendor/common/hal_alarm_qti.te
deleted file mode 100755
index b6fa514..0000000
--- a/qva/vendor/common/hal_alarm_qti.te
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (c) 2017, 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.
-
-
-binder_call(vendor_hal_alarm_qti_client, vendor_hal_alarm_qti_server)
-binder_call(vendor_hal_alarm_qti_server, vendor_hal_alarm_qti_client)
-
-add_hwservice(vendor_hal_alarm_qti_server, vendor_hal_alarm_qti_hwservice)
-
-allow vendor_hal_alarm_qti_client vendor_hal_alarm_qti_hwservice:hwservice_manager find;
diff --git a/qva/vendor/common/hal_audio.te b/qva/vendor/common/hal_audio.te
deleted file mode 100644
index 2a38db9..0000000
--- a/qva/vendor/common/hal_audio.te
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright (c) 2018, 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.
-
-userdebug_or_eng(`
-  diag_use(hal_audio)
-  #Allow access to debug fs
-  allow hal_audio_default vendor_qti_debugfs:dir r_dir_perms;
-  allow hal_audio_default vendor_qti_debugfs:file rw_file_perms;
-')
-
-#Split A2dp specific
-binder_call(hal_audio,bluetooth)
-
-#to read bt props
-get_prop(hal_audio, vendor_bluetooth_prop)
-
-# Allow audio HAL to get updates from health hal
-hal_client_domain(hal_audio_default, hal_health)
diff --git a/qva/vendor/common/hal_authsecret_qti.te b/qva/vendor/common/hal_authsecret_qti.te
deleted file mode 100644
index 60053ad..0000000
--- a/qva/vendor/common/hal_authsecret_qti.te
+++ /dev/null
@@ -1,64 +0,0 @@
-# Copyright (c) 2020, 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
-# ONSEQUENTIAL 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
-
-type vendor_hal_authsecret_qti, domain;
-hal_server_domain(vendor_hal_authsecret_qti, hal_authsecret)
-
-type vendor_hal_authsecret_qti_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_hal_authsecret_qti)
-
-allow vendor_hal_authsecret_qti tee_device:chr_file rw_file_perms;
-get_prop(vendor_hal_authsecret_qti, vendor_tee_listener_prop)
-
-allow vendor_hal_authsecret_qti vendor_spcom_device:chr_file rw_file_perms;
-allow vendor_hal_authsecret_qti vendor_sp_keymaster_device:chr_file rw_file_perms;
-allow vendor_hal_authsecret_qti vendor_sp_ssr_device:chr_file rw_file_perms;
-allow vendor_hal_authsecret_qti vendor_sp_nvm_device:chr_file rw_file_perms;
-get_prop(vendor_hal_authsecret_qti, vendor_spcomlib_prop)
-
-# allow access to skp
-allow vendor_hal_authsecret_qti vendor_skp_device:chr_file rw_file_perms;
-
-# Allow access to spss_utils device
-allow vendor_hal_authsecret_qti vendor_spss_utils_device:chr_file rw_file_perms;
-
-# Need to check if really needed
-allow vendor_hal_authsecret_qti ion_device:chr_file rw_file_perms;
-
-# Allow to access IAR-DB at /mnt/vendor/persist/iar_db
-allow vendor_hal_authsecret_qti vendor_persist_iar_db_file:dir rw_dir_perms;
-allow vendor_hal_authsecret_qti vendor_persist_iar_db_file:file create_file_perms;
-
-r_dir_file(vendor_hal_authsecret_qti, mnt_vendor_file)
-
-# Allow to access IAR-DB at /mnt/vendor/spunvm
-allow vendor_hal_authsecret_qti vendor_spunvm_file:dir rw_dir_perms;
-allow vendor_hal_authsecret_qti vendor_spunvm_file:file create_file_perms;
-
-allow vendor_hal_authsecret_qti vendor_sysfs_data:file r_file_perms;
-allow vendor_hal_authsecret_qti vendor_sysfs_spdaemon:file r_file_perms;
-r_dir_file(vendor_hal_authsecret_qti, vendor_sysfs_spss);
diff --git a/qva/vendor/common/hal_bluetooth_default.te b/qva/vendor/common/hal_bluetooth_default.te
deleted file mode 100644
index 91f7977..0000000
--- a/qva/vendor/common/hal_bluetooth_default.te
+++ /dev/null
@@ -1,31 +0,0 @@
-# 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.
-
-hal_server_domain(hal_bluetooth_default, vendor_hal_fm)
-hal_server_domain(hal_bluetooth_default, vendor_hal_btconfigstore)
-# hal_bluetooth_default needes  open read on fm_radio_device
-allow hal_bluetooth_default vendor_fm_radio_device:chr_file r_file_perms;
diff --git a/qva/vendor/common/hal_bluetooth_dun.te b/qva/vendor/common/hal_bluetooth_dun.te
deleted file mode 100644
index 8cdf4f2..0000000
--- a/qva/vendor/common/hal_bluetooth_dun.te
+++ /dev/null
@@ -1,38 +0,0 @@
-# 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.
-
-type vendor_hal_bluetooth_dun_qti, domain;
-hal_server_domain(vendor_hal_bluetooth_dun_qti, vendor_hal_bluetooth_dun)
-
-type vendor_hal_bluetooth_dun_qti_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_hal_bluetooth_dun_qti)
-
-binder_call(vendor_hal_bluetooth_dun_client, vendor_hal_bluetooth_dun_server)
-binder_call(vendor_hal_bluetooth_dun_server, vendor_hal_bluetooth_dun_client)
-hal_attribute_hwservice(vendor_hal_bluetooth_dun, vendor_hal_bluetooth_dun_hwservice)
-
-portbridge_socket(vendor_hal_bluetooth_dun_qti)
diff --git a/qva/vendor/common/hal_btconfigstore.te b/qva/vendor/common/hal_btconfigstore.te
deleted file mode 100644
index 8152350..0000000
--- a/qva/vendor/common/hal_btconfigstore.te
+++ /dev/null
@@ -1,30 +0,0 @@
-# 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.
-
-binder_call(vendor_hal_btconfigstore_client, vendor_hal_btconfigstore_server)
-binder_call(vendor_hal_btconfigstore_server, vendor_hal_btconfigstore_client)
-hal_attribute_hwservice(vendor_hal_btconfigstore, vendor_hal_btconfigstore_hwservice)
diff --git a/qva/vendor/common/hal_camera.te b/qva/vendor/common/hal_camera.te
deleted file mode 100644
index 53bb3bc..0000000
--- a/qva/vendor/common/hal_camera.te
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright (c) 2018-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.
-
-allow hal_camera self:qipcrtr_socket create_socket_perms;
-allowxperm hal_camera self:qipcrtr_socket ioctl msm_sock_ipc_ioctls;
-
-hal_client_domain(hal_camera_default, vendor_hal_vpp)
-
-allow hal_camera gpu_device:chr_file rw_file_perms;
-
-allow hal_camera vendor_sysfs_jpeg:file r_file_perms;
-
-allow hal_camera vendor_sysfs_ddr:file r_file_perms;
-
-allow hal_camera vendor_qdisplay_service:service_manager find;
diff --git a/qva/vendor/common/hal_configstore.te b/qva/vendor/common/hal_configstore.te
deleted file mode 100644
index 688ae3e..0000000
--- a/qva/vendor/common/hal_configstore.te
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (c) 2018, 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.
-
-# allow configstore client to find display config service.
-allow hal_configstore_default vendor_hal_display_config_hwservice:hwservice_manager find;
-
-binder_call(hal_configstore_default, hal_graphics_composer_default)
diff --git a/qva/vendor/common/hal_cvp.te b/qva/vendor/common/hal_cvp.te
deleted file mode 100644
index 3cb9502..0000000
--- a/qva/vendor/common/hal_cvp.te
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_cvp, domain;
-type vendor_cvp_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_cvp)
-
-hal_server_domain(vendor_cvp, vendor_hal_cvp)
-
-add_hwservice(vendor_hal_cvp_server, vendor_hal_cvp_hwservice)
-
-allow vendor_hal_cvp_client vendor_hal_cvp_hwservice:hwservice_manager find;
-
-binder_call(vendor_hal_cvp_client, vendor_hal_cvp_server)
-binder_call(vendor_hal_cvp_server, vendor_hal_cvp_client)
-
-r_dir_file(vendor_cvp, adsprpcd_file)
-
-#  Access for ion memory
-allow vendor_cvp ion_device:chr_file rw_file_perms;
-
-#  Access for DSP/QDSP device
-allow vendor_cvp vendor_qdsp_device:chr_file rw_file_perms;
-allow vendor_cvp vendor_dsp_device:chr_file rw_file_perms;
-
-#  Access for sdcard
-userdebug_or_eng(`
-allow vendor_cvp sdcard_type:dir rw_dir_perms;
-allow vendor_cvp sdcard_type:file create_file_perms;
-')
-
-# Access for video device
-allow vendor_cvp video_device:chr_file rw_file_perms;
diff --git a/qva/vendor/common/hal_dpmQmiMgr.te b/qva/vendor/common/hal_dpmQmiMgr.te
deleted file mode 100755
index cb4b427..0000000
--- a/qva/vendor/common/hal_dpmQmiMgr.te
+++ /dev/null
@@ -1,65 +0,0 @@
-# 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.
-
-#dpmQmiMgr as domain
-type vendor_hal_dpmQmiMgr, domain;
-type vendor_hal_dpmQmiMgr_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_hal_dpmQmiMgr)
-
-net_domain(vendor_hal_dpmQmiMgr)
-
-#Add hal_dpmQMiMgr as hwservice
-add_hwservice(vendor_hal_dpmQmiMgr, vendor_hal_dpmqmi_hwservice)
-
-#Allow hwbinder usage
-hwbinder_use(vendor_hal_dpmQmiMgr)
-
-#Allow to get hwservice_prop
-get_prop(vendor_hal_dpmQmiMgr, hwservicemanager_prop)
-
-#Allow binder call from dpmd
-binder_call(vendor_hal_dpmQmiMgr,vendor_dpmd)
-
-#sysfs_data file permissions
-allow vendor_hal_dpmQmiMgr vendor_sysfs_data:file r_file_perms;
-
-#Allow reading proc/net entries
-r_dir_file(vendor_hal_dpmQmiMgr,proc_net)
-r_dir_file(vendor_hal_dpmQmiMgr,proc_net_tcp_udp)
-
-#Allow creating socket and IOCTLs
-allow vendor_hal_dpmQmiMgr self:{ socket qipcrtr_socket udp_socket } create_socket_perms_no_ioctl;
-
-#Rules below are needed to communicate with IPC_ROUTER for QMI
-allowxperm vendor_hal_dpmQmiMgr self:{ socket qipcrtr_socket } ioctl msm_sock_ipc_ioctls;
-allow vendor_hal_dpmQmiMgr self:capability net_bind_service;
-allowxperm vendor_hal_dpmQmiMgr self:udp_socket ioctl priv_sock_ioctls;
-
-userdebug_or_eng(`
-    diag_use(vendor_hal_dpmQmiMgr)
-')
diff --git a/qva/vendor/common/hal_drm_clearkey.te b/qva/vendor/common/hal_drm_clearkey.te
deleted file mode 100644
index e23aefe..0000000
--- a/qva/vendor/common/hal_drm_clearkey.te
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2017-2018, 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.
-
-# policy for /vendor/bin/hw/android.hardware.drm@1.x-service.clearkey
-type vendor_hal_drm_clearkey, domain;
-type vendor_hal_drm_clearkey_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_hal_drm_clearkey)
-
-hal_server_domain(vendor_hal_drm_clearkey, hal_drm)
-vndbinder_use(vendor_hal_drm_clearkey);
diff --git a/qva/vendor/common/hal_esepowermanager_qti.te b/qva/vendor/common/hal_esepowermanager_qti.te
deleted file mode 100644
index 6b7d1a0..0000000
--- a/qva/vendor/common/hal_esepowermanager_qti.te
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright (c) 2017, 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.
-
-type vendor_hal_esepowermanager_qti, domain;
-hal_server_domain(vendor_hal_esepowermanager_qti, vendor_hal_esepowermanager)
-
-type vendor_hal_esepowermanager_qti_exec, exec_type, file_type, vendor_file_type;
-init_daemon_domain(vendor_hal_esepowermanager_qti)
-
-hwbinder_use(vendor_hal_esepowermanager_qti)
-add_hwservice(vendor_hal_esepowermanager_qti, vendor_hal_esepowermanager_hwservice)
-
-hal_client_domain(vendor_hal_esepowermanager_qti, hal_allocator)
-
-#Allow access to nfc device
-allow vendor_hal_esepowermanager_qti {
-    nfc_device
-}:chr_file rw_file_perms;
-
-# allow esepmdaemon to load firmware images
-r_dir_file(vendor_hal_esepowermanager_qti, firmware_file)
-
-# Allow esepmdaemon to interract with ion_device
-allow vendor_hal_esepowermanager_qti ion_device:chr_file r_file_perms;
-
-# Allow esepmdaemon to interract with qseecom
-allow vendor_hal_esepowermanager_qti tee_device:chr_file rw_file_perms;
-
-#Allow hal_esepowermanager_client client domain apps to find hwservice
-binder_call(vendor_hal_esepowermanager_client, vendor_hal_esepowermanager_server)
-binder_call(vendor_hal_esepowermanager_server, vendor_hal_esepowermanager_client)
-
-allow vendor_hal_esepowermanager_client vendor_hal_esepowermanager_hwservice:hwservice_manager find;
diff --git a/qva/vendor/common/hal_factory_qti.te b/qva/vendor/common/hal_factory_qti.te
deleted file mode 100755
index db4872d..0000000
--- a/qva/vendor/common/hal_factory_qti.te
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright (c) 2017, 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.
-
-binder_call(vendor_hal_factory_qti_client, vendor_hal_factory_qti_server)
-binder_call(vendor_hal_factory_qti_server, vendor_hal_factory_qti_client)
-
-add_hwservice(vendor_hal_factory_qti_server, vendor_hal_factory_qti_hwservice)
-
-allow vendor_hal_factory_qti_client vendor_hal_factory_qti_hwservice:hwservice_manager find;
diff --git a/qva/vendor/common/hal_factory_qti_default.te b/qva/vendor/common/hal_factory_qti_default.te
deleted file mode 100755
index 0de46e1..0000000
--- a/qva/vendor/common/hal_factory_qti_default.te
+++ /dev/null
@@ -1,44 +0,0 @@
-# Copyright (c) 2017, 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.
-
-type vendor_hal_factory_qti_default, domain;
-hal_server_domain(vendor_hal_factory_qti_default, vendor_hal_factory_qti)
-
-type vendor_hal_factory_qti_default_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_hal_factory_qti_default)
-
-set_prop(vendor_hal_factory_qti, vendor_ctl_vendor_mmid_prop)
-
-# Allow read/write to mmi socket
-allow vendor_hal_factory_qti vendor_mmi_socket:sock_file rw_file_perms;
-allow vendor_hal_factory_qti vendor_mmi:unix_stream_socket connectto;
-allow vendor_hal_factory_qti_default mnt_vendor_file:dir search;
-allow vendor_hal_factory_qti_default vendor_persist_mmi_file:dir rw_dir_perms;
-allow vendor_hal_factory_qti_default vendor_persist_mmi_file:file create_file_perms;
-
-# Allow set vendor.sys.boot_mode property
-set_prop(vendor_hal_factory_qti_default, vendor_boot_mode_prop);
diff --git a/qva/vendor/common/hal_fm.te b/qva/vendor/common/hal_fm.te
deleted file mode 100644
index b497613..0000000
--- a/qva/vendor/common/hal_fm.te
+++ /dev/null
@@ -1,30 +0,0 @@
-# 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.
-
-binder_call(vendor_hal_fm_client, vendor_hal_fm_server)
-binder_call(vendor_hal_fm_server, vendor_hal_fm_client)
-hal_attribute_hwservice(vendor_hal_fm, vendor_hal_fm_hwservice)
diff --git a/qva/vendor/common/hal_gatekeeper_qti.te b/qva/vendor/common/hal_gatekeeper_qti.te
deleted file mode 100644
index aabdaee..0000000
--- a/qva/vendor/common/hal_gatekeeper_qti.te
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright (c) 2018, 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.
-# allow access to /dev/spcom
-
-allow vendor_hal_gatekeeper_qti vendor_spcom_device:chr_file rw_file_perms;
-
-# allow access to skp
-allow vendor_hal_gatekeeper_qti vendor_skp_device:chr_file rw_file_perms;
-
-#allow access to /dev/spss_utils
-allow vendor_hal_gatekeeper_qti vendor_spss_utils_device:chr_file rw_file_perms;
-
-allow vendor_hal_gatekeeper_qti vendor_sp_keymaster_device:chr_file rw_file_perms;
-allow vendor_hal_gatekeeper_qti vendor_sp_ssr_device:chr_file rw_file_perms;
-get_prop(vendor_hal_gatekeeper_qti, vendor_spcomlib_prop)
-
-get_prop(vendor_hal_gatekeeper_qti, vendor_disable_spu_prop)
diff --git a/qva/vendor/common/hal_gnss_qti.te b/qva/vendor/common/hal_gnss_qti.te
deleted file mode 100644
index 7a89407..0000000
--- a/qva/vendor/common/hal_gnss_qti.te
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2018-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.
-
-# qva/vendor_hal_gnss_qti.te - generic sepolicy rules for qti value added
-# location hidl
-
-userdebug_or_eng(`
-  get_prop(vendor_hal_gnss_qti, vendor_pd_locater_dbg_prop)
-')
-
-allow hal_gnss self:qipcrtr_socket create_socket_perms_no_ioctl;
diff --git a/qva/vendor/common/hal_iop_default.te b/qva/vendor/common/hal_iop_default.te
deleted file mode 100644
index 0e016a5..0000000
--- a/qva/vendor/common/hal_iop_default.te
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright (c) 2017, 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.
-
-type vendor_hal_iop_default, domain, mlstrustedsubject;
-hal_server_domain(vendor_hal_iop_default, vendor_hal_iop)
-
-type vendor_hal_iop_default_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_hal_iop_default)
-
-# Allow hwbinder call from hal client to server
-binder_call(vendor_hal_iop_client, vendor_hal_iop_server)
-# Add hwservice related rules
-add_hwservice(vendor_hal_iop_server, vendor_hal_iop_hwservice)
-allow vendor_hal_iop_client vendor_hal_iop_hwservice:hwservice_manager find;
-allow vendor_hal_iop_client vendor_hal_perf_hwservice:hwservice_manager find;
-
-#Allow access for vendor property
-get_prop(vendor_hal_iop, vendor_iop_prop)
-get_prop(vendor_hal_iop, vendor_mpctl_prop)
-
-# Allow access for /proc
-allow vendor_hal_iop_default proc:file r_file_perms;
-
-#Allow Access for /data/vendor/iop
-allow vendor_hal_iop vendor_iop_data_file:dir rw_dir_perms;
-allow vendor_hal_iop vendor_iop_data_file:file create_file_perms;
-hal_client_domain(vendor_hal_iop_default, vendor_hal_perf)
diff --git a/qva/vendor/common/hal_keymaster_qti.te b/qva/vendor/common/hal_keymaster_qti.te
deleted file mode 100644
index d2f0d6e..0000000
--- a/qva/vendor/common/hal_keymaster_qti.te
+++ /dev/null
@@ -1,39 +0,0 @@
-# Copyright (c) 2018, 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.
-# allow access to /dev/spcom
-
-allow vendor_hal_keymaster_qti vendor_spcom_device:chr_file rw_file_perms;
-
-# allow access to skp
-allow vendor_hal_keymaster_qti vendor_skp_device:chr_file rw_file_perms;
-
-#allow access to /dev/spss_utils
-allow vendor_hal_keymaster_qti vendor_spss_utils_device:chr_file rw_file_perms;
-
-allow vendor_hal_keymaster_qti vendor_sp_keymaster_device:chr_file rw_file_perms;
-allow vendor_hal_keymaster_qti vendor_sp_ssr_device:chr_file rw_file_perms;
-get_prop(vendor_hal_keymaster_qti, vendor_spcomlib_prop)
diff --git a/qva/vendor/common/hal_memtrack.te b/qva/vendor/common/hal_memtrack.te
deleted file mode 100644
index da3fc77..0000000
--- a/qva/vendor/common/hal_memtrack.te
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright (c) 2017-2018, 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.
-
-#debugfs access to audio
-userdebug_or_eng(`
-allow hal_memtrack_default vendor_qti_debugfs:dir r_dir_perms;
-allow hal_memtrack_default vendor_qti_debugfs:file rw_file_perms;
-')
diff --git a/qva/vendor/common/hal_nfc_default.te b/qva/vendor/common/hal_nfc_default.te
deleted file mode 100644
index fb447a5..0000000
--- a/qva/vendor/common/hal_nfc_default.te
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2018, 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.
-
-add_hwservice(hal_nfc_default, hal_nfc_hwservice)
-
-# Get NFC properties
-get_prop(hal_nfc_default, vendor_nfc_nq_prop)
-
-#Allow access to firmware
-r_dir_file(hal_nfc_default, firmware_file)
-allow hal_nfc_default vendor_nfc_vendor_data_file:file rw_file_perms;
diff --git a/qva/vendor/common/hal_pasrmanager.te b/qva/vendor/common/hal_pasrmanager.te
deleted file mode 100644
index a9bf123..0000000
--- a/qva/vendor/common/hal_pasrmanager.te
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright (c) 2018-2020, 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 vendor_hal_pasrmanager_qti, domain;
-type vendor_hal_pasrmanager_qti_exec, exec_type, vendor_file_type, file_type;
-hal_server_domain(vendor_hal_pasrmanager_qti, vendor_hal_pasrmanager)
-init_daemon_domain(vendor_hal_pasrmanager_qti)
-binder_call(vendor_hal_pasrmanager_client, vendor_hal_pasrmanager_server)
-
-add_hwservice(vendor_hal_pasrmanager_server, vendor_hal_pasrmanager_hwservice)
-allow vendor_hal_pasrmanager_client vendor_hal_pasrmanager_hwservice:hwservice_manager find;
-
-allow vendor_hal_pasrmanager_qti sysfs:dir r_dir_perms;
-allow vendor_hal_pasrmanager_qti vendor_sysfs_system_memory:file rw_file_perms;
-allow vendor_hal_pasrmanager_qti vendor_sysfs_system_memory:dir r_dir_perms;
diff --git a/qva/vendor/common/hal_pasrmanager_memory.te b/qva/vendor/common/hal_pasrmanager_memory.te
deleted file mode 100644
index 528daf0..0000000
--- a/qva/vendor/common/hal_pasrmanager_memory.te
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copyright (c) 2020, 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 for PASR HAL
-type vendor_pasrmanager_memory_qti, domain;
-type vendor_pasrmanager_memory_qti_exec, exec_type, vendor_file_type, file_type;
-
-# Allow permissions required for this HAL server to offer a
-# HAL implementation of the specified type over HwBinder
-hal_server_domain(vendor_pasrmanager_memory_qti, vendor_hal_mem_pasrmanager)
-
-# Started by init
-init_daemon_domain(vendor_pasrmanager_memory_qti)
-
-# Allow PASR clients to perform binder IPC to PASR HAL server
-binder_call(vendor_hal_mem_pasrmanager_client, vendor_hal_mem_pasrmanager_server)
-
-# Add pasrmanager to hwservice_manager and allow it to be discovered
-hal_attribute_hwservice(vendor_hal_mem_pasrmanager, vendor_hal_pasrmanager_memory_hwservice)
-
-# Allow access for pasrmanager for reading "/system/devices/memory/*"
-allow vendor_pasrmanager_memory_qti vendor_sysfs_system_memory:file rw_file_perms;
-allow vendor_pasrmanager_memory_qti vendor_sysfs_system_memory:dir r_dir_perms;
-
-# Read/Write "/sys/kernel/mem-offline/*" sysfs files
-allow vendor_pasrmanager_memory_qti vendor_sysfs_mem_offline:file rw_file_perms;
-allow vendor_pasrmanager_memory_qti vendor_sysfs_mem_offline:dir r_dir_perms;
-
-# Read /proc/zoneinfo
-allow vendor_pasrmanager_memory_qti proc_zoneinfo:file r_file_perms;
-
-# Read /proc/meminfo
-allow vendor_pasrmanager_memory_qti proc_meminfo:file r_file_perms;
-
-# Read sysfs directories
-allow vendor_pasrmanager_memory_qti sysfs:dir r_dir_perms;
-
-# For reading "vendor.pasr." properties
-get_prop(vendor_pasrmanager_memory_qti, vendor_pasr_prop)
-
-hal_client_domain(vendor_pasrmanager_memory_qti, hal_allocator)
diff --git a/qva/vendor/common/hal_perf_default.te b/qva/vendor/common/hal_perf_default.te
deleted file mode 100644
index d3faf02..0000000
--- a/qva/vendor/common/hal_perf_default.te
+++ /dev/null
@@ -1,127 +0,0 @@
-# Copyright (c) 2017-2018, 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.
-
-type vendor_hal_perf_default, domain, mlstrustedsubject;
-hal_server_domain_bypass(vendor_hal_perf_default, vendor_hal_perf)
-
-type vendor_hal_perf_default_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_hal_perf_default)
-
-# Allow hwbinder call from hal client to server
-binder_call(vendor_hal_perf_client, vendor_hal_perf_server)
-
-# Add hwservice related rules
-add_hwservice(vendor_hal_perf_server, vendor_hal_perf_hwservice)
-allow vendor_hal_perf_client vendor_hal_perf_hwservice:hwservice_manager find;
-
-allow vendor_hal_perf_default cgroup:file r_file_perms;
-allow vendor_hal_perf_default proc:file rw_file_perms;
-allow vendor_hal_perf vendor_latency_device:chr_file rw_file_perms;
-get_prop(vendor_hal_perf, vendor_freq_prop)
-get_prop(vendor_hal_perf, vendor_mpctl_prop)
-allow vendor_hal_perf_default vendor_mpctl_data_file:dir rw_dir_perms;
-allow vendor_hal_perf_default vendor_mpctl_data_file:file create_file_perms;
-allow vendor_hal_perf_default vendor_lm_data_file:dir rw_dir_perms;
-allow vendor_hal_perf_default vendor_lm_data_file:file create_file_perms;
-allow vendor_hal_perf_default vendor_sysfs_lib:file w_file_perms;
-allow vendor_hal_perf_default proc_meminfo:file r_file_perms;
-allow vendor_hal_perf_default self:netlink_generic_socket create_socket_perms_no_ioctl;
-allow vendor_hal_perf_default {appdomain}:process getpgid;
-hal_client_domain(vendor_hal_perf_default, vendor_hal_iop);
-hal_client_domain(vendor_hal_perf_default, vendor_hal_srvctracker);
-r_dir_file(vendor_hal_perf_default, appdomain);
-allow vendor_hal_perf_default {appdomain}:file rw_file_perms;
-
-allow vendor_hal_perf {
-     sysfs_devices_system_cpu
-     vendor_sysfs_mpctl
-     vendor_sysfs_devfreq
-     vendor_sysfs_mmc_host
-     vendor_sysfs_scsi_host
-     vendor_sysfs_kgsl
-     vendor_sysfs_kgsl_proc
-     vendor_sysfs_cpu_boost
-     vendor_sysfs_msm_perf
-     vendor_sysfs_memory
-     vendor_sysfs_graphics
-     vendor_sysfs_msm_power
-     vendor_sysfs_battery_supply
-     vendor_sysfs_process_reclaim
-     vendor_sysfs_qfprom
-}:dir r_dir_perms;
-
-allow vendor_hal_perf {
-     sysfs_devices_system_cpu
-     vendor_sysfs_mpctl
-     vendor_sysfs_cpu_boost
-     vendor_sysfs_msm_perf
-     vendor_sysfs_kgsl
-     vendor_sysfs_cpu_boost
-     vendor_sysfs_msm_perf
-     vendor_sysfs_memory
-     vendor_sysfs_graphics
-     vendor_sysfs_scsi_host
-     vendor_sysfs_devfreq
-     vendor_sysfs_mmc_host
-     vendor_sysfs_msm_power
-     vendor_sysfs_battery_supply
-     vendor_sysfs_process_reclaim
-     vendor_sysfs_qfprom
-     vendor_sysfs_kgsl_proc
-     sysfs_dm
-}:file rw_file_perms;
-
-allow vendor_hal_perf {
-    vendor_sysfs_devfreq
-    vendor_sysfs_mmc_host
-    vendor_sysfs_scsi_host
-    vendor_sysfs_kgsl
-}:lnk_file r_file_perms;
-
-# Allow to self kill capability
-allow vendor_hal_perf_default self:capability { kill };
-
-# Allow QSPM access
-hal_client_domain(vendor_hal_perf_default, vendor_hal_qspmhal);
-
-# Allow hal_perf to set property
-set_prop(vendor_hal_perf_default, vendor_mpctl_prop)
-
-#Allow Display Config access
-hal_client_domain(vendor_hal_perf_default, hal_graphics_composer);
-
-# Allow connecting to thermal_socket
-unix_socket_connect(vendor_hal_perf_default, vendor_thermal, vendor_thermal-engine)
-
-#Allow display driver access
-allow vendor_hal_perf_default graphics_device:chr_file rw_file_perms;
-
-# Allow shared memory access
-hal_client_domain(vendor_hal_perf_default, hal_allocator);
-
-allow vendor_hal_perf_default block_device:dir { open read search };
-allow vendor_hal_perf_default proc_diskstats:file { getattr open read };
diff --git a/qva/vendor/common/hal_qseecom.te b/qva/vendor/common/hal_qseecom.te
deleted file mode 100644
index 09dedab..0000000
--- a/qva/vendor/common/hal_qseecom.te
+++ /dev/null
@@ -1,52 +0,0 @@
-# Copyright (c) 2019-2020, 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 the domain
-type vendor_hal_qseecom_default, domain;
-hal_server_domain(vendor_hal_qseecom_default, vendor_hal_qseecom)
-type vendor_hal_qseecom_default_exec, exec_type, file_type, vendor_file_type;
-
-init_daemon_domain(vendor_hal_qseecom_default)
-
-#Allow hal_qseecom client domain apps to find hwservice
-binder_call(vendor_hal_qseecom_client, vendor_hal_qseecom_server)
-binder_call(vendor_hal_qseecom_server, vendor_hal_qseecom_client)
-
-#allow the service to be added to hwservice list
-hal_attribute_hwservice(vendor_hal_qseecom, vendor_hal_qseecom_hwservice)
-
-#allow access to hal_allocator
-hal_client_domain(vendor_hal_qseecom_default, hal_allocator)
-
-#allow access to ion device
-allow vendor_hal_qseecom_default ion_device:chr_file rw_file_perms;
-
-#Allow access to firmware
-r_dir_file(vendor_hal_qseecom_default, firmware_file);
-
-#Allow access to tee device
-allow vendor_hal_qseecom_default tee_device:chr_file rw_file_perms;
diff --git a/qva/vendor/common/hal_qteeconnector_qti.te b/qva/vendor/common/hal_qteeconnector_qti.te
deleted file mode 100644
index 209c8eb..0000000
--- a/qva/vendor/common/hal_qteeconnector_qti.te
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright (c) 2017, 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 the type
-type vendor_hal_qteeconnector_qti, domain;
-
-#mark the type as hal_server_domain
-hal_server_domain(vendor_hal_qteeconnector_qti, vendor_hal_qteeconnector)
-
-#allow the service to be started by init
-type vendor_hal_qteeconnector_qti_exec, exec_type, file_type, vendor_file_type;
-init_daemon_domain(vendor_hal_qteeconnector_qti)
-#allow the service to be added to hwservice list
-add_hwservice(vendor_hal_qteeconnector_qti, vendor_hal_qteeconnector_hwservice)
-
-#allow access to hal_allocator
-hal_client_domain(vendor_hal_qteeconnector_qti, hal_allocator)
-
-#allow access to ion device
-allow vendor_hal_qteeconnector ion_device:chr_file rw_file_perms;
-
-#allow access to and use of graphics allocator
-hal_client_domain(vendor_hal_qteeconnector_qti, hal_graphics_allocator)
-
-#Allow access to tee device
-allow vendor_hal_qteeconnector_qti tee_device:chr_file rw_file_perms;
-
-#Allow access to firmware
-allow vendor_hal_qteeconnector firmware_file:dir r_dir_perms;
-allow vendor_hal_qteeconnector firmware_file:file r_file_perms;
-
-#Allow access to the gp_reqcancel socket
-allow vendor_hal_qteeconnector_qti tee:unix_dgram_socket sendto;
-
-#Allow hal_qteeconnector client domain apps to find hwservice
-binder_call(vendor_hal_qteeconnector_client, vendor_hal_qteeconnector_server)
-binder_call(vendor_hal_qteeconnector_server, vendor_hal_qteeconnector_client)
-allow vendor_hal_qteeconnector_client vendor_hal_qteeconnector_hwservice:hwservice_manager find;
diff --git a/qva/vendor/common/hal_scve.te b/qva/vendor/common/hal_scve.te
deleted file mode 100644
index 67b5359..0000000
--- a/qva/vendor/common/hal_scve.te
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_scve, domain;
-type vendor_scve_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_scve)
-
-hal_server_domain(vendor_scve, vendor_hal_scve)
-
-add_hwservice(vendor_hal_scve_server, vendor_hal_scve_hwservice)
-
-allow vendor_hal_scve_client vendor_hal_scve_hwservice:hwservice_manager find;
-
-binder_call(vendor_hal_scve_client, vendor_hal_scve_server)
-binder_call(vendor_hal_scve_server, vendor_hal_scve_client)
-
-r_dir_file(vendor_scve, adsprpcd_file)
-
-#  Access for ion memory
-allow vendor_scve ion_device:chr_file rw_file_perms;
-
-#  Access for DSP/QDSP device
-allow vendor_scve vendor_qdsp_device:chr_file rw_file_perms;
-allow vendor_scve vendor_dsp_device:chr_file rw_file_perms;
-
-#  Access for GPU
-allow vendor_scve gpu_device:chr_file rw_file_perms;
-
-#  Access for sdcard
-userdebug_or_eng(`
-allow vendor_scve sdcard_type:dir rw_dir_perms;
-allow vendor_scve sdcard_type:file create_file_perms;
-')
diff --git a/qva/vendor/common/hal_seccam_qti.te b/qva/vendor/common/hal_seccam_qti.te
deleted file mode 100644
index 98e533d..0000000
--- a/qva/vendor/common/hal_seccam_qti.te
+++ /dev/null
@@ -1,42 +0,0 @@
-# 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.
-
-type vendor_hal_seccam_qti, domain;
-
-type vendor_hal_seccam_qti_exec, exec_type, file_type, vendor_file_type;
-init_daemon_domain(vendor_hal_seccam_qti)
-hal_server_domain(vendor_hal_seccam_qti, vendor_hal_seccam)
-
-binder_call(vendor_hal_seccam_client, vendor_hal_seccam_server)
-binder_call(vendor_hal_seccam_server, vendor_hal_seccam_client)
-
-add_hwservice(vendor_hal_seccam_server, vendor_hal_seccam_hwservice)
-
-allow vendor_hal_seccam_qti video_device:chr_file rw_file_perms;
-hal_client_domain(vendor_hal_seccam_qti, hal_graphics_allocator)
-hal_client_domain(vendor_hal_seccam_qti, vendor_hal_perf)
-set_prop(vendor_hal_seccam_qti, vendor_core_ctl_prop);
diff --git a/qva/vendor/common/hal_secure_element_default.te b/qva/vendor/common/hal_secure_element_default.te
deleted file mode 100644
index 9210a56..0000000
--- a/qva/vendor/common/hal_secure_element_default.te
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright (c) 2018, 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.
-
-hal_client_domain(hal_secure_element_default, vendor_hal_qteeconnector)
-hal_client_domain(hal_secure_element_default, vendor_hal_esepowermanager)
-
-allow hal_secure_element_default vendor_secure_element_vendor_data_file:dir rw_dir_perms;
-allow hal_secure_element_default vendor_secure_element_vendor_data_file:file create_file_perms;
diff --git a/qva/vendor/common/hal_secureprocessor_qti.te b/qva/vendor/common/hal_secureprocessor_qti.te
deleted file mode 100644
index b570f5d..0000000
--- a/qva/vendor/common/hal_secureprocessor_qti.te
+++ /dev/null
@@ -1,42 +0,0 @@
-# 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.
-
-type vendor_hal_secureprocessor_qti, domain;
-hal_server_domain(vendor_hal_secureprocessor_qti, vendor_hal_secureprocessor)
-
-type vendor_hal_secureprocessor_qti_exec, exec_type, file_type, vendor_file_type;
-init_daemon_domain(vendor_hal_secureprocessor_qti)
-
-binder_call(vendor_hal_secureprocessor_client, vendor_hal_secureprocessor_server)
-binder_call(vendor_hal_secureprocessor_server, vendor_hal_secureprocessor_client)
-
-hal_attribute_hwservice(vendor_hal_secureprocessor, vendor_hal_secureprocessor_hwservice)
-
-allow vendor_hal_secureprocessor_qti tee_device:chr_file rw_file_perms;
-allow vendor_hal_secureprocessor_qti ion_device:chr_file r_file_perms;
-
-hal_client_domain(vendor_hal_secureprocessor_qti, hal_graphics_allocator);
diff --git a/qva/vendor/common/hal_sensors_default.te b/qva/vendor/common/hal_sensors_default.te
deleted file mode 100644
index eeed374..0000000
--- a/qva/vendor/common/hal_sensors_default.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# 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.
-
-allow hal_sensors_default vendor_qvrd:fd use;
diff --git a/qva/vendor/common/hal_sensorscalibrate_qti.te b/qva/vendor/common/hal_sensorscalibrate_qti.te
deleted file mode 100644
index 9b8e33e..0000000
--- a/qva/vendor/common/hal_sensorscalibrate_qti.te
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright (c) 2018, 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.
-
-binder_call(vendor_hal_sensorscalibrate_qti_client, vendor_hal_sensorscalibrate_qti_server)
-binder_call(vendor_hal_sensorscalibrate_qti_server, vendor_hal_sensorscalibrate_qti_client)
-
-add_hwservice(vendor_hal_sensorscalibrate_qti_server, vendor_hal_sensorscalibrate_qti_hwservice)
-
-allow vendor_hal_sensorscalibrate_qti_client vendor_hal_sensorscalibrate_qti_hwservice:hwservice_manager find;
diff --git a/qva/vendor/common/hal_sensorscalibrate_qti_default.te b/qva/vendor/common/hal_sensorscalibrate_qti_default.te
deleted file mode 100644
index eaca97e..0000000
--- a/qva/vendor/common/hal_sensorscalibrate_qti_default.te
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_hal_sensorscalibrate_qti_default, domain;
-hal_server_domain(vendor_hal_sensorscalibrate_qti_default, vendor_hal_sensorscalibrate_qti)
-
-type vendor_hal_sensorscalibrate_qti_default_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_hal_sensorscalibrate_qti_default)
-r_dir_file(vendor_hal_sensorscalibrate_qti_default, mnt_vendor_file)
-
-allow vendor_hal_sensorscalibrate_qti vendor_sysfs_data:file r_file_perms;
-allow vendor_hal_sensorscalibrate_qti self:{ socket qipcrtr_socket } create_socket_perms;
-allowxperm vendor_hal_sensorscalibrate_qti self:{ socket qipcrtr_socket } ioctl msm_sock_ipc_ioctls;
diff --git a/qva/vendor/common/hal_soter_qti.te b/qva/vendor/common/hal_soter_qti.te
deleted file mode 100755
index 92fdc8a..0000000
--- a/qva/vendor/common/hal_soter_qti.te
+++ /dev/null
@@ -1,49 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_hal_soter_qti, domain;
-hal_server_domain(vendor_hal_soter_qti, vendor_hal_soter)
-
-type vendor_hal_soter_qti_exec, exec_type, file_type, vendor_file_type;
-init_daemon_domain(vendor_hal_soter_qti)
-
-binder_call(vendor_hal_soter_client, vendor_hal_soter_server)
-binder_call(vendor_hal_soter_server, vendor_hal_soter_client)
-
-add_hwservice(vendor_hal_soter_server, vendor_hal_soter_hwservice)
-allow vendor_hal_soter_client vendor_hal_soter_hwservice:hwservice_manager find;
-
-#Allow access to tee device
-allow vendor_hal_soter_qti tee_device:chr_file rw_file_perms;
-
-#Allow access to load firmware images
-r_dir_file(vendor_hal_soter_qti, firmware_file)
-
-#Allow access to interract with ion_device
-allow vendor_hal_soter_qti ion_device:chr_file r_file_perms;
-
-get_prop(vendor_hal_soter_qti, vendor_tee_listener_prop)
diff --git a/qva/vendor/common/hal_spu_qti.te b/qva/vendor/common/hal_spu_qti.te
deleted file mode 100644
index 7683fca..0000000
--- a/qva/vendor/common/hal_spu_qti.te
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright (c) 2019-2020, 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.
-
-type vendor_hal_spu_qti, domain;
-type vendor_hal_spu_qti_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_hal_spu_qti)
-
-hal_server_domain(vendor_hal_spu_qti, vendor_hal_spu)
-
-# Allow access to hal_allocator
-hal_client_domain(vendor_hal_spu_qti, hal_allocator)
-
-# Allow vendor_hal_spu client domain apps to find hwservice
-binder_call(vendor_hal_spu_client, vendor_hal_spu_server)
-binder_call(vendor_hal_spu_server, vendor_hal_spu_client)
-
-# Allow the service to be added to hwservice list
-hal_attribute_hwservice(vendor_hal_spu, vendor_hal_spu_hwservice)
-
-# Allow access to spss_utils device
-allow vendor_hal_spu_qti vendor_spss_utils_device:chr_file rw_file_perms;
-
-# Allow access to spcom devices
-allow vendor_hal_spu_qti vendor_spcom_device:chr_file rw_file_perms;
-allow vendor_hal_spu_qti vendor_skp_device:chr_file rw_file_perms;
-allow vendor_hal_spu_qti vendor_sp_ssr_device:chr_file rw_file_perms;
-allow vendor_hal_spu_qti vendor_cryptoapp_device:chr_file rw_file_perms;
-allow vendor_hal_spu_qti vendor_iuicc_device:chr_file rw_file_perms;
-allow vendor_hal_spu_qti vendor_spu_hal_ssr_device:chr_file rw_file_perms;
-
-# Alloc acess to ion_device
-allow vendor_hal_spu_qti ion_device:chr_file rw_file_perms;
-
-# Allow set / get spcomlib prop
-set_prop(vendor_hal_spu_qti, vendor_spcomlib_prop)
-
-# Vendor binder
-use_vendor_per_mgr(vendor_hal_spu_qti)
diff --git a/qva/vendor/common/hal_srvctracker_default.te b/qva/vendor/common/hal_srvctracker_default.te
deleted file mode 100644
index 330f72c..0000000
--- a/qva/vendor/common/hal_srvctracker_default.te
+++ /dev/null
@@ -1,42 +0,0 @@
-# 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 vendor_hal_srvctracker_default, domain;
-type vendor_hal_srvctracker_default_exec, exec_type, vendor_file_type, file_type;
-hal_server_domain(vendor_hal_srvctracker_default, vendor_hal_srvctracker)
-init_daemon_domain(vendor_hal_srvctracker_default)
-
-binder_call(vendor_hal_srvctracker_client, vendor_hal_srvctracker_server)
-binder_call(vendor_hal_srvctracker_server, vendor_hal_srvctracker_client)
-
-add_hwservice(vendor_hal_srvctracker, vendor_hal_srvctracker_hwservice)
-
-allow vendor_hal_srvctracker_client vendor_hal_srvctracker_hwservice:hwservice_manager find;
-allow vendor_hal_srvctracker hwservicemanager:binder call;
-
-get_prop(vendor_hal_srvctracker_default, hwservicemanager_prop)
diff --git a/qva/vendor/common/hal_usb.te b/qva/vendor/common/hal_usb.te
deleted file mode 100644
index f3874dc..0000000
--- a/qva/vendor/common/hal_usb.te
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright (c) 2019-2020, 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.
-
-type vendor_hal_usb_qti, domain;
-hal_server_domain(vendor_hal_usb_qti, hal_usb_gadget)
-hal_server_domain(vendor_hal_usb_qti, hal_usb)
-
-type vendor_hal_usb_qti_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_hal_usb_qti)
-
-get_prop(vendor_hal_usb_qti, vendor_usb_prop)
-set_prop(vendor_hal_usb_qti, vendor_usb_prop)
-
-allow vendor_hal_usb_qti configfs:file create_file_perms;
-allow vendor_hal_usb_qti vendor_sysfs_usb_c:dir r_dir_perms;
-allow vendor_hal_usb_qti vendor_sysfs_usb_c:lnk_file r_file_perms;
-allow vendor_hal_usb_qti vendor_sysfs_usb_c:file rw_file_perms;
-r_dir_file(vendor_hal_usb_qti, vendor_sysfs_battery_supply);
-r_dir_file(vendor_hal_usb_qti, vendor_sysfs_usb_supply);
diff --git a/qva/vendor/common/hal_vibrator.te b/qva/vendor/common/hal_vibrator.te
deleted file mode 100644
index 644be03..0000000
--- a/qva/vendor/common/hal_vibrator.te
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (c) 2018, 2020, 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.
-
-r_dir_file(hal_vibrator, sysfs_leds)
-allow hal_vibrator input_device:dir r_dir_perms;
-allow hal_vibrator input_device:chr_file rw_file_perms;
-use_libsoc_helper(hal_vibrator);
diff --git a/qva/vendor/common/hal_wifi_hostapd.te b/qva/vendor/common/hal_wifi_hostapd.te
deleted file mode 100644
index 1833e6d..0000000
--- a/qva/vendor/common/hal_wifi_hostapd.te
+++ /dev/null
@@ -1,50 +0,0 @@
-# Copyright (c) 2019-2020, 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.
-
-# Allow hostapd to access it's data folder
-r_dir_file(hal_wifi_hostapd_default, vendor_wifi_vendor_data_file)
-allow hal_wifi_hostapd_default hostapd_data_file:dir rw_dir_perms;
-allow hal_wifi_hostapd_default hostapd_data_file:file create_file_perms;
-# Allow hostapd to create control socket under its data folder
-allow hal_wifi_hostapd_default hostapd_data_file:sock_file create_file_perms;
-
-# Allow hostapd to connect to fstman using control socket
-allow hal_wifi_hostapd_default vendor_fstman:unix_dgram_socket sendto;
-# Allow hostapd to connect to mutualex using control socket
-allow hal_wifi_hostapd_default vendor_mutualex:unix_dgram_socket sendto;
-# wigig_hostapd has its own directory for sockets,
-# in order to prevent conflicts with wifi hostapd
-# allow wigig_hostapd to create the directory holding its control socket
-allow hal_wifi_hostapd_default vendor_wigig_hostapd_socket:dir create_dir_perms;
-# wigig_hostapd needs to create, bind to, read and write its control socket
-allow hal_wifi_hostapd_default vendor_wigig_hostapd_socket:sock_file create_file_perms;
-# allow wigig_hostapd to send replies to wigighalsvc
-allow hal_wifi_hostapd_default vendor_wigighalsvc:unix_dgram_socket sendto;
-# allow hostapd to attach to fstman socket
-allow hal_wifi_hostapd_default vendor_wifi_vendor_wpa_socket:dir r_dir_perms;
-allow hal_wifi_hostapd_default vendor_wifi_vendor_wpa_socket:sock_file rw_file_perms;
-allow hal_wifi_hostapd_default vendor_wigig_vendor_wpa_socket:sock_file rw_file_perms;
diff --git a/qva/vendor/common/hal_wifi_supplicant.te b/qva/vendor/common/hal_wifi_supplicant.te
deleted file mode 100644
index 3f6f06d..0000000
--- a/qva/vendor/common/hal_wifi_supplicant.te
+++ /dev/null
@@ -1,55 +0,0 @@
-# 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.
-#
-
-# Allow access to create socket and ioctl.
-
-allow hal_wifi_supplicant_default self:qipcrtr_socket create_socket_perms_no_ioctl;
-
-# Allow write to proc_net.
-allow hal_wifi_supplicant_default proc_net:file write;
-hal_client_domain(hal_wifi_supplicant_default,hal_wifi);
-
-allow hal_wifi_supplicant vendor_wifi_vendor_data_file:dir create_dir_perms;
-allow hal_wifi_supplicant vendor_wifi_vendor_data_file:file create_file_perms;
-allow hal_wifi_supplicant vendor_wifi_vendor_wpa_socket:dir create_dir_perms;
-allow hal_wifi_supplicant vendor_wifi_vendor_wpa_socket:sock_file create_file_perms;
-allow hal_wifi_supplicant vendor_wigig_vendor_wpa_socket:sock_file rw_file_perms;
-allow hal_wifi_supplicant_default hal_wifi_default:binder call;
-allow hal_wifi_supplicant_default hal_wifi_hwservice:hwservice_manager find;
-allow hal_wifi_supplicant_default vendor_tombstone_data_file:dir { open read search };
-allow hal_wifi_supplicant_default vendor_tombstone_data_file:file { getattr open read };
-allow hal_wifi_supplicant_default vendor_log_wifi_data_file:dir search;
-allow hal_wifi_supplicant_default vendor_log_wifi_data_file:dir { add_name write };
-allow hal_wifi_supplicant_default vendor_log_wifi_data_file:file { create getattr open write };
-allow hal_wifi_supplicant_default vendor_log_wifi_data_file:dir write;
-
-
-allow hal_wifi_supplicant vendor_fstman:unix_dgram_socket sendto;
-allow hal_wifi_supplicant vendor_wigighalsvc:unix_dgram_socket sendto;
-
-type_transition hal_wifi_supplicant vendor_wifi_vendor_data_file:dir vendor_wifi_vendor_wpa_socket "wigig_sockets";
diff --git a/qva/vendor/common/hostapd.te b/qva/vendor/common/hostapd.te
deleted file mode 100644
index 023e8e6..0000000
--- a/qva/vendor/common/hostapd.te
+++ /dev/null
@@ -1,54 +0,0 @@
-# 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.
-
-# userspace wifi access points
-type vendor_hostapd, domain;
-type vendor_hostapd_exec, exec_type, vendor_file_type, file_type;
-
-binder_call(vendor_hostapd, vendor_cnd)
-unix_socket_connect(vendor_hostapd, vendor_cnd, vendor_cnd)
-unix_socket_send(vendor_hostapd, vendor_cnd, vendor_cnd)
-allow vendor_hostapd vendor_cnd:{
-          fifo_file
-          netlink_route_socket
-          netlink_tcpdiag_socket
-          unix_stream_socket
-          unix_dgram_socket} { read write };
-allow vendor_hostapd vendor_cnd:fifo_file r_file_perms;
-allow vendor_hostapd vendor_smem_log_device:chr_file rw_file_perms;
-allow vendor_hostapd vendor_wifi_vendor_data_file:dir w_dir_perms;
-allow vendor_hostapd vendor_wifi_vendor_data_file:file create_file_perms;
-allow vendor_hostapd hostapd_data_file:dir w_dir_perms;
-allow vendor_hostapd hostapd_data_file:sock_file create_file_perms;
-allow vendor_hostapd vendor_wifi_vendor_wpa_socket:dir r_dir_perms;
-allow vendor_hostapd vendor_wifi_vendor_wpa_socket:sock_file rw_file_perms;
-
-#diag
-userdebug_or_eng(`
-    diag_use(vendor_hostapd)
-    unix_socket_send(vendor_hostapd, vendor_wifi_vendor_wpa, su)
-')
diff --git a/qva/vendor/common/hvdcp.te b/qva/vendor/common/hvdcp.te
deleted file mode 100644
index fd5039f..0000000
--- a/qva/vendor/common/hvdcp.te
+++ /dev/null
@@ -1,69 +0,0 @@
-# Copyright (c) 2018-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.
-# HVDVP quickcharge
-type vendor_hvdcp, domain;
-type vendor_hvdcp_exec, exec_type, vendor_file_type, file_type;
-
-# Make transition to its own HVDCP domain from init
-init_daemon_domain(vendor_hvdcp)
-
-# Add rules for access permissions
-allow vendor_hvdcp vendor_hvdcp_device:chr_file rw_file_perms;
-allow vendor_hvdcp vendor_qg_device:chr_file rw_file_perms;
-allow vendor_hvdcp {
-    vendor_sysfs_battery_supply
-    vendor_sysfs_usb_supply
-    vendor_sysfs_usbpd_device
-    vendor_sysfs_vadc_dev
-    vendor_sysfs_spmi_dev
-}:dir r_dir_perms;
-
-allow vendor_hvdcp {
-    vendor_sysfs_battery_supply
-    vendor_sysfs_usb_supply
-    vendor_sysfs_usbpd_device
-    vendor_sysfs_vadc_dev
-    vendor_sysfs_spmi_dev
-}:file rw_file_perms;
-
-allow vendor_hvdcp {
-    vendor_sysfs_battery_supply
-    vendor_sysfs_usb_supply
-    vendor_sysfs_vadc_dev
-    vendor_sysfs_spmi_dev
-}:lnk_file r_file_perms;
-
-allow vendor_hvdcp self:capability2 wake_alarm;
-userdebug_or_eng(`allow vendor_hvdcp kmsg_device:chr_file rw_file_perms;')
-allow vendor_hvdcp self:netlink_kobject_uevent_socket create_socket_perms_no_ioctl;
-
-allow vendor_hvdcp mnt_vendor_file:dir search;
-allow vendor_hvdcp vendor_persist_hvdcp_file:dir rw_dir_perms;
-allow vendor_hvdcp vendor_persist_hvdcp_file:file create_file_perms;
-
-set_prop(vendor_hvdcp, vendor_hvdcp_opti_prop)
-wakelock_use(vendor_hvdcp)
diff --git a/qva/vendor/common/hwservice.te b/qva/vendor/common/hwservice.te
deleted file mode 100644
index ae15b33..0000000
--- a/qva/vendor/common/hwservice.te
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright (c) 2018-2020, 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.
-
-type vendor_hal_dpmqmi_hwservice, hwservice_manager_type, protected_hwservice;
-type wifidisplayhalservice_hwservice, hwservice_manager_type;
-type vendor_hal_iop_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_pasrmanager_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_pasrmanager_memory_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_alarm_qti_hwservice , hwservice_manager_type, protected_hwservice;
-type vendor_hal_vpp_hwservice , hwservice_manager_type, protected_hwservice;
-type vendor_hal_qconfig_hwservice , hwservice_manager_type, protected_hwservice;
-type vendor_hal_wigig_hwservice , hwservice_manager_type, protected_hwservice;
-type vendor_hal_seccam_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_wigig_npt_hwservice , hwservice_manager_type, protected_hwservice;
-type vendor_hal_fstman_hwservice , hwservice_manager_type, protected_hwservice;
-type vendor_hal_qteeconnector_hwservice , hwservice_manager_type, protected_hwservice;
-type vendor_hal_sensorscalibrate_qti_hwservice , hwservice_manager_type, protected_hwservice;
-type vendor_hal_datafactory_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_imsfactory_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_latency_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_scve_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_soter_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_esepowermanager_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_factory_qti_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_cvp_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_fm_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_btconfigstore_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_wifilearner_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_srvctracker_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_secureprocessor_hwservice, hwservice_manager_type, protected_hwservice;
-#untrusted_app_visible_hwservice_violators no longer needed as blacklisting of hwservice is changed
-type vendor_hal_qspmhal_hwservice, hwservice_manager_type;
-type vendor_hal_bluetooth_dun_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_qseecom_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_spu_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_slmadapter_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_perfcallback_hwservice, hwservice_manager_type, protected_hwservice;
-type vendor_hal_mwqemadapter_hwservice, hwservice_manager_type, protected_hwservice;
diff --git a/qva/vendor/common/hwservice_contexts b/qva/vendor/common/hwservice_contexts
deleted file mode 100644
index 1a19886..0000000
--- a/qva/vendor/common/hwservice_contexts
+++ /dev/null
@@ -1,76 +0,0 @@
-# Copyright (c) 2018-2020, 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.
-
-com.qualcomm.qti.wifidisplayhal::IHDCPSession                u:object_r:wifidisplayhalservice_hwservice:s0
-vendor.qti.hardware.iop::IIop                                u:object_r:vendor_hal_iop_hwservice:s0
-com.qualcomm.qti.wifidisplayhal::IDSManager                  u:object_r:wifidisplayhalservice_hwservice:s0
-vendor.qti.hardware.alarm::IAlarm                            u:object_r:vendor_hal_alarm_qti_hwservice:s0
-vendor.qti.hardware.vpp::IHidlVppService                     u:object_r:vendor_hal_vpp_hwservice:s0
-vendor.qti.hardware.vpp::IVppService                         u:object_r:vendor_hal_vpp_hwservice:s0
-vendor.qti.hardware.qconfig::IQConfig                        u:object_r:vendor_hal_qconfig_hwservice:s0
-vendor.qti.hardware.wigig.supptunnel::ISuppTunnelProvider    u:object_r:vendor_hal_wigig_hwservice:s0
-vendor.qti.hardware.wigig.netperftuner::INetPerfTuner        u:object_r:vendor_hal_wigig_npt_hwservice:s0
-vendor.qti.hardware.fstman::IFstManager                      u:object_r:vendor_hal_fstman_hwservice:s0
-vendor.qti.hardware.qteeconnector::IAppConnector             u:object_r:vendor_hal_qteeconnector_hwservice:s0
-vendor.qti.hardware.qteeconnector::IGPAppConnector           u:object_r:vendor_hal_qteeconnector_hwservice:s0
-vendor.qti.power.pasrmanager::IPasrManager                   u:object_r:vendor_hal_pasrmanager_hwservice:s0
-vendor.qti.memory.pasrmanager::IPasrManager                  u:object_r:vendor_hal_pasrmanager_memory_hwservice:s0
-com.qualcomm.qti.bluetooth_audio::IBluetoothAudio            u:object_r:hal_audio_hwservice:s0
-vendor.qti.hardware.btconfigstore::IBTConfigStore            u:object_r:vendor_hal_btconfigstore_hwservice:s0
-vendor.qti.hardware.bluetooth_dun::IBluetoothDunServer       u:object_r:vendor_hal_bluetooth_dun_hwservice:s0
-com.qualcomm.qti.dpm.api::IdpmQmi                            u:object_r:vendor_hal_dpmqmi_hwservice:s0
-vendor.qti.hardware.audiohalext::IAudioHalExt                u:object_r:hal_audio_hwservice:s0
-vendor.qti.hardware.seccam::ISecCam                          u:object_r:vendor_hal_seccam_hwservice:s0
-vendor.qti.gnss::ILocHidlGnss                                u:object_r:hal_gnss_hwservice:s0
-vendor.nxp.hardware.nfc::INqNfc                              u:object_r:hal_nfc_hwservice:s0
-vendor.qti.hardware.sensorscalibrate::ISensorsCalibrate      u:object_r:vendor_hal_sensorscalibrate_qti_hwservice:s0
-com.qualcomm.qti.imscmservice::IImsCmService                 u:object_r:vendor_hal_imsrcsd_hwservice:s0
-vendor.qti.hardware.fingerprint::IQtiExtendedFingerprint     u:object_r:hal_fingerprint_hwservice:s0
-vendor.qti.hardware.radio.qtiradio::IQtiRadio                u:object_r:hal_telephony_hwservice:s0
-vendor.qti.hardware.data.latency::ILinkLatency               u:object_r:vendor_hal_latency_hwservice:s0
-vendor.qti.hardware.scve.objecttracker::IObjectTracker       u:object_r:vendor_hal_scve_hwservice:s0
-vendor.qti.hardware.scve.panorama::IPanoramaStitching        u:object_r:vendor_hal_scve_hwservice:s0
-vendor.qti.hardware.scve.panorama::IPanoramaTracking         u:object_r:vendor_hal_scve_hwservice:s0
-vendor.qti.hardware.soter::ISoter                            u:object_r:vendor_hal_soter_hwservice:s0
-vendor.qti.hardware.servicetracker::IServicetracker          u:object_r:vendor_hal_srvctracker_hwservice:s0
-vendor.qti.hardware.fm::IFmHci                               u:object_r:vendor_hal_fm_hwservice:s0
-vendor.qti.esepowermanager::IEsePowerManager                 u:object_r:vendor_hal_esepowermanager_hwservice:s0
-vendor.qti.hardware.wifi.supplicant::ISupplicantVendor       u:object_r:hal_wifi_supplicant_hwservice:s0
-vendor.qti.hardware.factory::IFactory                        u:object_r:vendor_hal_factory_qti_hwservice:s0
-vendor.qti.hardware.cvp::ICvp                                u:object_r:vendor_hal_cvp_hwservice:s0
-vendor.qti.hardware.bluetooth_sar::IBluetoothSar             u:object_r:hal_bluetooth_hwservice:s0
-vendor.qti.hardware.wifi.hostapd::IHostapdVendor             u:object_r:hal_wifi_hostapd_hwservice:s0
-vendor.qti.hardware.bluetooth_audio::IBluetoothAudioProvidersFactory  u:object_r:hal_audio_hwservice:s0
-vendor.qti.hardware.wifi.wifilearner::IWifiStats             u:object_r:vendor_hal_wifilearner_hwservice:s0
-vendor.qti.qspmhal::IQspmhal                                 u:object_r:vendor_hal_qspmhal_hwservice:s0
-vendor.qti.hardware.secureprocessor.device::ISecureProcessor    u:object_r:vendor_hal_secureprocessor_hwservice:s0
-vendor.qti.hardware.cryptfshw::ICryptfsHw                    u:object_r:hal_keymaster_hwservice:s0
-vendor.qti.hardware.qseecom::IQSEECom                        u:object_r:vendor_hal_qseecom_hwservice:s0
-vendor.qti.spu::ISPUManager                                  u:object_r:vendor_hal_spu_hwservice:s0
-vendor.qti.hardware.slmadapter::ISlmAdapter                  u:object_r:vendor_hal_slmadapter_hwservice:s0
-vendor.qti.hardware.perf::IPerfCallback                      u:object_r:vendor_hal_perfcallback_hwservice:s0
-vendor.qti.hardware.mwqemadapter::IMwqemAdapter              u:object_r:vendor_hal_mwqemadapter_hwservice:s0
diff --git a/qva/vendor/common/hwservicemanager.te b/qva/vendor/common/hwservicemanager.te
deleted file mode 100644
index 15ab32d..0000000
--- a/qva/vendor/common/hwservicemanager.te
+++ /dev/null
@@ -1,31 +0,0 @@
-# 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.
-
-allow hwservicemanager lmkd:binder transfer;
-allow hwservicemanager lmkd:dir search;
-allow hwservicemanager lmkd:file { open read };
-allow hwservicemanager lmkd:process getattr;
diff --git a/qva/vendor/common/ims.te b/qva/vendor/common/ims.te
deleted file mode 100644
index 51c609d..0000000
--- a/qva/vendor/common/ims.te
+++ /dev/null
@@ -1,56 +0,0 @@
-# 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.
-
-# Use generic netlink socket
-allow vendor_ims self:{
-    netlink_socket
-    socket
-    netlink_generic_socket
-} create_socket_perms_no_ioctl;
-allow vendor_ims self:{ qipcrtr_socket } rw_socket_perms_no_ioctl;
-
-# To run NDC command
-allow vendor_ims {
-    vendor_shell_exec
-    # IMS route installation
-    vendor_wcnss_service_exec
-}:file rx_file_perms;
-
-
-set_prop(vendor_ims, vendor_ctl_vendor_imsrcsservice_prop)
-
-# Inherit and use open files from radio.
-allow vendor_ims radio:fd use;
-
-allow vendor_ims self:{ udp_socket } ioctl;
-
-# ioctlcmd=89fd
-allowxperm vendor_ims self:udp_socket ioctl priv_sock_ioctls;
-allow vendor_ims vendor_sysfs_data:file r_file_perms;
-
-get_prop(vendor_ims, vendor_cnd_vendor_prop)
-allow vendor_ims vendor_hal_datafactory_hwservice:hwservice_manager find;
diff --git a/qva/vendor/common/init.te b/qva/vendor/common/init.te
deleted file mode 100644
index 33a4169..0000000
--- a/qva/vendor/common/init.te
+++ /dev/null
@@ -1,33 +0,0 @@
-# Copyright (c) 2018, 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.
-
-allow init vendor_sysfs_graphics:file setattr;
-allow init vendor_sysfs_qvr_external_sensor:file setattr;
-
-# allow init to mount spunvm partition
-allow init vendor_spunvm_file:dir mounton;
-allow init vendor_spunvm_file:filesystem { relabelto relabelfrom mount };
diff --git a/qva/vendor/common/init_shell.te b/qva/vendor/common/init_shell.te
deleted file mode 100644
index a7036e3..0000000
--- a/qva/vendor/common/init_shell.te
+++ /dev/null
@@ -1,68 +0,0 @@
-# Copyright (c) 2018-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.
-
-allow vendor_qti_init_shell vendor_sysfs_npu:file rw_file_perms;
-set_prop(vendor_qti_init_shell, vendor_mdm_helper_prop)
-set_prop(vendor_qti_init_shell, vendor_mmi_prop)
-
-set_prop(vendor_qti_init_shell, vendor_video_prop)
-
-set_prop(vendor_qti_init_shell, vendor_dataadpl_prop)
-
-#perf
-set_prop(vendor_qti_init_shell, vendor_mpctl_prop)
-
-# hvdcp_opti property
-set_prop(vendor_qti_init_shell, vendor_hvdcp_opti_prop)
-
-# To write to /data/vendor/perfd
-allow vendor_qti_init_shell vendor_mpctl_data_file:dir w_dir_perms;
-allow vendor_qti_init_shell vendor_mpctl_data_file:file { write getattr unlink };
-allow vendor_qti_init_shell vendor_sysfs_vmpressure:file w_file_perms;
-
-allow vendor_qti_init_shell vendor_sysfs_bootguestvm:file w_file_perms;
-
-userdebug_or_eng(`
-# Needed for starting console in userdebug mode
-set_prop(vendor_qti_init_shell, vendor_audio_debug_prop)
-')
-
-#allow configuring slub debug options
-allow vendor_qti_init_shell vendor_sysfs_slab_zshandle_storeuser:file w_file_perms;
-allow vendor_qti_init_shell vendor_sysfs_slab_zspage_storeuser:file w_file_perms;
-
-allow vendor_qti_init_shell {
-    vendor_sysfs_mmc_host
-    sysfs_dm
-}:file w_file_perms;
-
-#dontaudit default_prop and init read
-dontaudit vendor_qti_init_shell default_prop:file read;
-dontaudit vendor_qti_init_shell init:file read;
-
-# Allow vendor_qti_init_shell to set vendor_pasr_prop
-set_prop(vendor_qti_init_shell, vendor_pasr_prop)
diff --git a/qva/vendor/common/keymasterd.te b/qva/vendor/common/keymasterd.te
deleted file mode 100644
index 77cfbd7..0000000
--- a/qva/vendor/common/keymasterd.te
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (c) 2020, 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.
-
-type vendor_keymasterd, domain;
-type vendor_keymasterd_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_keymasterd)
diff --git a/qva/vendor/common/lmkd.te b/qva/vendor/common/lmkd.te
deleted file mode 100644
index bc464d4..0000000
--- a/qva/vendor/common/lmkd.te
+++ /dev/null
@@ -1,36 +0,0 @@
-# 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.
-
-allow lmkd vendor_hal_perf_hwservice:hwservice_manager find;
-allow lmkd vendor_hal_perf_default:binder call;
-allow lmkd vendor_hal_iop_hwservice:hwservice_manager find;
-allow lmkd vendor_hal_iop_default:binder call;
-allow lmkd hwservicemanager:binder call;
-get_prop(lmkd, hwservicemanager_prop);
-
-# Used by LMKD to work with EPOLLWAKEUP events.
-allow lmkd self:global_capability2_class_set block_suspend;
diff --git a/qva/vendor/common/location.te b/qva/vendor/common/location.te
deleted file mode 100644
index 596ff1f..0000000
--- a/qva/vendor/common/location.te
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright (c) 2018-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.
-
-# qva/location.te - sepolicy rules for qti value added location modules
-
-## xtwifi-client
-################
-wakelock_use(vendor_location)
-allow vendor_location self:capability2 wake_alarm;
-unix_socket_connect(vendor_location, property, init);
-allow vendor_location mnt_vendor_file:dir search;
-# access to /persist/hlos_rfs/shared
-allow vendor_location vendor_persist_rfs_shared_hlos_file:dir r_dir_perms;
-allow vendor_location vendor_persist_rfs_shared_hlos_file:file rw_file_perms;
-set_prop(vendor_location, vendor_location_prop);
-
-## xtra-daemon
-##############
-hal_client_domain(vendor_location, vendor_qccsyshal);
diff --git a/qva/vendor/common/location_app.te b/qva/vendor/common/location_app.te
deleted file mode 100644
index 0479ec4..0000000
--- a/qva/vendor/common/location_app.te
+++ /dev/null
@@ -1,32 +0,0 @@
-# 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.
-
-# generic/location_app.te - sepolicy rules for qti value added location apps
-# that will be part of system image. Eg: XT app.
-
-# allow location_app to access perf hal
-hal_client_domain(vendor_location_app, vendor_hal_perf)
diff --git a/qva/vendor/common/mediacodec.te b/qva/vendor/common/mediacodec.te
deleted file mode 100644
index 3b2ebc4..0000000
--- a/qva/vendor/common/mediacodec.te
+++ /dev/null
@@ -1,40 +0,0 @@
-# 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.
-
-allow mediacodec audio_device:chr_file rw_file_perms;
-
-get_prop(mediacodec, vendor_video_prop)
-
-#Allow mediacodec to access vpp
-hal_client_domain(mediacodec, vendor_hal_vpp)
-hal_client_domain(mediacodec, vendor_hal_qconfig)
-allow mediacodec vendor_xdsp_device:chr_file r_file_perms;
-allow mediacodec vendor_qdsp_device:chr_file r_file_perms;
-
-#Allow mediacodec to access service manager wfdnativemm_service
-allow mediacodec wfdnativemm_service:service_manager find;
-hal_client_domain(mediacodec, wifidisplayhalservice)
diff --git a/qva/vendor/common/mediaextractor.te b/qva/vendor/common/mediaextractor.te
deleted file mode 100644
index 12984b7..0000000
--- a/qva/vendor/common/mediaextractor.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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.
-
-#to read audio prop
-get_prop(mediaextractor, vendor_audio_prop)
diff --git a/qva/vendor/common/mediaprovider.te b/qva/vendor/common/mediaprovider.te
deleted file mode 100644
index 19a43da..0000000
--- a/qva/vendor/common/mediaprovider.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2020, 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.
-
-dontaudit mediaprovider vendor_hal_perf_hwservice:hwservice_manager find;
diff --git a/qva/vendor/common/mediaserver.te b/qva/vendor/common/mediaserver.te
deleted file mode 100644
index 8390bf4..0000000
--- a/qva/vendor/common/mediaserver.te
+++ /dev/null
@@ -1,33 +0,0 @@
-# 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.
-
-hal_client_domain(mediaserver, hal_audio)
-
-#to read audio props
-get_prop(mediaserver, vendor_audio_prop)
-
-binder_call(mediaserver, wfdservice)
diff --git a/qva/vendor/common/mlid.te b/qva/vendor/common/mlid.te
deleted file mode 100644
index 17817b5..0000000
--- a/qva/vendor/common/mlid.te
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright (c) 2017, 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.
-
-# vendor_mlid - Mink-Lowi Interface daemon
-type vendor_mlid, domain, mlstrustedsubject;
-type vendor_mlid_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_mlid)
-
-# Allow access to location socket
-allow vendor_mlid self:netlink_generic_socket create_socket_perms_no_ioctl;
-unix_socket_connect(vendor_mlid, vendor_location, vendor_location)
diff --git a/qva/vendor/common/mmi.te b/qva/vendor/common/mmi.te
deleted file mode 100755
index c82d4b9..0000000
--- a/qva/vendor/common/mmi.te
+++ /dev/null
@@ -1,69 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_mmi, domain;
-type vendor_mmi_exec, exec_type, vendor_file_type, file_type;
-
-#started by init
-init_daemon_domain(vendor_mmi)
-
-#self capability
-allow vendor_mmi self:{ socket udp_socket } create_socket_perms_no_ioctl;
-allow vendor_mmi self:capability { fowner fsetid kill };
-
-#For various devices
-allow vendor_mmi {
-    vendor_sysfs_soc
-    sysfs_devices_system_cpu
-    vendor_sysfs_usb_supply
-    vendor_sysfs_battery_supply
-    sysfs_power
-    vendor_sysfs_graphics
-    sysfs_wake_lock
-}:file rw_file_perms;
-
-#socket
-allow vendor_mmi socket_device:dir w_dir_perms;
-allow vendor_mmi vendor_mmi_socket:sock_file create_file_perms;
-type_transition vendor_mmi socket_device:sock_file vendor_mmi_socket;
-
-allow vendor_mmi mnt_vendor_file:dir r_dir_perms;
-
-#Allow mmi operate on graphics
-hal_client_domain(vendor_mmi, hal_graphics_allocator);
-
-#mmi test case
-unix_socket_connect(vendor_mmi, vendor_cnd, vendor_cnd);
-unix_socket_connect(vendor_mmi, vendor_netmgrd, vendor_netmgrd);
-net_domain(vendor_mmi);
-allow vendor_mmi vendor_mmi_exec:file rx_file_perms;
-allow vendor_mmi proc:file r_file_perms;
-
-#diag
-userdebug_or_eng(`
-    diag_use(vendor_mmi)
-')
diff --git a/qva/vendor/common/mmi_sys.te b/qva/vendor/common/mmi_sys.te
deleted file mode 100644
index 7d7295d..0000000
--- a/qva/vendor/common/mmi_sys.te
+++ /dev/null
@@ -1,38 +0,0 @@
-# Copyright (c) 2018, 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.
-
-#mmi_sys basic
-r_dir_file(vendor_mmi_sys, vendor_sysfs_graphics)
-
-hal_client_domain(vendor_mmi_sys, vendor_hal_factory_qti);
-
-#diag
-userdebug_or_eng(`
-    diag_use(vendor_mmi_sys)
-    hal_client_domain(vendor_mmi_sys, vendor_hal_diaghal)
-    hal_client_domain(vendor_mmi_sys, hal_allocator)
-')
diff --git a/qva/vendor/common/mutualex.te b/qva/vendor/common/mutualex.te
deleted file mode 100644
index b725258..0000000
--- a/qva/vendor/common/mutualex.te
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright (c) 2019-2020, 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.
-
-type vendor_mutualex, domain;
-type vendor_mutualex_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_mutualex)
-
-allow vendor_mutualex vendor_mutualex:{
-    qipcrtr_socket
-    netlink_generic_socket
-}create_socket_perms_no_ioctl;
-
-hal_client_domain(vendor_mutualex,hal_wifi_hostapd)
-hal_client_domain(vendor_mutualex,hal_wifi_supplicant)
-
-# allow mutualex to access wpa_socket
-allow vendor_mutualex vendor_wifi_vendor_data_file:dir r_dir_perms;
-allow vendor_mutualex vendor_wifi_vendor_wpa_socket:sock_file write;
-
-#communicating with wpa supplicant for sending commands/listening to events
-unix_socket_send(vendor_mutualex, wpa, hal_wifi_supplicant)
-allow vendor_mutualex wpa_data_file:dir w_dir_perms;
-allow vendor_mutualex wpa_data_file:sock_file create_file_perms;
-
-#communicating with hostapd for sending commands/listening to events
-allow vendor_mutualex hostapd_data_file:dir rw_dir_perms;
-allow vendor_mutualex hostapd_data_file:sock_file create_file_perms;
-allow vendor_mutualex { hal_wifi_hostapd_default }:unix_dgram_socket sendto;
-
-wakelock_use(vendor_mutualex)
-
diff --git a/qva/vendor/common/netmgrd.te b/qva/vendor/common/netmgrd.te
deleted file mode 100644
index 2231c9b..0000000
--- a/qva/vendor/common/netmgrd.te
+++ /dev/null
@@ -1,59 +0,0 @@
-# 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.
-
-userdebug_or_eng(`
-  domain_auto_trans(shell, vendor_netmgrd_exec, vendor_netmgrd)
-  diag_use(vendor_netmgrd)
-  diag_use(netutils_wrapper)
-')
-
-#Allow vendor_netmgrd operations
-allow vendor_netmgrd vendor_netmgrd:capability {
-    fsetid
-};
-
-#Allow logging
-allow vendor_netmgrd vendor_smem_log_device:chr_file rw_file_perms;
-
-allow vendor_netmgrd netutils_wrapper:process sigkill;
-
-#Allow operations on different types of sockets
-allow vendor_netmgrd vendor_netmgrd:rawip_socket { create getopt setopt write };
-
-unix_socket_connect(vendor_netmgrd, vendor_cnd, vendor_cnd);
-
-allow vendor_netmgrd { vendor_wcnss_service_exec vendor_shell_exec }:file rx_file_perms;
-
-allowxperm vendor_netmgrd self:udp_socket ioctl rmnet_sock_ioctls;
-
-# Allow vendor_netmgrd to set vendor properties
-set_prop(vendor_netmgrd, vendor_data_ko_prop)
-allow vendor_netmgrd self:qipcrtr_socket create_socket_perms_no_ioctl;
-
-#Allow vendor_netmgrd to set rmnet module parameters
-allow vendor_netmgrd vendor_sysfs_rmnet:dir r_dir_perms;
-allow vendor_netmgrd vendor_sysfs_rmnet:file rw_file_perms;
diff --git a/qva/vendor/common/network_stack.te b/qva/vendor/common/network_stack.te
deleted file mode 100644
index 11e8233..0000000
--- a/qva/vendor/common/network_stack.te
+++ /dev/null
@@ -1,30 +0,0 @@
-# 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.
-
-allow network_stack vendor_dpmd:unix_stream_socket connectto;
-allow network_stack vendor_dpmtcm_socket:sock_file write;
-hal_client_domain(network_stack, vendor_hal_perf);
diff --git a/qva/vendor/common/nfc.te b/qva/vendor/common/nfc.te
deleted file mode 100644
index 98c0e35..0000000
--- a/qva/vendor/common/nfc.te
+++ /dev/null
@@ -1,31 +0,0 @@
-#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.
-
-# Get NFC properties
-get_prop(nfc, vendor_nfc_nq_prop)
-# allow nfc to access perf hal
-hal_client_domain(nfc, vendor_hal_perf)
diff --git a/qva/vendor/common/nqnfcinfo.te b/qva/vendor/common/nqnfcinfo.te
deleted file mode 100644
index 9ac9a42..0000000
--- a/qva/vendor/common/nqnfcinfo.te
+++ /dev/null
@@ -1,37 +0,0 @@
-#Copyright (c) 2016, 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.
-
-type vendor_nqnfcinfo, domain;
-type vendor_nqnfcinfo_exec, exec_type, vendor_file_type, file_type;
-
-# Started by init
-init_daemon_domain(vendor_nqnfcinfo)
-
-set_prop(vendor_nqnfcinfo, vendor_nfc_nq_prop);
-
-# Access device nodes inside /dev/nq-nci
-allow vendor_nqnfcinfo nfc_device:chr_file rw_file_perms;
diff --git a/qva/vendor/common/pd_service.te b/qva/vendor/common/pd_service.te
deleted file mode 100644
index c22e864..0000000
--- a/qva/vendor/common/pd_service.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2018, 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.
-
-allow vendor_pd_mapper self:qipcrtr_socket create_socket_perms;
-allowxperm vendor_pd_mapper self:qipcrtr_socket ioctl msm_sock_ipc_ioctls;
diff --git a/qva/vendor/common/perfdump_app.te b/qva/vendor/common/perfdump_app.te
deleted file mode 100644
index 27d3b16..0000000
--- a/qva/vendor/common/perfdump_app.te
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copyright (c) 2018-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.
-
-type vendor_perfdump_app, domain;
-app_domain(vendor_perfdump_app)
-
-# shared_prefs in /data/data/com.qualcomm.qti.perfdump
-allow vendor_perfdump_app system_app_data_file:dir create_dir_perms;
-allow vendor_perfdump_app system_app_data_file:file create_file_perms;
-
-# systrace support
-
-userdebug_or_eng(`
-  allow vendor_perfdump_app debugfs_tracing_debug:dir r_dir_perms;
-  allow vendor_perfdump_app debugfs_tracing_debug:file rw_file_perms;
-  allow vendor_perfdump_app debugfs_tracing:dir r_dir_perms;
-  allow vendor_perfdump_app debugfs_tracing:file rw_file_perms;
-  allow vendor_perfdump_app debugfs_trace_marker:file getattr;
-')
-
-
-# perfdump sets debug.atrace.* properties
-set_prop(vendor_perfdump_app, debug_prop)
-
-# pokes binder-enabled processes
-binder_use(vendor_perfdump_app)
-allow vendor_perfdump_app servicemanager:service_manager list;
-allow vendor_perfdump_app hwservicemanager:hwservice_manager list;
-allow vendor_perfdump_app app_api_service:service_manager find;
-allow vendor_perfdump_app surfaceflinger_service:service_manager find;
-allow vendor_perfdump_app audioserver_service:service_manager find;
-allow vendor_perfdump_app mediaserver_service:service_manager find;
-binder_call(vendor_perfdump_app, system_server)
-
-# dumpstate
-# TODO(b/142498985): review sepolicy neverallow violation
-#set_prop(vendor_perfdump_app, ctl_dumpstate_prop)
-unix_socket_connect(vendor_perfdump_app, dumpstate, dumpstate)
-
-dontaudit vendor_perfdump_app service_manager_type:service_manager *;
-dontaudit vendor_perfdump_app hwservice_manager_type:hwservice_manager *;
diff --git a/qva/vendor/common/perfservice.te b/qva/vendor/common/perfservice.te
deleted file mode 100644
index 43340a8..0000000
--- a/qva/vendor/common/perfservice.te
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (c) 2018-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.
-
-hal_client_domain(vendor_perfservice, vendor_hal_perf)
-hal_client_domain(vendor_perfservice, vendor_hal_iop)
-get_prop(vendor_perfservice, vendor_iop_prop)
diff --git a/qva/vendor/common/peripheral_manager.te b/qva/vendor/common/peripheral_manager.te
deleted file mode 100644
index 69d53ac..0000000
--- a/qva/vendor/common/peripheral_manager.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2018, 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.
-
-allow vendor_per_mgr self:qipcrtr_socket create_socket_perms;
-allowxperm vendor_per_mgr self:qipcrtr_socket ioctl msm_sock_ipc_ioctls;
diff --git a/qva/vendor/common/platform_app.te b/qva/vendor/common/platform_app.te
deleted file mode 100644
index c32ecd8..0000000
--- a/qva/vendor/common/platform_app.te
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright (c) 2019-2020, 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.
-#allow embms app to access vendor radio property
-
-#perf
-hal_client_domain(platform_app, vendor_hal_perf)
-#cvp
-hal_client_domain(platform_app, vendor_hal_cvp)
-#scve
-hal_client_domain(platform_app, vendor_hal_scve)
-#allow platform_app to read vendor_mpctl_prop
-get_prop(platform_app, vendor_mpctl_prop)
-#qspmhal
-hal_client_domain(platform_app, vendor_hal_qspmhal)
-#fingerprint
-hal_client_domain(platform_app, hal_fingerprint)
-# allow platform_app to interact with pasr hal
-hal_client_domain(platform_app, vendor_hal_pasrmanager)
diff --git a/qva/vendor/common/powerservice_app.te b/qva/vendor/common/powerservice_app.te
deleted file mode 100644
index 3c929c4..0000000
--- a/qva/vendor/common/powerservice_app.te
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright (c) 2020, 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 for Power service
-type vendor_powerservice_app, domain;
-app_domain(vendor_powerservice_app);
-
-# Allow invoking activity of vendor_powerservice_app
-allow vendor_powerservice_app activity_service:service_manager find;
-allow vendor_powerservice_app app_api_service:service_manager find;
-
-# Allow Power service to read vendor_pasr_prop
-get_prop(vendor_powerservice_app, vendor_pasr_prop)
-
-# allow Power service to interact with pasr memory hal
-hal_client_domain(vendor_powerservice_app, vendor_hal_mem_pasrmanager)
-
-# allow Power service to interact with pasr power hal
-hal_client_domain(vendor_powerservice_app, vendor_hal_pasrmanager)
diff --git a/qva/vendor/common/priv_app.te b/qva/vendor/common/priv_app.te
deleted file mode 100644
index 6b298d4..0000000
--- a/qva/vendor/common/priv_app.te
+++ /dev/null
@@ -1,31 +0,0 @@
-# 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.
-
-#allow priv_app to access hal_qspmhal
-hal_client_domain(priv_app, vendor_hal_qspmhal)
-
-
diff --git a/qva/vendor/common/property.te b/qva/vendor/common/property.te
deleted file mode 100644
index ac5d871..0000000
--- a/qva/vendor/common/property.te
+++ /dev/null
@@ -1,101 +0,0 @@
-# Copyright (c) 2018-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.
-
-vendor_internal_prop(vendor_dataadpl_prop);
-vendor_internal_prop(vendor_cnd_vendor_prop);
-vendor_internal_prop(vendor_spcomlib_prop);
-vendor_public_prop(vendor_qcc_prop);
-vendor_internal_prop(vendor_mdm_helper_prop);
-vendor_internal_prop(vendor_disable_spu_prop);
-
-# boot mode property
-vendor_internal_prop(vendor_boot_mode_prop);
-
-#mpctl
-vendor_restricted_prop(vendor_mpctl_prop);
-vendor_internal_prop(vendor_freq_prop);
-#service opts
-vendor_restricted_prop(vendor_bservice_prop);
-vendor_restricted_prop(vendor_reschedule_service_prop);
-vendor_restricted_prop(vendor_cgroup_follow_prop);
-vendor_restricted_prop(vendor_scroll_prop);
-
-vendor_restricted_prop(vendor_qspm_prop);
-#iop
-vendor_restricted_prop(vendor_iop_prop);
-
-#properties for nfc
-vendor_restricted_prop(vendor_nfc_nq_prop);
-
-# factory properties
-vendor_internal_prop(vendor_ctl_vendor_mmid_prop);
-
-# mmi
-vendor_internal_prop(vendor_mmi_prop);
-
-#mm-video
-vendor_restricted_prop(vendor_video_prop);
-
-# Audio debug props
-vendor_internal_prop(vendor_audio_debug_prop);
-
-# Seccam Prop
-vendor_internal_prop(vendor_core_ctl_prop);
-
-# property for location
-vendor_internal_prop(vendor_location_prop);
-
-# Netmgrd prop
-vendor_internal_prop(vendor_data_ko_prop);
-# WIGIG
-vendor_internal_prop(vendor_wigig_prop);
-vendor_internal_prop(vendor_ctl_vendor_wigigsvc_prop);
-
-# hvdcp_opti prop
-vendor_internal_prop(vendor_hvdcp_opti_prop);
-
-# property for xlat
-vendor_restricted_prop(vendor_xlat_prop);
-
-#qvr property
-vendor_restricted_prop(vendor_qvr_prop);
-vendor_restricted_prop(vendor_sxr_prop);
-vendor_restricted_prop(vendor_qvrd_prop);
-vendor_restricted_prop(vendor_qvr_persist_prop);
-vendor_restricted_prop(vendor_qvrd_persist_prop);
-
-#qmuxd property
-vendor_internal_prop(vendor_ctl_qmuxd_prop);
-
-#slm property
-vendor_restricted_prop(vendor_slm_prop);
-
-#pasr property
-vendor_internal_prop(vendor_pasr_prop);
-
-#mwqem property
-vendor_restricted_prop(vendor_mwqem_prop);
diff --git a/qva/vendor/common/property_contexts b/qva/vendor/common/property_contexts
deleted file mode 100644
index 530d043..0000000
--- a/qva/vendor/common/property_contexts
+++ /dev/null
@@ -1,137 +0,0 @@
-# Copyright (c) 2018-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.
-
-ctl.vendor.cnd                    u:object_r:vendor_cnd_vendor_prop:s0
-persist.vendor.cne.               u:object_r:vendor_cnd_vendor_prop:s0
-persist.vendor.cnd.               u:object_r:vendor_cnd_vendor_prop:s0
-
-ctl.vendor.dataadpl                          u:object_r:vendor_dataadpl_prop:s0
-vendor.spcom.                                u:object_r:vendor_spcomlib_prop:s0
-persist.vendor.bt.soc.scram_freqs            u:object_r:vendor_bluetooth_prop:s0
-ctl.vendor.mdm_helper                        u:object_r:vendor_mdm_helper_prop:s0
-
-# qcc property
-vendor.qti.qdma.                             u:object_r:vendor_qcc_prop:s0
-
-#perf
-vendor.post_boot.parsed                u:object_r:vendor_mpctl_prop:s0
-vendor.perf.cores_online               u:object_r:vendor_mpctl_prop:s0
-persist.vendor.qti.                    u:object_r:vendor_mpctl_prop:s0
-ro.vendor.at_library                   u:object_r:vendor_mpctl_prop:s0
-vendor.debug.trace.perf                u:object_r:vendor_mpctl_prop:s0
-vendor.target.init.complete            u:object_r:vendor_mpctl_prop:s0
-vendor.iop.enable_uxe                  u:object_r:vendor_iop_prop:s0
-vendor.perf.iop_v3.enable              u:object_r:vendor_iop_prop:s0
-vendor.perf.iop_v3.enable.debug        u:object_r:vendor_iop_prop:s0
-vendor.iop.enable_prefetch_ofr         u:object_r:vendor_iop_prop:s0
-# cgroup follow
-ro.vendor.qti.cgroup_follow.enable     u:object_r:vendor_cgroup_follow_prop:s0
-ro.vendor.qti.cgroup_follow.dex2oat_only   u:object_r:vendor_cgroup_follow_prop:s0
-#Bservice Property, Delayed Service Restart Property
-ro.vendor.qti.sys.fw.bservice_         u:object_r:vendor_bservice_prop:s0
-ro.vendor.qti.am.reschedule_service    u:object_r:vendor_reschedule_service_prop:s0
-#gesture-fling scroll
-vendor.perf.gestureflingboost.enable   u:object_r:vendor_scroll_prop:s0
-
-# NFC
-vendor.qti.nfc.                              u:object_r:vendor_nfc_nq_prop:s0
-
-#Disable SPU property
-vendor.gatekeeper.disable_spu                u:object_r:vendor_disable_spu_prop:s0
-
-#boot mode property
-vendor.sys.boot_mode                         u:object_r:vendor_boot_mode_prop:s0
-
-#mm-video
-vendor.media.target.version                  u:object_r:vendor_video_prop:s0
-vendor.video.disable.ubwc                    u:object_r:vendor_video_prop:s0
-vendor.media.target_variant                  u:object_r:vendor_video_prop:s0
-
-# factory properties
-ctl.vendor.mmid                              u:object_r:vendor_ctl_vendor_mmid_prop:s0
-
-#seccam hal_service
-vendor.hyp_core_ctl                          u:object_r:vendor_core_ctl_prop:s0
-
-persist.vendor.mmi.                          u:object_r:vendor_mmi_prop:s0
-
-# izat location property
-vendor.qti.izat.                             u:object_r:vendor_location_prop:s0
-# WIGIG
-vendor.wigig.                                u:object_r:vendor_wigig_prop:s0
-ctl.vendor.wigig_supplicant                  u:object_r:vendor_ctl_vendor_wigigsvc_prop:s0
-ctl.vendor.wigig_hostapd                     u:object_r:vendor_ctl_vendor_wigigsvc_prop:s0
-ctl.vendor.sensingdaemon                     u:object_r:vendor_ctl_vendor_wigigsvc_prop:s0
-
-# netmgrd ko loading
-persist.vendor.data.shs_ko_load u:object_r:vendor_data_ko_prop:s0
-persist.vendor.data.perf_ko_load u:object_r:vendor_data_ko_prop:s0
-persist.vendor.data.offload_ko_load u:object_r:vendor_data_ko_prop:s0
-
-# hvdcp_opti properties
-persist.vendor.bms.                          u:object_r:vendor_hvdcp_opti_prop:s0
-persist.vendor.chg.                          u:object_r:vendor_hvdcp_opti_prop:s0
-persist.vendor.chg_plcy_mgr.                 u:object_r:vendor_hvdcp_opti_prop:s0
-persist.vendor.cp.                           u:object_r:vendor_hvdcp_opti_prop:s0
-persist.vendor.ctm.                          u:object_r:vendor_hvdcp_opti_prop:s0
-persist.vendor.hvdcp2.                       u:object_r:vendor_hvdcp_opti_prop:s0
-persist.vendor.hvdcp_opti.                   u:object_r:vendor_hvdcp_opti_prop:s0
-persist.vendor.hvdcp.                        u:object_r:vendor_hvdcp_opti_prop:s0
-persist.vendor.pps.                          u:object_r:vendor_hvdcp_opti_prop:s0
-persist.vendor.std-pd.                       u:object_r:vendor_hvdcp_opti_prop:s0
-persist.vendor.tb.                           u:object_r:vendor_hvdcp_opti_prop:s0
-persist.vendor.vin.                          u:object_r:vendor_hvdcp_opti_prop:s0
-persist.vendor.qg.                           u:object_r:vendor_hvdcp_opti_prop:s0
-persist.vendor.soh.                          u:object_r:vendor_hvdcp_opti_prop:s0
-
-# XLAT property
-persist.vendor.net.doxlat                    u:object_r:vendor_xlat_prop:s0
-
-ro.vendor.qspm.enable            u:object_r:vendor_qspm_prop:s0 exact bool
-
-#qvr properties
-vendor.qvr.                                   u:object_r:vendor_qvr_prop:s0
-vendor.sxr.                                   u:object_r:vendor_sxr_prop:s0
-vendor.qvrd.                                  u:object_r:vendor_qvrd_prop:s0
-persist.vendor.qvr.                           u:object_r:vendor_qvr_persist_prop:s0
-persist.vendor.qvrd.                          u:object_r:vendor_qvrd_persist_prop:s0
-
-#qmuxd property
-ctl.start$vendor.qmuxd                       u:object_r:vendor_ctl_qmuxd_prop:s0
-
-#bluetooth property
-ro.vendor.bt.enablelazyhal                   u:object_r:vendor_bluetooth_prop:s0 exact bool
-
-#SLM
-persist.vendor.slm.                          u:object_r:vendor_slm_prop:s0
-
-#pasr property
-vendor.pasr.                                 u:object_r:vendor_pasr_prop:s0
-ro.vendor.pasr.                              u:object_r:vendor_pasr_prop:s0
-
-#MWQEM
-persist.vendor.mwqem.                        u:object_r:vendor_mwqem_prop:s0
diff --git a/qva/vendor/common/psi_service.te b/qva/vendor/common/psi_service.te
deleted file mode 100644
index 99ad08f..0000000
--- a/qva/vendor/common/psi_service.te
+++ /dev/null
@@ -1,58 +0,0 @@
-# Copyright (c) 2020, 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.
-
-# Policy for PSI service
-type vendor_psiservice, domain;
-type vendor_psiservice_exec, exec_type, vendor_file_type, file_type;
-
-# Started by init
-init_daemon_domain(vendor_psiservice)
-
-# Allow PSI Service to be a client of PASR HAL
-hal_client_domain(vendor_psiservice, vendor_hal_mem_pasrmanager)
-
-# Read /proc/zoneinfo
-allow vendor_psiservice proc_zoneinfo:file r_file_perms;
-
-# Read /proc/meminfo
-allow vendor_psiservice proc_meminfo:file r_file_perms;
-
-# Read /proc/vmstat
-allow vendor_psiservice proc_vmstat:file r_file_perms;
-
-# Read/Write /proc/pressure/memory
-allow vendor_psiservice proc_pressure_mem:file rw_file_perms;
-
-# Read sysfs directories
-allow vendor_psiservice sysfs:dir r_dir_perms;
-
-# Read/Write "/sys/kernel/mem-offline/*" sysfs files
-allow vendor_psiservice vendor_sysfs_mem_offline:file rw_file_perms;
-allow vendor_psiservice vendor_sysfs_mem_offline:dir r_dir_perms;
-
-# For reading "vendor.pasr." properties
-get_prop(vendor_psiservice, vendor_pasr_prop)
diff --git a/qva/vendor/common/qcc_app.te b/qva/vendor/common/qcc_app.te
deleted file mode 100644
index fc99afb..0000000
--- a/qva/vendor/common/qcc_app.te
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright (c) 2020 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.
-
-hal_client_domain(vendor_qcc_app, vendor_hal_qccvndhal);
-
-# IPerf
-hal_client_domain(vendor_qcc_app, vendor_hal_perf);
-
diff --git a/qva/vendor/common/qcc_trd.te b/qva/vendor/common/qcc_trd.te
deleted file mode 100644
index f4c8a7c..0000000
--- a/qva/vendor/common/qcc_trd.te
+++ /dev/null
@@ -1,94 +0,0 @@
-# Copyright (c) 2017-2020, 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.
-
-type vendor_qcc_trd_exec, file_type, vendor_file_type, exec_type;
-
-init_daemon_domain(vendor_qcc_trd)
-
-vndbinder_use(vendor_qcc_trd)
-
-allow vendor_qcc_trd vendor_qcc_trd_data_file:file create_file_perms;
-allow vendor_qcc_trd vendor_qcc_trd_data_file:dir create_dir_perms;
-
-# access to /dev/ramdump_microdump_modem
-allow vendor_qcc_trd vendor_ramdump_microdump_modem_device:chr_file r_file_perms;
-
-# cpustats
-# access to /sys/class/power_supply/bms/charge_counter
-# access to /sys/class/power_supply/battery/capacity
-# access to /sys/class/power_supply/battery/status
-allow vendor_qcc_trd vendor_sysfs_battery_supply:{file lnk_file} r_file_perms;
-allow vendor_qcc_trd vendor_sysfs_battery_supply:dir r_dir_perms;
-
-# gpustats
-# /sys/class/kgsl/kgsl-3d0/gpu_busy_percentage
-# /sys/class/kgsl/kgsl-3d0/gpuclk
-# /sys/class/kgsl/kgsl-3d0/gpu_clock_stats
-# /sys/class/kgsl/kgsl-3d0/num_pwrlevels
-# /sys/class/kgsl/kgsl-3d0/gpu_available_frequencies
-allow vendor_qcc_trd vendor_sysfs_kgsl:{file lnk_file} r_file_perms;
-allow vendor_qcc_trd vendor_sysfs_kgsl:dir r_dir_perms;
-allow vendor_qcc_trd vendor_sysfs_kgsl_gpuclk:{file lnk_file} r_file_perms;
-allow vendor_qcc_trd vendor_sysfs_kgsl_gpuclk:dir r_dir_perms;
-
-# cpustats /sys/class/leds/lcd-backlight/brightness
-allow vendor_qcc_trd sysfs_leds:{file lnk_file} r_file_perms;
-allow vendor_qcc_trd sysfs_leds:dir r_dir_perms;
-
-# cpustats /sys/class/backlight/panel0-backlight/brightness
-allow vendor_qcc_trd vendor_sysfs_graphics:{file lnk_file} r_file_perms;
-allow vendor_qcc_trd vendor_sysfs_graphics:dir r_dir_perms;
-
-# cpustats /sys/class/thermal/thermal_zone%d
-allow vendor_qcc_trd sysfs_thermal:{file lnk_file} r_file_perms;
-allow vendor_qcc_trd sysfs_thermal:dir r_dir_perms;
-
-# cpustats /proc/stat
-allow vendor_qcc_trd proc_stat:file r_file_perms;
-allow vendor_qcc_trd proc_stat:dir r_dir_perms;
-
-#access to taskstats interface for process stats
-allow vendor_qcc_trd self:netlink_generic_socket create_socket_perms_no_ioctl;
-
-# mps /persist/hlos_rfs/shared
-allow vendor_qcc_trd mnt_vendor_file:dir r_dir_perms;
-allow vendor_qcc_trd vendor_persist_rfs_shared_hlos_file:dir rw_dir_perms;
-allow vendor_qcc_trd vendor_persist_rfs_shared_hlos_file:file create_file_perms;
-
-# for logcat
-unix_socket_connect(vendor_qcc_trd, logdr, logd);
-
-# allow qcc_prop
-set_prop(vendor_qcc_trd, vendor_qcc_prop);
-
-# qmi
-qmux_socket(vendor_qcc_trd);
-allow vendor_qcc_trd self:{ qipcrtr_socket } create_socket_perms_no_ioctl;
-
-# read ver_info.txt
-allow vendor_qcc_trd vendor_firmware_file:dir r_dir_perms;
-allow vendor_qcc_trd vendor_firmware_file:file r_file_perms;
diff --git a/qva/vendor/common/qcomsysd.te b/qva/vendor/common/qcomsysd.te
deleted file mode 100644
index 8835c57..0000000
--- a/qva/vendor/common/qcomsysd.te
+++ /dev/null
@@ -1,60 +0,0 @@
-# Copyright (c) 2018, 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.
-
-#Policy file for qcom-system-daemon
-#qcomsysd = qcom-system-daemon domain
-type vendor_qcomsysd, domain;
-type vendor_qcomsysd_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_qcomsysd);
-
-#Needed for logging
-allow vendor_qcomsysd vendor_smem_log_device:chr_file rw_file_perms;
-
-#Needed to read/write cookies to the misc partition
-allow vendor_qcomsysd block_device:dir r_dir_perms;
-
-#Needed to get image info from socinfo
-r_dir_file(vendor_qcomsysd, vendor_sysfs_soc)
-allow vendor_qcomsysd vendor_sysfs_soc:file w_file_perms;
-allow vendor_qcomsysd self:socket create;
-
-allow vendor_qcomsysd self:capability { sys_boot };
-allow vendor_qcomsysd self:qipcrtr_socket create_socket_perms_no_ioctl;
-use_vendor_per_mgr(vendor_qcomsysd);
-#allow qcomsysd access boot mode switch
-set_prop(vendor_qcomsysd, vendor_boot_mode_prop);
-
-#diag
-userdebug_or_eng(`
-    diag_use(vendor_qcomsysd)
-    set_prop(vendor_qcomsysd, powerctl_prop)
-    allow vendor_qcomsysd vendor_sysfs_qdss_dev:dir r_dir_perms;
-    allow vendor_qcomsysd vendor_sysfs_qdss_dev:file rw_file_perms;
-    allow vendor_qcomsysd vendor_sysfs_data:file r_file_perms;
-    hal_client_domain(vendor_qcomsysd, vendor_hal_diaghal)
-    hal_client_domain(vendor_qcomsysd, hal_allocator)
-')
diff --git a/qva/vendor/common/qconfigservice.te b/qva/vendor/common/qconfigservice.te
deleted file mode 100644
index 656828a..0000000
--- a/qva/vendor/common/qconfigservice.te
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright (c) 2020, 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.
-
-type vendor_qconfigservice, domain;
-type vendor_qconfigservice_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_qconfigservice)
-hal_server_domain(vendor_qconfigservice, vendor_hal_qconfig)
-
-hal_attribute_hwservice(vendor_hal_qconfig, vendor_hal_qconfig_hwservice)
-
-binder_call(vendor_hal_qconfig_client, vendor_hal_qconfig_server)
-binder_call(vendor_hal_qconfig_server, vendor_hal_qconfig_client)
diff --git a/qva/vendor/common/qfp-daemon.te b/qva/vendor/common/qfp-daemon.te
deleted file mode 100644
index 5ae5b64..0000000
--- a/qva/vendor/common/qfp-daemon.te
+++ /dev/null
@@ -1,60 +0,0 @@
-# Copyright (c) 2017, 2019 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.
-
-#qfp daemon for ultrasonic fingerprint sensor
-type vendor_qfp-daemon, domain;
-type vendor_qfp-daemon_exec, exec_type, vendor_file_type, file_type;
-
-hal_server_domain(vendor_qfp-daemon, hal_fingerprint)
-init_daemon_domain(vendor_qfp-daemon)
-
-allow vendor_qfp-daemon vendor_qfp-daemon_data_file:dir { rw_dir_perms setattr };
-allow vendor_qfp-daemon vendor_qfp-daemon_data_file:file create_file_perms;
-
-allow vendor_qfp-daemon vendor_sysfs_touch_aoi:dir r_dir_perms;
-allow vendor_qfp-daemon vendor_sysfs_touch_aoi:file rw_file_perms;
-
-# Access to tee_device
-allow vendor_qfp-daemon tee_device:chr_file rw_file_perms;
-
-# Read system property
-allow vendor_qfp-daemon property_socket:sock_file write;
-
-# RW to device driver
-allow vendor_qfp-daemon vendor_qbt_device:chr_file rw_file_perms;
-
-# R dir perms for firmware dir
-r_dir_file(vendor_qfp-daemon, firmware_file)
-
-# R dir perms for persist qc_senseid dir
-r_dir_file(vendor_qfp-daemon, mnt_vendor_file)
-r_dir_file(vendor_qfp-daemon, vendor_persist_qti_fp_file)
-
-#diag
-userdebug_or_eng(`
-    diag_use(vendor_qfp-daemon)
-')
diff --git a/qva/vendor/common/qmuxd.te b/qva/vendor/common/qmuxd.te
deleted file mode 100644
index af224b4..0000000
--- a/qva/vendor/common/qmuxd.te
+++ /dev/null
@@ -1,33 +0,0 @@
-# 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.
-
-type vendor_qmuxd, domain;
-type vendor_qmuxd_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_qmuxd)
-net_domain(vendor_qmuxd)
-set_prop(vendor_qmuxd, vendor_ctl_qmuxd_prop)
diff --git a/qva/vendor/common/qrtr.te b/qva/vendor/common/qrtr.te
deleted file mode 100644
index e4abe45..0000000
--- a/qva/vendor/common/qrtr.te
+++ /dev/null
@@ -1,40 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_qrtr, domain;
-type vendor_qrtr_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_qrtr)
-
-allow vendor_qrtr self:{
-    socket
-    qipcrtr_socket
-} create_socket_perms;
-
-allowxperm vendor_qrtr self:{ socket qipcrtr_socket } ioctl msm_sock_qrtr_ioctls;
-allow vendor_qrtr devpts:chr_file rw_file_perms;
-
-allow vendor_qrtr self:capability { net_bind_service };
diff --git a/qva/vendor/common/qseecomd.te b/qva/vendor/common/qseecomd.te
deleted file mode 100644
index 7f4b89f..0000000
--- a/qva/vendor/common/qseecomd.te
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright (c) 2018, 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.
-
-# Allow access to qsee_ipc_irq_spss device
-allow tee vendor_qsee_ipc_irq_spss_device:chr_file rw_file_perms;
-allow tee tee_device:chr_file rw_file_perms;
-hal_client_domain(tee, vendor_hal_soter);
-unix_socket_connect(tee, property, init)
-# Allow access to qsee data file
-allow tee vendor_data_qsee_file:dir create_dir_perms;
-allow tee vendor_data_qsee_file:file create_file_perms;
-# allow tee access for secure UI to work
-allow tee graphics_device:dir r_dir_perms;
-allow tee graphics_device:chr_file r_file_perms;
-allow tee vendor_data_file:dir r_dir_perms;
-
-dontaudit tee rootfs:dir { read };
-
-wakelock_use(tee)
-r_dir_file(tee, firmware_file)
-allow tee vendor_qfp-daemon_data_file:dir create_dir_perms;
-allow tee vendor_qfp-daemon_data_file:file create_file_perms;
-allow tee vendor_persist_qti_fp_file:dir create_dir_perms;
-allow tee vendor_persist_qti_fp_file:file create_file_perms;
-
-allowxperm tee vendor_rpmb_device:blk_file ioctl { MMC_IOC_CMD };
-allowxperm tee vendor_rpmb_device:chr_file ioctl {MMC_IOC_MULTI_CMD};
diff --git a/qva/vendor/common/qspmhal.te b/qva/vendor/common/qspmhal.te
deleted file mode 100644
index 7835895..0000000
--- a/qva/vendor/common/qspmhal.te
+++ /dev/null
@@ -1,48 +0,0 @@
-# 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.
-
-type vendor_hal_qspmhal_default, domain;
-type vendor_hal_qspmhal_default_exec, exec_type, vendor_file_type, file_type;
-typeattribute vendor_hal_qspmhal_default untrusted_app_visible_halserver_violators;
-
-init_daemon_domain(vendor_hal_qspmhal_default)
-
-hal_server_domain(vendor_hal_qspmhal_default, vendor_hal_qspmhal)
-hal_client_domain(vendor_hal_qspmhal_default, hal_allocator)
-
-binder_call(vendor_hal_qspmhal_client, vendor_hal_qspmhal_server)
-binder_call(vendor_hal_qspmhal_server, vendor_hal_qspmhal_client)
-
-# Add hwservice related rules
-hal_attribute_hwservice(vendor_hal_qspmhal, vendor_hal_qspmhal_hwservice)
-
-#Add permission to create/write file
-allow vendor_hal_qspmhal_default vendor_qspmhal_data_file:file  create_file_perms;
-allow vendor_hal_qspmhal_default vendor_qspmhal_data_file:dir rw_dir_perms;
-
-#getprop rule for qspm debug prop
-userdebug_or_eng(`get_prop(vendor_hal_qspmhal_default, vendor_qspm_dbg_prop)')
diff --git a/qva/vendor/common/qspmsvc.te b/qva/vendor/common/qspmsvc.te
deleted file mode 100644
index 39a13bd..0000000
--- a/qva/vendor/common/qspmsvc.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# 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.
-
-hal_client_domain(vendor_qspmsvc, vendor_hal_qspmhal)
diff --git a/qva/vendor/common/qtelephony.te b/qva/vendor/common/qtelephony.te
deleted file mode 100644
index 37cca87..0000000
--- a/qva/vendor/common/qtelephony.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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.
-
-# Allow qtelephony to access perf hal
-hal_client_domain(vendor_qtelephony, vendor_hal_perf);
diff --git a/qva/vendor/common/qti-media.te b/qva/vendor/common/qti-media.te
deleted file mode 100644
index f6764b1..0000000
--- a/qva/vendor/common/qti-media.te
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright (c) 2020, 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.
-
-type vendor_qti_media, domain;
-type vendor_qti_media_exec, exec_type, vendor_file_type,file_type;
-
-init_daemon_domain(vendor_qti_media)
-
-allow vendor_qti_media vendor_qti_media_exec:file rx_file_perms;
-allow vendor_qti_media vendor_toolbox_exec:file rx_file_perms;
-set_prop(vendor_qti_media, vendor_video_prop)
-allow vendor_qti_media vendor_sysfs_sku:file { open read };
diff --git a/qva/vendor/common/qti.te b/qva/vendor/common/qti.te
deleted file mode 100644
index e2228a2..0000000
--- a/qva/vendor/common/qti.te
+++ /dev/null
@@ -1,48 +0,0 @@
-# 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.
-
-allow vendor_qti {
-    vendor_smem_log_device
-    vendor_mhi_device
-    userdebug_or_eng(`kmsg_device')
-}:chr_file rw_file_perms;
-
-allow vendor_qti self:{
-    netlink_socket
-    udp_socket
-} create_socket_perms_no_ioctl;
-
-allow vendor_qti self:udp_socket ioctl;
-allowxperm vendor_qti self:udp_socket ioctl priv_sock_ioctls;
-
-allow vendor_qti vendor_shell_exec:file rx_file_perms;
-
-# Allow write permissions for log file
-userdebug_or_eng(`
-    allow vendor_qti vendor_qti_data_file:file create_file_perms;
-')
-dontaudit vendor_qti vendor_shell_exec:file x_file_perms;
diff --git a/qva/vendor/common/qvrd.te b/qva/vendor/common/qvrd.te
deleted file mode 100644
index 79863aa..0000000
--- a/qva/vendor/common/qvrd.te
+++ /dev/null
@@ -1,94 +0,0 @@
-# Copyright (c) 2016-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.
-
-#
-# General
-#
-
-userdebug_or_eng(` allow vendor_qvrd vendor_diag_device:chr_file rw_file_perms');
-#r_dir_file(vendor_qvrd, vendor_file)
-r_dir_file(vendor_qvrd, vendor_sysfs_kgsl)
-
-#
-# Sensors
-#
-
-# Allow access to ADSP & SLPI
-allow vendor_qvrd { ion_device vendor_qdsp_device vendor_dsp_device vendor_xdsp_device }:chr_file r_file_perms;
-
-
-#
-# Display
-#
-
-# Allow access to /sys/devices/virtual/graphics/fb* for lineptr interrupts
-allow vendor_qvrd vendor_sysfs_graphics:file rw_file_perms;
-
-#
-# Camera
-#
-
-hal_client_domain(vendor_qvrd, hal_camera);
-
-# Allow access to camera HAL and UVC nodes
-allow vendor_qvrd device:dir r_dir_perms;
-allow vendor_qvrd { gpu_device video_device camera_device sensors_device }:chr_file r_file_perms;
-
-
-#
-# Perfd
-#
-
-hal_client_domain(vendor_qvrd, vendor_hal_perf)
-
-allow vendor_qvrd fwk_sensor_hwservice:hwservice_manager find;
-hal_client_domain(vendor_qvrd, hal_sensors)
-
-# QVRD
-userdebug_or_eng(`
-allow vendor_qvrd debugfs:dir r_dir_perms;
-allow vendor_qvrd vendor_qti_debugfs:dir r_dir_perms;
-allow vendor_qvrd vendor_qti_debugfs:file rw_file_perms;
-')
-
-# Allow access to kgsl sysfs nodes for performance optimization
-allow vendor_qvrd vendor_sysfs_kgsl:file r_file_perms;
-
-# Allow access to qvr_external_sensor sysfs nodes for external viewers
-allow vendor_qvrd vendor_sysfs_qvr_external_sensor:dir r_dir_perms;
-allow vendor_qvrd vendor_sysfs_qvr_external_sensor:file rw_file_perms;
-
-# Allow access to qvr_external_sensor device nodes for external viewers
-allow vendor_qvrd vendor_qvr_external_sensor_device:chr_file rw_file_perms;
-
-# qvr properties
-get_prop(vendor_qvrd, vendor_qvr_prop)
-get_prop(vendor_qvrd, vendor_sxr_prop)
-get_prop(vendor_qvrd, vendor_qvrd_prop)
-get_prop(vendor_qvrd, vendor_qvr_persist_prop)
-get_prop(vendor_qvrd, vendor_qvrd_persist_prop)
-allow vendor_qvrd video_device:chr_file w_file_perms;
diff --git a/qva/vendor/common/radio.te b/qva/vendor/common/radio.te
deleted file mode 100644
index aa56f41..0000000
--- a/qva/vendor/common/radio.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2019-2020, 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.
-
-#qspm
-hal_client_domain(radio, vendor_hal_qspmhal)
diff --git a/qva/vendor/common/rild.te b/qva/vendor/common/rild.te
deleted file mode 100644
index b8e86ec..0000000
--- a/qva/vendor/common/rild.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2018, 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.
-
-set_prop(rild, vendor_xlat_prop)
diff --git a/qva/vendor/common/seapp_contexts b/qva/vendor/common/seapp_contexts
deleted file mode 100644
index 2670731..0000000
--- a/qva/vendor/common/seapp_contexts
+++ /dev/null
@@ -1,32 +0,0 @@
-# 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.
-
-#Add new domain for perfdump app
-user=system seinfo=platform name=com.qualcomm.qti.perfdump domain=vendor_perfdump_app type=system_app_data_file
-
-#Add new domain for powerservice app
-user=_app seinfo=platform name=.pasr domain=vendor_powerservice_app type=app_data_file levelFrom=all
diff --git a/qva/vendor/common/sec_nvm.te b/qva/vendor/common/sec_nvm.te
deleted file mode 100644
index b1baed1..0000000
--- a/qva/vendor/common/sec_nvm.te
+++ /dev/null
@@ -1,48 +0,0 @@
-# Copyright (c) 2018, 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.
-
-# vendor_sec_nvm service
-type vendor_sec_nvm, domain;
-
-type vendor_sec_nvm_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_sec_nvm)
-allow vendor_sec_nvm ion_device:chr_file rw_file_perms;
-allow vendor_sec_nvm vendor_skp_device:chr_file { getattr rw_file_perms };
-
-allow vendor_sec_nvm mnt_vendor_file:dir search;
-allow vendor_sec_nvm vendor_persist_secnvm_file:dir rw_dir_perms;
-allow vendor_sec_nvm vendor_persist_secnvm_file:file create_file_perms;
-
-# UFS
-allow vendor_sec_nvm vendor_sysfs_scsi_host:file rw_file_perms;
-
-allow vendor_sec_nvm vendor_spcom_device:chr_file { getattr rw_file_perms };
-allow vendor_sec_nvm vendor_sp_ssr_device:chr_file rw_file_perms;
-set_prop(vendor_sec_nvm, vendor_spcomlib_prop)
-allow vendor_sec_nvm vendor_sec_nvm_device:chr_file rw_file_perms;
-allow vendor_sec_nvm vendor_spss_utils_device:chr_file rw_file_perms;
diff --git a/qva/vendor/common/secure_element.te b/qva/vendor/common/secure_element.te
deleted file mode 100644
index a33d9c2..0000000
--- a/qva/vendor/common/secure_element.te
+++ /dev/null
@@ -1,29 +0,0 @@
-#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.
-
-#allow secure_element to access perf hal
-hal_client_domain(secure_element, vendor_hal_perf)
diff --git a/qva/vendor/common/seemp_health_daemon.te b/qva/vendor/common/seemp_health_daemon.te
deleted file mode 100644
index 11e6ae7..0000000
--- a/qva/vendor/common/seemp_health_daemon.te
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_seemp_health_daemon, domain;
-type vendor_seemp_health_daemon_exec, exec_type, vendor_file_type, file_type;
-
-#Allow for transition from init domain to vendor_seemp_health_daemon
-init_daemon_domain(vendor_seemp_health_daemon)
-#Allow access to tee device
-allow vendor_seemp_health_daemon tee_device:chr_file rw_file_perms;
diff --git a/qva/vendor/common/sensingdaemon.te b/qva/vendor/common/sensingdaemon.te
deleted file mode 100644
index 9795843..0000000
--- a/qva/vendor/common/sensingdaemon.te
+++ /dev/null
@@ -1,41 +0,0 @@
-# Copyright (c) 2017,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.
-
-type vendor_sensingdaemon, domain;
-type vendor_sensingdaemon_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_sensingdaemon)
-
-#listen on /dev/socket/vendor_sensingdaemon
-allow vendor_sensingdaemon self:unix_stream_socket { listen accept read write };
-
-# Allow access to create socket
-allow vendor_sensingdaemon self:qipcrtr_socket create_socket_perms_no_ioctl;
-
-# Allow access to create data output files
-allow vendor_sensingdaemon vendor_sensing_vendor_data_file:dir rw_dir_perms;
-allow vendor_sensingdaemon vendor_sensing_vendor_data_file:file create_file_perms;
diff --git a/qva/vendor/common/service.te b/qva/vendor/common/service.te
deleted file mode 100644
index 9d9adac..0000000
--- a/qva/vendor/common/service.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2018-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.
-
-type vendor_dun_service,                 service_manager_type;
-type vendor_imsrcs_service,              service_manager_type;
diff --git a/qva/vendor/common/spdaemon.te b/qva/vendor/common/spdaemon.te
deleted file mode 100644
index edc5b40..0000000
--- a/qva/vendor/common/spdaemon.te
+++ /dev/null
@@ -1,73 +0,0 @@
-# Copyright (c) 2018, 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.
-
-# vendor_spdaemon service
-type vendor_spdaemon, domain;
-
-type vendor_spdaemon_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_spdaemon)
-
-# Allow access to spss_utils device
-allow vendor_spdaemon vendor_spss_utils_device:chr_file rw_file_perms;
-
-allow vendor_spdaemon vendor_spcom_device:chr_file { getattr rw_file_perms };
-allow vendor_spdaemon vendor_skp_device:chr_file { getattr rw_file_perms };
-
-# Allow access to spss_utils device
-allow vendor_spdaemon vendor_spss_utils_device:chr_file rw_file_perms;
-allow vendor_spdaemon mnt_vendor_file:dir search;
-
-# Need to check if really needed
-set_prop(vendor_spdaemon, vendor_spcomlib_prop)
-allow vendor_spdaemon vendor_spdaemon_ssr_device:chr_file rw_file_perms;
-allow vendor_spdaemon vendor_sp_ssr_device:chr_file rw_file_perms;
-allow vendor_spdaemon vendor_sp_nvm_device:chr_file rw_file_perms;
-allow vendor_spdaemon vendor_sp_keymaster_device:chr_file rw_file_perms;
-allow vendor_spdaemon vendor_cryptoapp_device:chr_file rw_file_perms;
-allow vendor_spdaemon vendor_iuicc_device:chr_file rw_file_perms;
-allow vendor_spdaemon ion_device:chr_file rw_file_perms;
-r_dir_file(vendor_spdaemon, firmware_file);
-use_vendor_per_mgr(vendor_spdaemon)
-hal_client_domain(vendor_spdaemon, hal_telephony)
-
-# Allow to access IAR-DB at /mnt/vendor/persist/iar_db
-allow vendor_spdaemon vendor_persist_iar_db_file:dir rw_dir_perms;
-allow vendor_spdaemon vendor_persist_iar_db_file:file create_file_perms;
-
-# Allow to access IAR-DB at /mnt/vendor/spunvm
-allow vendor_spdaemon vendor_spunvm_file:dir rw_dir_perms;
-allow vendor_spdaemon vendor_spunvm_file:file create_file_perms;
-
-allow vendor_spdaemon vendor_sysfs_data:file r_file_perms;
-allow vendor_spdaemon vendor_sysfs_spdaemon:file r_file_perms;
-r_dir_file(vendor_spdaemon, vendor_sysfs_spss);
-
-userdebug_or_eng(`
-allow vendor_spdaemon vendor_debugfs_ipc:file rw_file_perms;
-allow vendor_spdaemon vendor_debugfs_ipc:dir r_dir_perms;
-')
diff --git a/qva/vendor/common/ssgqmigd.te b/qva/vendor/common/ssgqmigd.te
deleted file mode 100644
index 4dbbea4..0000000
--- a/qva/vendor/common/ssgqmigd.te
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (c) 2017, 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.
-
-# vendor_ssgqmigd - SSG QMI Gateway Daemon
-type vendor_ssgqmigd, domain, mlstrustedsubject;
-type vendor_ssgqmigd_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_ssgqmigd)
-
-allow vendor_ssgqmigd self:qipcrtr_socket create_socket_perms_no_ioctl;
diff --git a/qva/vendor/common/ssgtzd.te b/qva/vendor/common/ssgtzd.te
deleted file mode 100644
index 6fabf15..0000000
--- a/qva/vendor/common/ssgtzd.te
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright (c) 2017-2020, 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.
-
-# vendor_ssgtzd - SSG TZ Daemon
-type vendor_ssgtzd, domain, mlstrustedsubject;
-type vendor_ssgtzd_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_ssgtzd)
-
-#Allow access to smcinvoke device
-allow vendor_ssgtzd tee_device:chr_file rw_file_perms;
-
-allow vendor_ssgtzd vendor_ssg_app:unix_stream_socket connectto;
-#Allow access to firmware/image
-allow vendor_ssgtzd vendor_firmware_file:dir r_dir_perms;
-allow vendor_ssgtzd vendor_firmware_file:file r_file_perms;
-#Allow ssgtzd to create sockets for HTTP
-allow vendor_ssgtzd self:udp_socket create_socket_perms;
-
-# Allow ssgtzd to write state information to /data/vendor/qwes/qwesd.conf
-allow vendor_ssgtzd vendor_qwes_data_file:dir { rw_dir_perms setattr };
-allow vendor_ssgtzd vendor_qwes_data_file:file rw_file_perms;
-
-# Allow access to qipcrtr_socket
-# Remove this when QMI service moves to pfmd
-allow vendor_ssgtzd self:{ socket qipcrtr_socket } create_socket_perms;
-allowxperm vendor_ssgtzd self:{ socket qipcrtr_socket } ioctl msm_sock_ipc_ioctls;
diff --git a/qva/vendor/common/surfaceflinger.te b/qva/vendor/common/surfaceflinger.te
deleted file mode 100644
index 544c917..0000000
--- a/qva/vendor/common/surfaceflinger.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# 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.
-
-r_dir_file(surfaceflinger, vendor_sysfs_qfprom)
diff --git a/qva/vendor/common/sysmonapp/keys.conf b/qva/vendor/common/sysmonapp/keys.conf
deleted file mode 100644
index bed3bca..0000000
--- a/qva/vendor/common/sysmonapp/keys.conf
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2018, 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.
-[@SYSMONAPP]
-ALL : device/qcom/sepolicy/qva/vendor/common/sysmonapp/sysmonapp_app_cert.x509.pem
diff --git a/qva/vendor/common/sysmonapp/mac_permissions.xml b/qva/vendor/common/sysmonapp/mac_permissions.xml
deleted file mode 100644
index 1b87982..0000000
--- a/qva/vendor/common/sysmonapp/mac_permissions.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-Copyright (c) 2018, 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.
--->
-
-<policy>
-    <signer signature="@SYSMONAPP" >
-      <seinfo value="sysmonapp" />
-    </signer>
-</policy>
diff --git a/qva/vendor/common/sysmonapp/seapp_contexts b/qva/vendor/common/sysmonapp/seapp_contexts
deleted file mode 100644
index f027f93..0000000
--- a/qva/vendor/common/sysmonapp/seapp_contexts
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (c) 2018, 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.
-
-# sysmonapp applications
-user=_app seinfo=sysmonapp domain=vendor_sysmonapp_app name=com.qualcomm.sysmonappInternal type=app_data_file levelFrom=all
-user=_app seinfo=sysmonapp domain=vendor_sysmonapp_app name=com.qualcomm.qti.sysmonappExternal type=app_data_file levelFrom=all
diff --git a/qva/vendor/common/sysmonapp/sysmonapp_app.te b/qva/vendor/common/sysmonapp/sysmonapp_app.te
deleted file mode 100644
index e69a61c..0000000
--- a/qva/vendor/common/sysmonapp/sysmonapp_app.te
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright (c) 2018, 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.
-
-## vendor_sysmonapp_app
-## This file defines permissions that vendor_sysmonapp_app can carry
-
-type vendor_sysmonapp_app, domain;
-app_domain(vendor_sysmonapp_app);
-
-# For service manager access
-allow vendor_sysmonapp_app app_api_service:service_manager find;
-
-# For access to camera and media
-allow vendor_sysmonapp_app cameraserver_service:service_manager find;
-allow vendor_sysmonapp_app mediaserver_service:service_manager find;
-
-# To access FastRPC devices
-allow vendor_sysmonapp_app vendor_qdsp_device:chr_file r_file_perms;
-allow vendor_sysmonapp_app vendor_xdsp_device:chr_file r_file_perms;
diff --git a/qva/vendor/common/sysmonapp/sysmonapp_app_cert.x509.pem b/qva/vendor/common/sysmonapp/sysmonapp_app_cert.x509.pem
deleted file mode 100644
index 0dc0867..0000000
--- a/qva/vendor/common/sysmonapp/sysmonapp_app_cert.x509.pem
+++ /dev/null
@@ -1,24 +0,0 @@
------BEGIN CERTIFICATE-----
-MIID+zCCAuOgAwIBAgIJAI6ZXMpc0lvVMA0GCSqGSIb3DQEBCwUAMIGUMQswCQYD
-VQQGEwJJTjESMBAGA1UECAwJVGVsYW5nYW5hMRIwEAYDVQQHDAlIeWRlcmFiYWQx
-FjAUBgNVBAoMDVF1YWxjb21tLEluYy4xDDAKBgNVBAsMA1FDVDEPMA0GA1UEAwwG
-c2dhbmRlMSYwJAYJKoZIhvcNAQkBFhdzZ2FuZGVAcXRpLnF1YWxjb21tLmNvbTAe
-Fw0xODA2MTgwNTM0MTVaFw00NTExMDMwNTM0MTVaMIGUMQswCQYDVQQGEwJJTjES
-MBAGA1UECAwJVGVsYW5nYW5hMRIwEAYDVQQHDAlIeWRlcmFiYWQxFjAUBgNVBAoM
-DVF1YWxjb21tLEluYy4xDDAKBgNVBAsMA1FDVDEPMA0GA1UEAwwGc2dhbmRlMSYw
-JAYJKoZIhvcNAQkBFhdzZ2FuZGVAcXRpLnF1YWxjb21tLmNvbTCCASAwDQYJKoZI
-hvcNAQEBBQADggENADCCAQgCggEBAJf2rCxstFL2XNWAfKOfDYDkIBXDR5hIQgki
-TlO3gOt7HuQ2VJXwiE7u9DxuBo2Z/bjqA0jsTyoVPUv4L0ZzV5sJHTyNmGtZbE8Y
-1HaXopIWTTM3rACZc/flhDUilEwLwhwSnaPLb+ZfBAziJfB4zlVFTqtW9ppyHTuK
-LtyZ/T3d0IbpKsQveuUrRi2C7D+DLw4ma8jLxZxB74SIrJDHAwO2fBfVYdr1zomV
-2Xw3yByP9LtH1iZn0mazK2iwLc0jwMA0MkP9vXy0AgU/K05fK2NGA1ohYGE+VylP
-2/xdOoTGYG9o+rQ4E4aRHLhUm0rrYJ+gMr5dNfAYKrYkNhYAFQ8CAQOjUDBOMB0G
-A1UdDgQWBBTmhWIosfZ4boEKTQfYpXyEEKWJczAfBgNVHSMEGDAWgBTmhWIosfZ4
-boEKTQfYpXyEEKWJczAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQA5
-60hYg8NV88l1vIJm67f2ZNOdRRcdN9cfRZcvQJ+5b6Fi5y3OWrAZZUoq809GwVzM
-BLD39kW7FeD7SGoXEn0aEiNPW7Ow0wEyNIKcnbL1BSCqNbuFpoDuTm8WA81NG3jV
-I3seJtbJBlOH800udMsuq1HlR2Bf0gG7CrCqSAoWupu6wFT9bvjRH92xd/nx9f5H
-vKdLHuCavy9woAp+pAZG06QYQ3r5xghUrSFzeBwRZyCvEdoPNMKRnAsLSPDVNPKh
-mrvpzBOuFpFrMikMTniOua0O7u1Mozb9JUCVJ3gKg6XDjkOggUZz4YOnjZTYCt+U
-M4A7lXTNwu+o0hww8cEB
------END CERTIFICATE-----
diff --git a/qva/vendor/common/system_app.te b/qva/vendor/common/system_app.te
deleted file mode 100644
index 4e7c966..0000000
--- a/qva/vendor/common/system_app.te
+++ /dev/null
@@ -1,54 +0,0 @@
-# Copyright (c) 2018-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.
-
-
-#allow system_app access factory
-hal_client_domain(system_app, vendor_hal_factory_qti);
-
-#allow system_app access sensorscalibration service
-hal_client_domain(system_app, vendor_hal_sensorscalibrate_qti);
-
-#perf
-hal_client_domain(system_app, vendor_hal_perf)
-
-#allow system_app to interact with soter hal
-hal_client_domain(system_app, vendor_hal_soter);
-
-#allow system app access display color for qdcm
-hal_client_domain(system_app, vendor_hal_display_color);
-
-# allow system_app to interact with light hal
-hal_client_domain(system_app, hal_light);
-
-# update engine
-binder_call( system_app, update_engine )
-
-#allow system app to access hal_qspmhal
-hal_client_domain(system_app, vendor_hal_qspmhal);
-
-# allow system_app to interact with pasr hal
-hal_client_domain(system_app, vendor_hal_pasrmanager)
diff --git a/qva/vendor/common/system_server.te b/qva/vendor/common/system_server.te
deleted file mode 100644
index 10c9bca..0000000
--- a/qva/vendor/common/system_server.te
+++ /dev/null
@@ -1,66 +0,0 @@
-# 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.
-
-##for perf-hal/iop-hal call
-hal_client_domain(system_server, vendor_hal_perf)
-hal_client_domain(system_server, vendor_hal_iop)
-hal_client_domain(system_server, vendor_hal_srvctracker)
-
-binder_call(system_server, vendor_hal_srvctracker_default)
-
-allow system_server vendor_proc_audiod:file r_file_perms;
-
-# allow system_server to access IOP HAL service
-hal_client_domain(system_server, vendor_hal_iop)
-
-# allow system_server to access vendor perf properties
-get_prop(system_server, vendor_iop_prop)
-get_prop(system_server, vendor_bservice_prop)
-get_prop(system_server, vendor_reschedule_service_prop)
-get_prop(system_server, vendor_cgroup_follow_prop)
-get_prop(system_server, vendor_scroll_prop)
-
-# allow WIGIG framework hosted in system_server to access wigig_hal
-hal_client_domain(system_server, vendor_hal_wigig)
-# allow WIGIG framework to access network performance tuner
-hal_client_domain(system_server, vendor_hal_wigig_npt)
-# allow WIGIG framework to access the capability config store
-hal_client_domain(system_server, vendor_hal_capabilityconfigstore_qti);
-# allow WIFI framework to access the fst-manager
-hal_client_domain(system_server, vendor_hal_fstman)
-# allow WIGIG framework access to wil6210 sysfs files like thermal_throttling
-allow system_server vendor_sysfs_wigig:file rw_file_perms;
-
-# allow system_server to access IWifiStats HAL service
-hal_client_domain(system_server, vendor_hal_wifilearner);
-
-# allow system_server to access Qspmhal
-hal_client_domain(system_server, vendor_hal_qspmhal);
-
-get_prop(system_server, vendor_qspm_prop)
-
-get_prop(system_server, vendor_xlat_prop)
diff --git a/qva/vendor/common/untrusted_app.te b/qva/vendor/common/untrusted_app.te
deleted file mode 100644
index dd930a6..0000000
--- a/qva/vendor/common/untrusted_app.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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.
-
-hal_client_domain(untrusted_app, vendor_hal_qspmhal)
-
diff --git a/qva/vendor/common/untrusted_app_25.te b/qva/vendor/common/untrusted_app_25.te
deleted file mode 100644
index 04ab686..0000000
--- a/qva/vendor/common/untrusted_app_25.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2019-2020, 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.
-
-hal_client_domain(untrusted_app_25, vendor_hal_qspmhal)
diff --git a/qva/vendor/common/untrusted_app_27.te b/qva/vendor/common/untrusted_app_27.te
deleted file mode 100644
index fb5a32a..0000000
--- a/qva/vendor/common/untrusted_app_27.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2019-2020, 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.
-
-hal_client_domain(untrusted_app_27, vendor_hal_qspmhal)
diff --git a/qva/vendor/common/untrusted_app_29.te b/qva/vendor/common/untrusted_app_29.te
deleted file mode 100644
index ddabb36..0000000
--- a/qva/vendor/common/untrusted_app_29.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2020, 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.
-
-hal_client_domain(untrusted_app_29, vendor_hal_qspmhal)
diff --git a/qva/vendor/common/vendor_audioftm.te b/qva/vendor/common/vendor_audioftm.te
deleted file mode 100644
index fc4c12d..0000000
--- a/qva/vendor/common/vendor_audioftm.te
+++ /dev/null
@@ -1,47 +0,0 @@
-# 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.
-#
-type vendor_audioftm, domain;
-type vendor_audioftm_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_audioftm)
-domain_auto_trans(vendor_mmi, vendor_audioftm_exec, vendor_audioftm)
-
-allow vendor_audioftm vendor_audioftm_exec:file { rx_file_perms entrypoint };
-
-allow vendor_audioftm vendor_proc_audiod:file r_file_perms;
-allow vendor_audioftm vendor_proc_audiod:dir search;
-
-allow vendor_audioftm proc_asound:dir search;
-
-allow vendor_audioftm devpts:chr_file rw_file_perms;
-
-allow vendor_audioftm vendor_audio_data_file:dir create_dir_perms;
-allow vendor_audioftm vendor_audio_data_file:file create_file_perms;
-
-allow vendor_audioftm audio_device:dir r_dir_perms;
-allow vendor_audioftm audio_device:chr_file rw_file_perms;
diff --git a/qva/vendor/common/vendor_dataservice_app.te b/qva/vendor/common/vendor_dataservice_app.te
deleted file mode 100644
index f74fa55..0000000
--- a/qva/vendor/common/vendor_dataservice_app.te
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (c) 2020, 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.
-
-allow vendor_dataservice_app vendor_hal_slmadapter_hwservice:hwservice_manager find;
-
-get_prop(vendor_dataservice_app, vendor_slm_prop)
-
-allow vendor_dataservice_app vendor_hal_mwqemadapter_hwservice:hwservice_manager find;
-
-get_prop(vendor_dataservice_app, vendor_mwqem_prop)
diff --git a/qva/vendor/common/vendor_init.te b/qva/vendor/common/vendor_init.te
deleted file mode 100644
index 06e5cfc..0000000
--- a/qva/vendor/common/vendor_init.te
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright (c) 2018-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.
-
-type vendor_init_exec, exec_type, vendor_file_type, file_type;
-
-set_prop(vendor_init, vendor_bluetooth_prop)
-#set_prop(vendor_init, vold_prop)
-
-set_prop(vendor_init, vendor_hvdcp_opti_prop)
-get_prop(vendor_init, vendor_hvdcp_opti_prop)
-
-get_prop(vendor_init, vendor_boot_mode_prop)
-get_prop(vendor_init, vendor_mmi_prop)
-
-set_prop(vendor_init, vendor_usb_prop)
-
-get_prop(vendor_init, vendor_video_prop)
-set_prop(vendor_init, vendor_sys_video_prop)
-
-set_prop(vendor_init, vendor_wigig_prop)
-
-set_prop(vendor_init, vendor_qspm_prop)
-
-set_prop(vendor_init, vendor_mpctl_prop)
-
-userdebug_or_eng(`
-  set_prop(vendor_init, vendor_audio_debug_prop)
-')
-
-set_prop(vendor_init, vendor_disable_spu_prop)
-
-set_prop(vendor_init, vendor_persist_dpm_prop)
-
-# Allow vendor_init to set vendor_pasr_prop
-set_prop(vendor_init, vendor_pasr_prop)
diff --git a/qva/vendor/common/vndservice.te b/qva/vendor/common/vndservice.te
deleted file mode 100644
index d99f378..0000000
--- a/qva/vendor/common/vndservice.te
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (c) 2018-2020 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.
-
-type vendor_esepmdaemon_service, vndservice_manager_type;
-
-type wfdnativemm_service,               vndservice_manager_type;
diff --git a/qva/vendor/common/vndservice_contexts b/qva/vendor/common/vndservice_contexts
deleted file mode 100644
index 2e16d67..0000000
--- a/qva/vendor/common/vndservice_contexts
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2019-2020 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.
-
-#WFD
-wfd.native.mm.service                          u:object_r:wfdnativemm_service:s0
diff --git a/qva/vendor/common/vppservice.te b/qva/vendor/common/vppservice.te
deleted file mode 100644
index 7bd7dda..0000000
--- a/qva/vendor/common/vppservice.te
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copyright (c) 2018-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 vendor_vppservice, domain;
-type vendor_vppservice_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_vppservice)
-
-hal_server_domain(vendor_vppservice, vendor_hal_vpp)
-
-hal_attribute_hwservice(vendor_hal_vpp, vendor_hal_vpp_hwservice)
-
-binder_call(vendor_hal_vpp_client, vendor_hal_vpp_server)
-binder_call(vendor_hal_vpp_server, vendor_hal_vpp_client)
-
-# allow vppservice to access adsprpcd
-r_dir_file(vendor_vppservice, adsprpcd_file);
-#get_prop(vendor_vppservice, adsprpc_prop)
-
-r_dir_file(vendor_vppservice, firmware_file);
-
-# allow access to vppservice (/data/vendor/vpp)
-allow vendor_vppservice vendor_vpp_data_file:dir create_dir_perms;
-allow vendor_vppservice vendor_vpp_data_file:file create_file_perms;
-
-# allow access to vppservice (/persist/vpp)
-r_dir_file(vendor_vppservice, vendor_persist_vpp_file)
-allow vendor_vppservice mnt_vendor_file:dir search;
-
-# allow vppservice to access ion, video device & qdsp_device
-allow vendor_vppservice ion_device:chr_file rw_file_perms;
-allow vendor_vppservice video_device:chr_file rw_file_perms;
-allow vendor_vppservice vendor_qdsp_device:chr_file r_file_perms;
-allow vendor_vppservice vendor_xdsp_device:chr_file r_file_perms;
-allow vendor_vppservice gpu_device:chr_file rw_file_perms;
-# allow vppservice to access dsp read_prop
-get_prop(vendor_vppservice, vendor_adsprpc_prop)
-
-hal_client_domain(vendor_vppservice, hal_graphics_allocator)
-hal_client_domain(vendor_vppservice, vendor_hal_capabilityconfigstore_qti)
diff --git a/qva/vendor/common/vpsservice.te b/qva/vendor/common/vpsservice.te
deleted file mode 100755
index 34879e6..0000000
--- a/qva/vendor/common/vpsservice.te
+++ /dev/null
@@ -1,31 +0,0 @@
-# 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.
-
-hwbinder_use(vendor_vpsservice);
-hal_client_domain(vendor_vpsservice, vendor_hal_vpp)
-hal_client_domain(vendor_vpsservice, vendor_hal_iop)
-get_prop(vendor_vpsservice, vendor_iop_prop)
diff --git a/qva/vendor/common/wcnss_service.te b/qva/vendor/common/wcnss_service.te
deleted file mode 100644
index 46a9f32..0000000
--- a/qva/vendor/common/wcnss_service.te
+++ /dev/null
@@ -1,34 +0,0 @@
-# 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.
-
-# allow access to network performance tuner
-unix_socket_connect(vendor_wcnss_service, vendor_wigignpt, vendor_wigignpt)
-
-# allow net admin to cnss-daemon
-allow vendor_wcnss_service self:capability net_admin;
-allow vendor_wcnss_service kmsg_device:chr_file { write open };
-allow vendor_wcnss_service proc_net:file read;
diff --git a/qva/vendor/common/wfdservice.te b/qva/vendor/common/wfdservice.te
deleted file mode 100644
index 2b79493..0000000
--- a/qva/vendor/common/wfdservice.te
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copyright (c) 2017, 2019-2020 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.
-
-#allow access to sysfs to know HDMI repeater state
-allow wfdservice sysfs_graphics:file rw_file_perms;
-allow wfdservice sysfs_graphics:dir r_dir_perms;
-
-#Allow hardware binder use
-hwbinder_use(wfdservice)
-get_prop(wfdservice, hwservicemanager_prop)
-
-#Allow hal graphics mapper permissions
-hal_client_domain(wfdservice, hal_graphics_composer);
-
-#Allow hal graphics allocator permissions
-hal_client_domain(wfdservice, hal_graphics_allocator);
-
-hal_client_domain(wfdservice, wifidisplayhalservice);
-
-#Denial seen - SELinux : avc:  denied  { find } for interface=com.qualcomm.qti.wifidisplayhal::IHDCPSession
-#pid=3530 scontext=u:r:wfdservice:s0 tcontext=u:object_r:wifidisplayhalservice_hwservice:s0 tclass=hwservice_manager
-allow wfdservice wifidisplayhalservice_hwservice:hwservice_manager find;
-
-#Allow for property access
-get_prop(wfdservice, vendor_gralloc_prop)
-get_prop(wfdservice, vendor_video_prop)
-
-# Add the rule for wfd to access /proc/asound/pcm file
-r_dir_file(wfdservice, proc_asound)
-
-# Add the rule for wfd to access /proc/asound/card0/state file
-r_dir_file(wfdservice, proc_audiod)
-
-# Fix sink avc denials
-allow wfdservice mediametrics:binder call;
-allow wfdservice vendor_audio_prop:file read;
-allow wfdservice vendor_mm_osal_prop:file read;
-allow wfdservice vendor_audio_prop:file open;
-allow wfdservice vendor_mm_osal_prop:file open;
-allow wfdservice vendor_audio_prop:file getattr;
-allow wfdservice vendor_mm_osal_prop:file getattr;
diff --git a/qva/vendor/common/wifidisplayhalservice.te b/qva/vendor/common/wifidisplayhalservice.te
deleted file mode 100644
index 8360d2d..0000000
--- a/qva/vendor/common/wifidisplayhalservice.te
+++ /dev/null
@@ -1,59 +0,0 @@
-# Copyright (c) 2017, 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 wifidisplayhalservice_qti, domain;
-type wifidisplayhalservice_qti_exec, exec_type, vendor_file_type, file_type;
-net_domain(wifidisplayhalservice_qti)
-
-hal_server_domain_bypass(wifidisplayhalservice_qti,wifidisplayhalservice)
-
-#Allow for transition from init domain to wifidisplayhalservice
-init_daemon_domain(wifidisplayhalservice_qti)
-
-#Allow wifidisplayhalservice to use Vendor Binder IPC
-vndbinder_use(wifidisplayhalservice)
-
-# Allow hwbinder call from hal client to server
-binder_call(wifidisplayhalservice_client, wifidisplayhalservice_server)
-binder_call(wifidisplayhalservice_server, wifidisplayhalservice_client)
-
-# Add hwservice related rules
-add_hwservice(wifidisplayhalservice_server, wifidisplayhalservice_hwservice)
-
-#Direct streaming native service
-add_service(wifidisplayhalservice, wfdnativemm_service)
-
-#Allow access to firmware files for HDCP session
-r_dir_file(wifidisplayhalservice, vendor_firmware_file)
-r_dir_file(wifidisplayhalservice, firmware_file)
-
-#Allow access to tee/ion device and tcp socket for HDCP sessions
-allow wifidisplayhalservice tee_device:chr_file rw_file_perms;
-allow wifidisplayhalservice ion_device:chr_file r_file_perms;
-
-allow wifidisplayhalservice qdisplay_service:service_manager { find };
diff --git a/qva/vendor/common/wifilearnersvc.te b/qva/vendor/common/wifilearnersvc.te
deleted file mode 100644
index 9ce2471..0000000
--- a/qva/vendor/common/wifilearnersvc.te
+++ /dev/null
@@ -1,41 +0,0 @@
-# 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.
-
-type vendor_wifilearnersvc, domain;
-type vendor_wifilearnersvc_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_wifilearnersvc)
-hal_server_domain(vendor_wifilearnersvc, vendor_hal_wifilearner)
-
-#allows calls between client and server and vice-versa
-binder_call(vendor_hal_wifilearner_client, vendor_hal_wifilearner_server)
-binder_call(vendor_hal_wifilearner_server, vendor_hal_wifilearner_client)
-
-#register hal service and allow hal clients to find the service
-hal_attribute_hwservice(vendor_hal_wifilearner, vendor_hal_wifilearner_hwservice)
-
-allow vendor_hal_wifilearner self:netlink_generic_socket create_socket_perms_no_ioctl;
diff --git a/qva/vendor/common/wigighalsvc.te b/qva/vendor/common/wigighalsvc.te
deleted file mode 100644
index e48ccd7..0000000
--- a/qva/vendor/common/wigighalsvc.te
+++ /dev/null
@@ -1,67 +0,0 @@
-# Copyright (c) 2017,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.
-
-type vendor_wigighalsvc, domain;
-type vendor_wigighalsvc_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_wigighalsvc)
-hal_server_domain(vendor_wigighalsvc, vendor_hal_wigig)
-
-# allows calls between client and server and vice-versa
-binder_call(vendor_hal_wigig_client, vendor_hal_wigig_server)
-binder_call(vendor_hal_wigig_server, vendor_hal_wigig_client)
-
-# register hal service, allow hal clients to find the service
-hal_attribute_hwservice(vendor_hal_wigig, vendor_hal_wigig_hwservice)
-
-# allow start/stop services via ctl.start and ctl.stop
-set_prop(vendor_hal_wigig, vendor_ctl_vendor_wigigsvc_prop)
-
-# access wigig properties, for loading wil6210 module via init
-set_prop(vendor_hal_wigig, vendor_wigig_prop);
-
-# access wifi vendor data files
-r_dir_file(vendor_hal_wigig, vendor_wifi_vendor_data_file)
-allow vendor_hal_wigig vendor_wifi_vendor_data_file:dir rw_dir_perms;
-allow vendor_hal_wigig vendor_wifi_vendor_data_file:file create_file_perms;
-
-# dynamically create hostapd configuration file
-allow vendor_hal_wigig hostapd_data_file:dir rw_dir_perms;
-allow vendor_hal_wigig hostapd_data_file:file create_file_perms;
-
-# connect to supplicant by socket
-allow vendor_hal_wigig { hal_wifi_supplicant hal_wifi_hostapd_default }:unix_dgram_socket sendto;
-allow vendor_hal_wigig vendor_wifi_vendor_wpa_socket:dir rw_dir_perms;
-allow vendor_hal_wigig vendor_wifi_vendor_wpa_socket:sock_file create_file_perms;
-allow vendor_hal_wigig vendor_wigig_vendor_wpa_socket:sock_file rw_file_perms;
-
-# connect to wigig_hostapd by socket
-allow vendor_hal_wigig vendor_wigig_hostapd_socket:dir rw_dir_perms;
-allow vendor_hal_wigig vendor_wigig_hostapd_socket:sock_file create_file_perms;
-
-# check if wil6210 module is loaded
-allow vendor_hal_wigig proc_modules:file r_file_perms;
diff --git a/qva/vendor/common/wigignpt.te b/qva/vendor/common/wigignpt.te
deleted file mode 100644
index 62cc095..0000000
--- a/qva/vendor/common/wigignpt.te
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright (c) 2017,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.
-
-type vendor_wigignpt, domain;
-type vendor_wigignpt_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_wigignpt)
-#use bypass because net_admin capability is needed
-hal_server_domain_bypass(vendor_wigignpt, vendor_hal_wigig_npt)
-
-#allows calls between client and server and vice-versa
-binder_call(vendor_hal_wigig_npt_client, vendor_hal_wigig_npt_server)
-binder_call(vendor_hal_wigig_npt_server, vendor_hal_wigig_npt_client)
-
-#register hal service, allow hal clients to find the service
-hal_attribute_hwservice(vendor_hal_wigig_npt, vendor_hal_wigig_npt_hwservice)
-
-#allow updating network stack parameters under /proc/sys/net
-#this also requires net_admin capability
-allow vendor_hal_wigig_npt proc_net:file rw_file_perms;
-allow vendor_hal_wigig_npt self:capability net_admin;
-
-#update wigig0 network parameters like rps_cpus and gro_flush_timeout
-allow vendor_hal_wigig_npt sysfs_net:dir search;
-allow vendor_hal_wigig_npt vendor_sysfs_wigig:file rw_file_perms;
-
-#update bond0 rps_cpus (FST)
-allow vendor_hal_wigig_npt vendor_sysfs_bond0:file rw_file_perms;
-
-#listen on /dev/socket/vendor_wigignpt
-allow vendor_hal_wigig_npt vendor_hal_wigig_npt:unix_stream_socket { listen accept read write };
diff --git a/qva/vendor/kona/file.te b/qva/vendor/kona/file.te
deleted file mode 100644
index aa96235..0000000
--- a/qva/vendor/kona/file.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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.
-
-# vendor biometricsface data file
-type vendor_biometricsface_data_file, file_type, data_file_type;
diff --git a/qva/vendor/kona/file_contexts b/qva/vendor/kona/file_contexts
deleted file mode 100644
index 1d53f89..0000000
--- a/qva/vendor/kona/file_contexts
+++ /dev/null
@@ -1,32 +0,0 @@
-# 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.
-
-/(vendor|system/vendor)/bin/hw/android\.hardware\.biometrics\.face@1\.0-service    u:object_r:vendor_biometricsface_exec:s0
-
-/data/vendor/face3d_dir(/.*)?                                       u:object_r:vendor_biometricsface_data_file:s0
-
-/vendor/bin/embmsslServer       u:object_r:vendor_hal_embmssl_qti_exec:s0
diff --git a/qva/vendor/kona/genfs_contexts b/qva/vendor/kona/genfs_contexts
deleted file mode 100644
index adad891..0000000
--- a/qva/vendor/kona/genfs_contexts
+++ /dev/null
@@ -1,33 +0,0 @@
-# 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.
-
-# spdaemon sysfs
-genfscon sysfs /firmware/devicetree/base/soc/qcom,spmi@c440000/qcom,pm8150b@2/vadc@3100/vph_pwr@83/name u:object_r:vendor_sysfs_spdaemon:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,spss_utils/firmware_name u:object_r:vendor_sysfs_spdaemon:s0
-
-#net sysfs
-genfscon sysfs /devices/platform/soc/1c00000.qcom,pcie/pci0000:00/0000:00:00.0/0000:01:00.0/net u:object_r:sysfs_net:s0
diff --git a/qva/vendor/kona/hal_biometricsface.te b/qva/vendor/kona/hal_biometricsface.te
deleted file mode 100644
index bfb4d56..0000000
--- a/qva/vendor/kona/hal_biometricsface.te
+++ /dev/null
@@ -1,65 +0,0 @@
-# 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.
-
-type vendor_biometricsface, domain;
-type vendor_biometricsface_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_biometricsface)
-
-hal_server_domain(vendor_biometricsface, hal_face)
-
-r_dir_file(vendor_biometricsface, adsprpcd_file)
-
-#  Access for ion_memory
-allow vendor_biometricsface ion_device:chr_file rw_file_perms;
-
-#  Access for qseecom_memory
-allow vendor_biometricsface tee_device:chr_file rw_file_perms;
-
-#  Access for DSP/QDSP device
-allow vendor_biometricsface vendor_qdsp_device:chr_file rw_file_perms;
-allow vendor_biometricsface vendor_dsp_device:chr_file rw_file_perms;
-
-#  Access for sdcard
-userdebug_or_eng('
-allow vendor_biometricsface sdcard_type:dir rw_dir_perms;
-allow vendor_biometricsface sdcard_type:file create_file_perms;
-')
-
-#Access for graphics buffer
-hal_client_domain(vendor_biometricsface, hal_graphics_allocator);
-
-#  Access for /data/vendor/misc/face3d_dir
-allow vendor_biometricsface vendor_biometricsface_data_file:dir create_dir_perms;
-allow vendor_biometricsface vendor_biometricsface_data_file:file create_file_perms;
-
-# Allow to read persist.biometrics.face3d.producer,adsprpc prop
-get_prop(vendor_biometricsface, vendor_face3d_producer_prop);
-get_prop(vendor_biometricsface, vendor_adsprpc_prop);
-
-allow vendor_biometricsface fwk_camera_hwservice:hwservice_manager find;
-allow vendor_biometricsface hidl_token_hwservice:hwservice_manager find;
diff --git a/qva/vendor/kona/property.te b/qva/vendor/kona/property.te
deleted file mode 100644
index 69ce3dc..0000000
--- a/qva/vendor/kona/property.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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.
-
-#face3d
-type vendor_face3d_producer_prop, property_type;
diff --git a/qva/vendor/kona/property_contexts b/qva/vendor/kona/property_contexts
deleted file mode 100644
index 99d6bb3..0000000
--- a/qva/vendor/kona/property_contexts
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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.
-
-#face3d
-persist.vendor.biometricsface.pr u:object_r:vendor_face3d_producer_prop:s0
diff --git a/qva/vendor/kona/system_app.te b/qva/vendor/kona/system_app.te
deleted file mode 100644
index ee61f5d..0000000
--- a/qva/vendor/kona/system_app.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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.
-
-# allow system app to access faceauth
-hal_client_domain(system_app, hal_face)
diff --git a/qva/vendor/msmnile/file_contexts b/qva/vendor/msmnile/file_contexts
deleted file mode 100644
index c14aa03..0000000
--- a/qva/vendor/msmnile/file_contexts
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright (c) 2016-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.
-###################################
-# Dev nodes
-#
-/dev/spidev2.0                                                                             u:object_r:audio_device:s0
-
-/(vendor|system/vendor)/bin/hw/vendor.qti.hardware.automotive.vehicle@1.0-service          u:object_r:vendor_hal_automotive_vehicle_qti_exec:s0
-
-/(vendor|system/vendor)/bin/hw/vendor.qti.hardware.automotive.audiocontrol@1.0-service     u:object_r:vendor_hal_audiocontrol_qti_exec:s0
-# WLAN dynamic detect
-/(vendor|system/vendor)/bin/init\.qcom\.wlan\.sh                    u:object_r:vendor_init-qcom-wifi-sh_exec:s0
diff --git a/qva/vendor/msmnile/genfs_contexts b/qva/vendor/msmnile/genfs_contexts
deleted file mode 100644
index 9573de9..0000000
--- a/qva/vendor/msmnile/genfs_contexts
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (c) 2018, 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.
-
-genfscon sysfs /devices/platform/soc/18800000.qcom,icnss/net           u:object_r:sysfs_net:s0
-
-# spdaemon sysfs
-genfscon sysfs /devices/platform/soc/soc:qcom,spss_utils/firmware_name u:object_r:vendor_sysfs_spdaemon:s0
diff --git a/qva/vendor/msmnile/hal_audiocontrol_qti.te b/qva/vendor/msmnile/hal_audiocontrol_qti.te
deleted file mode 100644
index 7293e46..0000000
--- a/qva/vendor/msmnile/hal_audiocontrol_qti.te
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright (c) 2018-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.
-
-type vendor_hal_audiocontrol_qti, domain;
-hal_server_domain(vendor_hal_audiocontrol_qti, hal_audiocontrol)
-
-type vendor_hal_audiocontrol_qti_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_hal_audiocontrol_qti)
diff --git a/qva/vendor/msmnile/hal_automotive_vehicle_qti.te b/qva/vendor/msmnile/hal_automotive_vehicle_qti.te
deleted file mode 100644
index 0d263df..0000000
--- a/qva/vendor/msmnile/hal_automotive_vehicle_qti.te
+++ /dev/null
@@ -1,36 +0,0 @@
-# Copyright (c) 2017-2018, 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.
-
-type vendor_hal_automotive_vehicle_qti, domain;
-
-type vendor_hal_automotive_vehicle_qti_exec, exec_type, file_type, vendor_file_type;
-init_daemon_domain(vendor_hal_automotive_vehicle_qti)
-
-hal_server_domain(vendor_hal_automotive_vehicle_qti, hal_vehicle);
-
-allow vendor_hal_automotive_vehicle_qti self:can_socket create_socket_perms;
-allowxperm vendor_hal_automotive_vehicle_qti self:can_socket ioctl { unpriv_sock_ioctls priv_sock_ioctls };
diff --git a/qva/vendor/msmnile/init-qcom-wifi-sh.te b/qva/vendor/msmnile/init-qcom-wifi-sh.te
deleted file mode 100644
index d210198..0000000
--- a/qva/vendor/msmnile/init-qcom-wifi-sh.te
+++ /dev/null
@@ -1,38 +0,0 @@
-# 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.
-
-type vendor_init-qcom-wifi-sh, domain;
-type vendor_init-qcom-wifi-sh_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_init-qcom-wifi-sh)
-
-# WLAN dynamic detect
-# - allow exec lspci: access /sys/bus/pci/devices & /sys/devices/platform/soc
-# - set wlan prop
-allow vendor_init-qcom-wifi-sh vendor_toolbox_exec:file rx_file_perms;
-r_dir_file(vendor_init-qcom-wifi-sh, sysfs_type)
-set_prop(vendor_init-qcom-wifi-sh, vendor_qcom_wlan_prop);
diff --git a/qva/vendor/msmnile/property.te b/qva/vendor/msmnile/property.te
deleted file mode 100644
index bc718a4..0000000
--- a/qva/vendor/msmnile/property.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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.
-
-# WLAN dynamic detect
-type vendor_qcom_wlan_prop, property_type;
diff --git a/qva/vendor/msmnile/property_contexts b/qva/vendor/msmnile/property_contexts
deleted file mode 100644
index 36f627a..0000000
--- a/qva/vendor/msmnile/property_contexts
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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.
-
-# WLAN dynamic detect
-ro.vendor.wlan.chip        u:object_r:vendor_qcom_wlan_prop:s0
diff --git a/qva/vendor/msmnile/vendor_init.te b/qva/vendor/msmnile/vendor_init.te
deleted file mode 100644
index 99e1d75..0000000
--- a/qva/vendor/msmnile/vendor_init.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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.
-
-# WLAN dynamic detect
-get_prop(vendor_init, vendor_qcom_wlan_prop)
diff --git a/qva/vendor/msmsteppe/device.te b/qva/vendor/msmsteppe/device.te
deleted file mode 100644
index 28e7e54..0000000
--- a/qva/vendor/msmsteppe/device.te
+++ /dev/null
@@ -1,32 +0,0 @@
-# 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.
-
-#logdump partition
-type vendor_logdump_partition, dev_type;
-type vendor_mba_debug_dev, dev_type;
-type vendor_dip_device, dev_type;
-type vendor_rawdump_block_device, dev_type;
diff --git a/qva/vendor/msmsteppe/file.te b/qva/vendor/msmsteppe/file.te
deleted file mode 100644
index 4e2b1fd..0000000
--- a/qva/vendor/msmsteppe/file.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_sysfs_fps_attr, fs_type, sysfs_type;
diff --git a/qva/vendor/msmsteppe/file_contexts b/qva/vendor/msmsteppe/file_contexts
deleted file mode 100644
index c8c01f2..0000000
--- a/qva/vendor/msmsteppe/file_contexts
+++ /dev/null
@@ -1,172 +0,0 @@
-# Copyright (c) 2016-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.
-###################################
-# Dev block nodes
-
-#Primary storage device nodes
-/dev/block/mmcblk0rpmb                                                          u:object_r:vendor_rpmb_device:s0
-/dev/block/mmcblk0                                                              u:object_r:root_block_device:s0
-
-# UFS Devices
-/dev/block/platform/soc/1d84000.ufshc/by-name/system                            u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/metadata                            u:object_r:metadata_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/userdata                          u:object_r:userdata_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/boot                              u:object_r:boot_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/logdump                           u:object_r:vendor_logdump_partition:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/fsc                                u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/fsg                                u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modemst1                           u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modemst2                           u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/ssd                                u:object_r:vendor_ssd_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/misc                               u:object_r:misc_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/rpm                                u:object_r:vendor_rpmb_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/msadp                              u:object_r:vendor_mba_debug_dev:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/recovery                           u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cache                              u:object_r:cache_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/frp                                u:object_r:frp_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtp                               u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/dip                                u:object_r:vendor_dip_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/super                              u:object_r:super_block_device:s0
-
-#rawdump partition
-/dev/block/platform/soc/1d84000.ufshc/by-name/rawdump                            u:object_r:vendor_rawdump_block_device:s0
-
-# A/B partitions.
-/dev/block/platform/soc/1d84000.ufshc/by-name/abl_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/aop_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/apdp_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/bluetooth_[ab]    u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/boot_[ab]         u:object_r:boot_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cmnlib_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/cmnlib64_[ab]     u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/devcfg_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/dsp_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/dtbo_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/hyp_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/keymaster_[ab]    u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtp_[ab]         u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/mdtpsecapp_[ab]   u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/modem_[ab]        u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/msadp_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/persist           u:object_r:vendor_persist_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/pmic_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/qupfw_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/rpm_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/system_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/tz_[ab]           u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vbmeta_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vendor_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/xbl_[ab]          u:object_r:vendor_xbl_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/xbl_config_[ab]   u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/imagefv_[ab]      u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/uefisecapp_[ab]   u:object_r:vendor_uefi_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/vbmeta_system_[ab]    u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/1d84000.ufshc/by-name/recovery_[ab]         u:object_r:recovery_block_device:s0
-
-# Block device holding the GPT, where the A/B attributes are stored.
-/dev/block/platform/soc/1d84000.ufshc/sd[ade]                   u:object_r:vendor_gpt_block_device:s0
-
-# Block devices for the drive that holds the xbl_a and xbl_b partitions.
-/dev/block/platform/soc/1d84000.ufshc/sd[bc]                 u:object_r:vendor_xbl_block_device:s0
-
-##################################
-# non-hlos mount points
-/firmware                  u:object_r:firmware_file:s0
-/bt_firmware               u:object_r:bt_firmware_file:s0
-
-#for eMMC
-/dev/block/platform/soc/7c4000.sdhci/by-name/abl_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/apdp_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/boot_[ab]         u:object_r:boot_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/cmnlib_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/cmnlib64_[ab]     u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/devcfg_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/hyp_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/keymaster_[ab]    u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/modem_[ab]        u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/bluetooth_[ab]    u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/msadp_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/pmic_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/rpm_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/system_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/tz_[ab]           u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/vendor_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/xbl_[ab]          u:object_r:vendor_xbl_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/aop_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/vbmeta_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/dtbo_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/dsp_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/mdtp_[ab]         u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/mdtpsecapp_[ab]   u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/qupfw_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/xbl_config_[ab]   u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/storsec_[ab]      u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/imagefv_[ab]      u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/uefisecapp_[ab]   u:object_r:vendor_uefi_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/recovery_[ab]     u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/vbmeta_system_[ab]     u:object_r:vendor_custom_ab_block_device:s0
-
-#non A/B
-/dev/block/platform/soc/7c4000.sdhci/by-name/system                            u:object_r:system_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/metadata                            u:object_r:metadata_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/userdata                          u:object_r:userdata_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/boot                              u:object_r:boot_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/logdump                           u:object_r:vendor_logdump_partition:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/fsc                                u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/fsg                                u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/modemst1                           u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/modemst2                           u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/ssd                                u:object_r:vendor_ssd_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/misc                               u:object_r:misc_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/rpm                                u:object_r:vendor_rpmb_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/msadp                              u:object_r:vendor_mba_debug_dev:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/recovery                           u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/cache                              u:object_r:cache_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/frp                                u:object_r:frp_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/mdtp                               u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/dip                                u:object_r:vendor_dip_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/storsec                            u:object_r:boot_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/persist                            u:object_r:vendor_persist_block_device:s0
-/dev/block/platform/soc/7c4000.sdhci/by-name/super                              u:object_r:super_block_device:s0
-
-#rawdump partition
-/dev/block/platform/soc/7c4000.sdhci/by-name/rawdump                            u:object_r:vendor_rawdump_block_device:s0
-
-# FBE
-/(vendor|system/vendor)/bin/init.qti.qseecomd.sh                                u:object_r:vendor_init-qti-fbe-sh_exec:s0
-/(vendor|system/vendor)/bin/init\.qti\.can\.sh                                  u:object_r:vendor_qti_init_shell_exec:s0
-
-##################################
-# same process HAL libs
-/vendor/lib(64)?/hw/gralloc\.sm6150\.so   u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/hw/vulkan\.sm6150\.so    u:object_r:same_process_hal_file:s0
-
-#FPC
-/sys/devices/platform/soc/soc:fpc1020(/.*?) u:object_r:vendor_sysfs_fps_attr:s0
-/sys/devices/platform/soc/200f000.qcom,spmi/spmi-0/spmi0-03/200f000.qcom,spmi:qcom,pmi632@3:qcom,leds@d000/modalias u:object_r:vendor_sysfs_fps_attr:s0
-/(vendor|system/vendor)/bin/hw/android\.hardware\.biometrics\.fingerprint@2\.1-service-fpc u:object_r:vendor_hal_fingerprint_fpc_exec:s0
-
diff --git a/qva/vendor/msmsteppe/fingerprintd.te b/qva/vendor/msmsteppe/fingerprintd.te
deleted file mode 100644
index 678d00c..0000000
--- a/qva/vendor/msmsteppe/fingerprintd.te
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright (c) 2018, 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.
-
-allow hal_fingerprint input_device:dir r_dir_perms;
-allow hal_fingerprint vendor_sysfs_fps_attr:file rw_file_perms;
-allow hal_fingerprint uhid_device:chr_file rw_file_perms;
-r_dir_file(hal_fingerprint, firmware_file);
-r_dir_file(hal_fingerprint, sysfs_leds);
diff --git a/qva/vendor/msmsteppe/genfs_contexts b/qva/vendor/msmsteppe/genfs_contexts
deleted file mode 100755
index 0a7d3be..0000000
--- a/qva/vendor/msmsteppe/genfs_contexts
+++ /dev/null
@@ -1,105 +0,0 @@
-# Copyright (c) 2018, 2020, 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.
-###################################
-
-#pmic sysfs_nodes
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qcom,qpnp-smb5/power_supply/battery u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qcom,qpnp-smb5/power_supply/dc u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qcom,qpnp-smb5/power_supply/main u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qcom,qpnp-smb5/power_supply/pc_port u:object_r:vendor_sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qcom,qpnp-smb5/power_supply/usb u:object_r:vendor_sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qcom,usb-pdphy@1700/usbpd/usbpd0 u:object_r:vendor_sysfs_usbpd_device:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qpnp,qg/power_supply/bms u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-00/c440000.qcom,spmi:qcom,pm6150@0:qcom,pm6150_rtc/rtc u:object_r:sysfs_rtc:s0
-genfscon sysfs /devices/platform/soc/88c000.i2c/i2c-2/2-0008/88c000.i2c:qcom,smb1355@8:qcom,smb1355-charger@1000/power_supply/parallel u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/88c000.i2c/i2c-2/2-000c/88c000.i2c:qcom,smb1355@c:qcom,smb1355-charger@1000/power_supply/parallel u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/88c000.i2c/i2c-2/2-0010/88c000.i2c:qcom,smb1390@10:qcom,charge_pump/power_supply/charge_pump u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /class/qcom-battery u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /class/charge_pump u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/a8c000.i2c/i2c-2/2-000c/a8c000.i2c:qcom,smb1355@c:qcom,smb1355-charger@1000/power_supply/parallel u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/a8c000.i2c/i2c-2/2-0008/a8c000.i2c:qcom,smb1355@8:qcom,smb1355-charger@1000/power_supply/parallel u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/a8c000.i2c/i2c-2/2-0010/a8c000.i2c:qcom,smb1390@10:qcom,charge_pump/power_supply/charge_pump_master u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/a8c000.i2c/i2c-2/2-0010/a8c000.i2c:qcom,smb1390_slave@18:qcom,charge_pump_slave/power_supply/cp_slave u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/88c000.i2c/i2c-2/2-0010/88c000.i2c:qcom,smb1390@10:qcom,charge_pump/power_supply/charge_pump_master u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/88c000.i2c/i2c-2/2-0010/88c000.i2c:qcom,smb1390_slave@18:qcom,charge_pump_slave/power_supply/cp_slave u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-01/c440000.qcom,spmi:qcom,pm6150@1:qcom,vibrator@5300/leds/vibrator u:object_r:sysfs_leds:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm6150l@5:qcom,leds@d000/leds/red u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm6150l@5:qcom,leds@d000/leds/green u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm6150l@5:qcom,leds@d000/leds/blue u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm6150l@5:qcom,leds@d300/leds u:object_r:sysfs_leds:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm6150l@5:qcom,wled@d800/leds u:object_r:sysfs_leds:s0
-genfscon sysfs /devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-05/c440000.qcom,spmi:qcom,pm6150l@5:qcom,wled@d800/backlight u:object_r:sysfs_leds:s0
-
-# subsys  SSR entries
-genfscon sysfs /devices/platform/soc/62400000.qcom,lpass/subsys0/name         u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/4080000.qcom,mss/subsys1/name            u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/8300000.qcom,turing/subsys2/name         u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/aae0000.qcom,venus/subsys3/name          u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,ipa_fws/subsys4/name            u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-hyp/subsys5/name           u:object_r:vendor_sysfs_ssr:s0
-
-#diffrent target using same apps combo
-genfscon sysfs /devices/platform/soc/8300000.qcom,turing/subsys1/name         u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/4080000.qcom,mss/subsys2/name            u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/9800000.qcom,npu/subsys4/name            u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,ipa_fws/subsys5/name            u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-hyp/subsys6/name           u:object_r:vendor_sysfs_ssr:s0
-
-#entry for usb controller
-genfscon sysfs /devices/platform/soc/a600000.ssusb/a600000.dwc3/udc/a600000.dwc3 u:object_r:vendor_sysfs_usb_controller:s0
-
-#qdss sysfs-node
-genfscon sysfs /devices/platform/soc/6047000.tmc/coresight-tmc-etf u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/6048000.tmc/coresight-tmc-etr u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/6002000.stm/coresight-stm u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/91866f0.hwevent/coresight-hwevent u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/6b0e000.csr/coresight-swao-csr u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu-cpu-llcc-bw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu-llcc-ddr-bw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu0-cpu-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu6-cpu-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu0-cpu-llcc-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu6-cpu-llcc-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu0-llcc-ddr-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu6-llcc-ddr-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu0-cpu-ddr-latfloor/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu6-cpu-ddr-latfloor/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cdsp-cdsp-l3-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,npu-npu-ddr-bw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-#fps sysfs-node
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-0/measured_fps u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-1/measured_fps u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-2/measured_fps u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-0/fps_periodicity_ms u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-1/fps_periodicity_ms u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/ae00000.qcom,mdss_mdp/drm/card0/sde-crtc-2/fps_periodicity_ms u:object_r:vendor_sysfs_graphics:s0
-#subsys nodes
-genfscon sysfs /devices/platform/soc/soc:bt_qca6174/extldo u:object_r:sysfs_bluetooth_writable:s0
-genfscon sysfs /devices/platform/soc/soc:bt_qca6174/rfkill/rfkill0/state u:object_r:sysfs_bluetooth_writable:s0
-
-#net sysfs
-genfscon sysfs /devices/platform/soc/18800000.qcom,icnss/net u:object_r:sysfs_net:s0
diff --git a/qva/vendor/msmsteppe/hal_fingerprint_fpc.te b/qva/vendor/msmsteppe/hal_fingerprint_fpc.te
deleted file mode 100644
index 5076262..0000000
--- a/qva/vendor/msmsteppe/hal_fingerprint_fpc.te
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_hal_fingerprint_fpc, domain;
-hal_server_domain(vendor_hal_fingerprint_fpc, hal_fingerprint)
-
-type vendor_hal_fingerprint_fpc_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_hal_fingerprint_fpc)
-
-allow vendor_hal_fingerprint_fpc input_device:chr_file r_file_perms;
-allow vendor_hal_fingerprint_fpc tee_device:chr_file rw_file_perms;
diff --git a/qva/vendor/msmsteppe/hal_sensors.te b/qva/vendor/msmsteppe/hal_sensors.te
deleted file mode 100644
index e44c926..0000000
--- a/qva/vendor/msmsteppe/hal_sensors.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2018, 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.
-
-allow hal_sensors vendor_hal_fingerprint_fpc:unix_stream_socket { connectto };
diff --git a/qva/vendor/msmsteppe/hwservice_contexts b/qva/vendor/msmsteppe/hwservice_contexts
deleted file mode 100644
index 02931cf..0000000
--- a/qva/vendor/msmsteppe/hwservice_contexts
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright (c) 2018, 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.
-
-com.fingerprints.extension::IFingerprintEngineering u:object_r:hal_fingerprint_hwservice:s0
-com.fingerprints.extension::IFingerprintAuthenticator u:object_r:hal_fingerprint_hwservice:s0
-com.fingerprints.extension::IFingerprintNavigation u:object_r:hal_fingerprint_hwservice:s0
-com.fingerprints.extension::IFingerprintSensorTest u:object_r:hal_fingerprint_hwservice:s0
-com.fingerprints.extension::IFingerprintCalibration u:object_r:hal_fingerprint_hwservice:s0
diff --git a/qva/vendor/msmsteppe/init-qti-fbe-sh.te b/qva/vendor/msmsteppe/init-qti-fbe-sh.te
deleted file mode 100644
index ee17f17..0000000
--- a/qva/vendor/msmsteppe/init-qti-fbe-sh.te
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_init-qti-fbe-sh, domain;
-type vendor_init-qti-fbe-sh_exec, exec_type, file_type, vendor_file_type;
-
-init_daemon_domain(vendor_init-qti-fbe-sh)
-
-allow vendor_init-qti-fbe-sh vendor_shell_exec:file rx_file_perms;
-
-# execute toybox/toolbox
-allow vendor_init-qti-fbe-sh vendor_toolbox_exec:file rx_file_perms;
-get_prop(vendor_init-qti-fbe-sh, vendor_tee_listener_prop)
diff --git a/qva/vendor/msmsteppe/init_shell.te b/qva/vendor/msmsteppe/init_shell.te
deleted file mode 100644
index 6359723..0000000
--- a/qva/vendor/msmsteppe/init_shell.te
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright (c) 2017-2018, 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.
-
-# media_sm6150_version_prop - to choose target version specific media_codecs.xml
-# media_sdmmagpie_version_prop - to choose target version specific media_codecs.xml
-allow vendor_qti_init_shell {
-    vendor_media_sm6150_version_prop
-    vendor_media_sdmmagpie_version_prop
-    vendor_chre_enabled_prop
-}:property_service set;
diff --git a/qva/vendor/msmsteppe/mediacodec.te b/qva/vendor/msmsteppe/mediacodec.te
deleted file mode 100644
index 7bc6590..0000000
--- a/qva/vendor/msmsteppe/mediacodec.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2018, 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.
-
-get_prop(mediacodec, vendor_media_sm6150_version_prop)
-get_prop(mediacodec, vendor_media_sdmmagpie_version_prop)
diff --git a/qva/vendor/msmsteppe/mediaserver.te b/qva/vendor/msmsteppe/mediaserver.te
deleted file mode 100644
index edc4afb..0000000
--- a/qva/vendor/msmsteppe/mediaserver.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2018, 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.
-
-get_prop(mediaserver, vendor_media_sm6150_version_prop)
-get_prop(mediaserver, vendor_media_sdmmagpie_version_prop)
diff --git a/qva/vendor/msmsteppe/property.te b/qva/vendor/msmsteppe/property.te
deleted file mode 100644
index 9735e33..0000000
--- a/qva/vendor/msmsteppe/property.te
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (c) 2018, 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.
-
-#properites for init.qcom.sh script
-type vendor_media_sm6150_version_prop, property_type;
-type vendor_media_sdmmagpie_version_prop, property_type;
-type vendor_chre_enabled_prop, property_type;
diff --git a/qva/vendor/msmsteppe/property_contexts b/qva/vendor/msmsteppe/property_contexts
deleted file mode 100644
index 4048c7f..0000000
--- a/qva/vendor/msmsteppe/property_contexts
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (c) 2018, 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.
-
-vendor.media.sm6150.version      u:object_r:vendor_media_sm6150_version_prop:s0
-vendor.media.sdmmagpie.version      u:object_r:vendor_media_sdmmagpie_version_prop:s0
-vendor.chre.enabled              u:object_r:vendor_chre_enabled_prop:s0
diff --git a/qva/vendor/msmsteppe/recovery.te b/qva/vendor/msmsteppe/recovery.te
deleted file mode 100644
index ef6099f..0000000
--- a/qva/vendor/msmsteppe/recovery.te
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright (c) 2018, 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.
-
-recovery_only(`
-    domain_auto_trans(recovery, vendor_qrtr_exec, vendor_qrtr)
-    domain_auto_trans(recovery, vendor_rfs_access_exec, vendor_rfs_access)
-    domain_auto_trans(recovery, vendor_rmt_storage_exec, vendor_rmt_storage)
-')
diff --git a/qva/vendor/ssg/keys.conf b/qva/vendor/ssg/keys.conf
deleted file mode 100644
index 66c0da4..0000000
--- a/qva/vendor/ssg/keys.conf
+++ /dev/null
@@ -1,2 +0,0 @@
-[@SSG]
-ALL : device/qcom/sepolicy/qva/vendor/ssg/ssg_app_cert.x509.pem
diff --git a/qva/vendor/ssg/mac_permissions.xml b/qva/vendor/ssg/mac_permissions.xml
deleted file mode 100644
index e39e397..0000000
--- a/qva/vendor/ssg/mac_permissions.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<policy>
-
-<!--
-See /system/sepolicy/private/mac_permissions.xml
--->
-
-    <signer signature="@SSG" >
-      <seinfo value="ssgapp" />
-    </signer>
-
-</policy>
diff --git a/qva/vendor/ssg/seapp_contexts b/qva/vendor/ssg/seapp_contexts
deleted file mode 100644
index 145838a..0000000
--- a/qva/vendor/ssg/seapp_contexts
+++ /dev/null
@@ -1,4 +0,0 @@
-# SSG apps for Connection Security
-user=_app seinfo=ssgapp domain=vendor_ssg_app name=com.qualcomm.qti.qms.service.connectionsecurity type=app_data_file levelFrom=all
-user=_app seinfo=ssgapp domain=vendor_ssg_app name=com.qualcomm.qti.qms.service.telemetry type=app_data_file levelFrom=all
-user=_app seinfo=ssgapp domain=vendor_ssg_app name=com.qualcomm.qti.qms.service.trustzoneaccess type=app_data_file levelFrom=all
diff --git a/qva/vendor/ssg/ssg_app.te b/qva/vendor/ssg/ssg_app.te
deleted file mode 100644
index df36c50..0000000
--- a/qva/vendor/ssg/ssg_app.te
+++ /dev/null
@@ -1,60 +0,0 @@
-# Copyright (c) 2017, 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.
-
-## vendor_ssg_app
-##
-## This file defines the permissions that vendor_ssg_apps can carry
-
-type vendor_ssg_app, domain;
-
-app_domain(vendor_ssg_app)
-net_domain(vendor_ssg_app)
-
-hal_client_domain(vendor_ssg_app, vendor_qccsyshal);
-
-# Allow access to sockets
-unix_socket_connect(vendor_ssg_app, vendor_mlid, vendor_mlid)
-unix_socket_connect(vendor_ssg_app, vendor_ssgqmig, vendor_ssgqmigd)
-unix_socket_connect(vendor_ssg_app, vendor_ssgtzd, vendor_ssgtzd)
-
-allow vendor_ssg_app radio_service:service_manager find;
-allow vendor_ssg_app surfaceflinger_service:service_manager find;
-allow vendor_ssg_app app_api_service:service_manager find;
-
-# access to qipcrtr socket (allow creating needed by qmi_cci_xprt_qrtr_supported)
-allow vendor_ssg_app self:qipcrtr_socket create_socket_perms_no_ioctl;
-
-# To get uuid and device info
-allow vendor_ssg_app proc_cpuinfo:file r_file_perms;
-allow vendor_ssg_app proc_meminfo:file r_file_perms;
-
-unix_socket_connect(vendor_ssg_app,vendor_dpmtcm, vendor_dpmd);
-
-r_dir_file(vendor_ssg_app, proc)
-
-# Fix the permission error for lib resource link.
-allow vendor_ssg_app app_data_file:lnk_file read;
diff --git a/qva/vendor/ssg/ssg_app_cert.x509.pem b/qva/vendor/ssg/ssg_app_cert.x509.pem
deleted file mode 100644
index 70ad39f..0000000
--- a/qva/vendor/ssg/ssg_app_cert.x509.pem
+++ /dev/null
@@ -1,22 +0,0 @@
------BEGIN CERTIFICATE-----
-MIIDpzCCAo+gAwIBAgIELmaGwzANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC
-VVMxEDAOBgNVBAgTB1Vua25vd24xEDAOBgNVBAcTB1Vua25vd24xJDAiBgNVBAoT
-G1F1YWxjb21tIFRlY2hub2xvZ2llcywgSW5jLjEMMAoGA1UECxMDU1NHMRwwGgYD
-VQQDExNTU0cgUHJpdmlsZWdlZCBBcHBzMB4XDTE3MDYxOTIxMDAxNloXDTQ0MTEw
-NDIxMDAxNlowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdVbmtub3duMRAwDgYD
-VQQHEwdVbmtub3duMSQwIgYDVQQKExtRdWFsY29tbSBUZWNobm9sb2dpZXMsIElu
-Yy4xDDAKBgNVBAsTA1NTRzEcMBoGA1UEAxMTU1NHIFByaXZpbGVnZWQgQXBwczCC
-ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKwaT66u+2CUj44EYbOTeKFy
-7EAmj35UI02ifnJZg+voMHGrp4OII411Gwtx15oPt+Dg7kymqu8urcqDnIS1sEGZ
-TCsgqFnVqvGWk0aLG4PwaKmLo5kU365xIWmVHv/eH4Zu7OW2dvfVkirzc/p6pNS4
-mUbKr52do66B/BWyGOQ6ocxkMap54i+JJsPFl4ejIoAb4VuQKsDzCrgWFJoLwbAJ
-TMvwVjer3KIEsoD3rlftfmWJA8u2OcwhR9L0Z8gTVWdIUEj+BPo3hpA8lNg4OKGb
-F5Nez/MDvagp3TAYk6E+ake+/uWiPPdoZLpu0WvZU0mLIwj+FOAayHk+GfQSQKsC
-AwEAAaMhMB8wHQYDVR0OBBYEFFac8wwmHfDY9GZoPKgY7bzzZApSMA0GCSqGSIb3
-DQEBCwUAA4IBAQA7BZpaBmj5WCTbNCYlZmIWONui89XVjxGmD/43ipFLaXuvG6PV
-8WDIt0kkZTnAi1e7NE1yk7MnQSa37gXf5eYWM7rMxX90gae+/P5P8RT8Gp4OhZT7
-ITNpWKYZEIumxvnHcK/nAWAPgInzBDkNksUawc3ACU0kgoOiJiXfXWuHgjnwWDdA
-YS/MjlXyIju8x+1PkzyXbE2PNOuaQdlaZWXtzsdKVfxk4RK9Um3+9i1Xr6yPNIqR
-suBjThaMw740u4wg2oOZITY6b7RBfn9nxYu8zHzmIWE2xiLB6Rg2c5a3fKiOWXiL
-xhSlrs1uuE+54290ZDtOpCRA0M411ClkyjLU
------END CERTIFICATE-----
diff --git a/qva/vendor/test/dualsta_app.te b/qva/vendor/test/dualsta_app.te
deleted file mode 100644
index f88001b..0000000
--- a/qva/vendor/test/dualsta_app.te
+++ /dev/null
@@ -1,47 +0,0 @@
-# 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.
-
-type vendor_dualsta_app, domain;
-app_domain(vendor_dualsta_app)
-
-userdebug_or_eng(`
-  binder_call(vendor_cnd, vendor_dualsta_app)
-  binder_call(vendor_dualsta_app, vendor_cnd)
-  allow vendor_dualsta_app vendor_hal_datafactory_hwservice:hwservice_manager find;
-  allow vendor_dualsta_app activity_service:service_manager find;
-  allow vendor_dualsta_app activity_task_service:service_manager find;
-  allow vendor_dualsta_app audio_service:service_manager find;
-  allow vendor_dualsta_app autofill_service:service_manager find;
-  allow vendor_dualsta_app cgroup:file write;
-  allow vendor_dualsta_app gpu_service:service_manager find;
-  allow vendor_dualsta_app gpuservice:binder call;
-  allow vendor_dualsta_app surfaceflinger_service:service_manager find;
-  allow vendor_dualsta_app system_app_data_file:dir { add_name getattr remove_name search write };
-  allow vendor_dualsta_app system_app_data_file:file { create getattr map open read setattr unlink write };
-  allow vendor_dualsta_app textservices_service:service_manager find;
-')
-
diff --git a/qva/vendor/test/dumpstate.te b/qva/vendor/test/dumpstate.te
deleted file mode 100644
index d75bc70..0000000
--- a/qva/vendor/test/dumpstate.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# 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.
-
-allow dumpstate vendor_binder_state:file r_file_perms;
diff --git a/qva/vendor/test/file.te b/qva/vendor/test/file.te
deleted file mode 100644
index 09484a2..0000000
--- a/qva/vendor/test/file.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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.
-
-# /sys/kernel/debug/binder/state file
-type vendor_binder_state, file_type, debugfs_type;
diff --git a/qva/vendor/test/file_contexts b/qva/vendor/test/file_contexts
deleted file mode 100644
index f1ff024..0000000
--- a/qva/vendor/test/file_contexts
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright (c) 2019-2020, 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.
-
-# for system_server to access /sys/kernel/debug/binder/state
-/sys/kernel/debug/binder/state                                      u:object_r:vendor_binder_state:s0
-/vendor/bin/Loopback_native 	                                    u:object_r:vendor_qtiloopback_native_exec:s0
-/vendor/bin/qttestservice                                           u:object_r:vendor_qttestservice_exec:s0
-/vendor/bin/init.fda.script.sh                                      u:object_r:vendor-qti-testscripts_exec:s0
-/vendor/bin/init.fda.am.sh                                          u:object_r:vendor-qti-testscripts_exec:s0
-/(vendor|system/vendor)/bin/hw/vendor\.qti\.hardware\.debugutils@1\.0-service        u:object_r:vendor_hal_debugutils_default_exec:s0
-
-#wifimyftm daemon
-/(vendor|system/vendor)/bin/wifimyftm    u:object_r:vendor_wifimyftmsvc_exec:s0
diff --git a/qva/vendor/test/hal_debugutils_default.te b/qva/vendor/test/hal_debugutils_default.te
deleted file mode 100644
index d9acc9f..0000000
--- a/qva/vendor/test/hal_debugutils_default.te
+++ /dev/null
@@ -1,37 +0,0 @@
-# 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 vendor_hal_debugutils_default, domain;
-type vendor_hal_debugutils_default_exec, exec_type, vendor_file_type, file_type;
-hal_server_domain(vendor_hal_debugutils_default, vendor_hal_debugutils)
-init_daemon_domain(vendor_hal_debugutils_default)
-
-permissive vendor_hal_debugutils_default;
-binder_call(vendor_hal_debugutils_server, vendor_hal_debugutils_client);
-binder_call(vendor_hal_debugutils_client, vendor_hal_debugutils_server);
-hal_attribute_hwservice(vendor_hal_debugutils,hal_debugutils_hwservice);
diff --git a/qva/vendor/test/hwservice.te b/qva/vendor/test/hwservice.te
deleted file mode 100644
index dca76e5..0000000
--- a/qva/vendor/test/hwservice.te
+++ /dev/null
@@ -1,31 +0,0 @@
-
-# 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.
-
-type vendor_qtiloopback_hwservice , hwservice_manager_type, protected_hwservice;
-type hal_debugutils_hwservice, hwservice_manager_type;
-type vendor_hal_wifimyftm_hwservice, hwservice_manager_type, protected_hwservice;
diff --git a/qva/vendor/test/hwservice_contexts b/qva/vendor/test/hwservice_contexts
deleted file mode 100644
index c5f1d93..0000000
--- a/qva/vendor/test/hwservice_contexts
+++ /dev/null
@@ -1,30 +0,0 @@
-# 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.
-
-com.qualcomm.qti.loopbackhal::Iloopback                      u:object_r:vendor_qtiloopback_hwservice:s0
-vendor.qti.hardware.servicetracker::IDebugUtils              u:object_r:hal_debugutils_hwservice:s0
-vendor.qti.hardware.wifi.myftmhal::IWifiMyFtm                u:object_r:vendor_hal_wifimyftm_hwservice:s0
diff --git a/qva/vendor/test/init.te b/qva/vendor/test/init.te
deleted file mode 100644
index ac13c43..0000000
--- a/qva/vendor/test/init.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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.
-
-allow init vendor_binder_state:file r_file_perms;
-
diff --git a/qva/vendor/test/location_app_test.te b/qva/vendor/test/location_app_test.te
deleted file mode 100644
index 470b6d1..0000000
--- a/qva/vendor/test/location_app_test.te
+++ /dev/null
@@ -1,67 +0,0 @@
-# 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.
-
-# qva/private/location_app_test.te - sepolicy rules for qti value added
-# location apps (internal) that will be part of system image. eg: ODLT, Qlogcat
-
-type vendor_location_app_test, domain;
-app_domain(vendor_location_app_test)
-
-userdebug_or_eng(`
-    binder_use(vendor_location_app_test)
-    # allow vendor_location_app_test to access perf hal
-    hal_client_domain(vendor_location_app_test, vendor_hal_perf)
-    hal_client_domain(vendor_location_app_test, hal_gnss)
-
-    allow vendor_location_app_test { adbd su }:unix_stream_socket connectto;
-
-    allow vendor_location_app_test app_api_service:service_manager find;
-    allow vendor_location_app_test mediametrics_service:service_manager find;
-
-    allow vendor_location_app_test cgroup:file rw_file_perms;
-
-    allow vendor_location_app_test anr_data_file:dir rw_dir_perms;
-    allow vendor_location_app_test anr_data_file:file rw_file_perms;
-
-    unix_socket_send(vendor_location_app_test, vendor_seempdw, vendor_seempd);
-    #loc api access from ODLT
-    allow vendor_location_app_test self:qipcrtr_socket create_socket_perms_no_ioctl;
-
-    allow vendor_location_app_test audioserver_service:service_manager find;
-
-    allow vendor_location_app_test vendor_sysfs_kgsl:file r_file_perms;
-
-    binder_call(vendor_location_app_test, gpuservice);
-
-    allow vendor_location_app_test vendor_sysfs_kgsl_gpu_model:file r_file_perms;
-
-    hal_client_domain(vendor_location_app_test, vendor_hal_qspmhal);
-
-    hal_client_domain(vendor_location_app_test, vendor_hal_diaghal);
-
-    dontaudit vendor_location_app_test vendor_hal_qspmhal_default:binder {call};
-')
diff --git a/qva/vendor/test/mst_test_app/mst_test_app.te b/qva/vendor/test/mst_test_app/mst_test_app.te
deleted file mode 100644
index 4d59ec7..0000000
--- a/qva/vendor/test/mst_test_app/mst_test_app.te
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright (c) 2020, 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.
-
-type mst_test_app, domain;
-
-userdebug_or_eng(`
-  typeattribute mst_test_app coredomain;
-  permissive mst_test_app;
-  app_domain(mst_test_app);
-
-#Inherit base network permissions from netd
-  net_domain(mst_test_app);
-')
\ No newline at end of file
diff --git a/qva/vendor/test/mst_test_app/seapp_contexts b/qva/vendor/test/mst_test_app/seapp_contexts
deleted file mode 100644
index f81abea..0000000
--- a/qva/vendor/test/mst_test_app/seapp_contexts
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright (c) 2020, 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.
-
-user=system seinfo=platform name=com.qualcomm.dsdstesterapp domain=mst_test_app type=system_app_data_file
-
-user=system seinfo=platform name=com.qualcomm.qti.dsdslogger domain=mst_test_app type=system_app_data_file
-
-user=system seinfo=platform name=com.qualcomm.scriptmanager domain=mst_test_app type=system_app_data_file
-
-user=system seinfo=platform name=com.qualcomm.testhelper domain=mst_test_app type=system_app_data_file
-
-user=system seinfo=platform name=com.qualcomm.fst.CrashMonitor domain=mst_test_app type=system_app_data_file
-
-user=system seinfo=platform name=com.qualcomm.fst.STE domain=mst_test_app type=system_app_data_file
-
-user=system seinfo=platform name=com.qualcomm.fst.executor domain=mst_test_app type=system_app_data_file
-
-user=system seinfo=platform name=com.qualcomm.fst.sniffer domain=mst_test_app type=system_app_data_file
\ No newline at end of file
diff --git a/qva/vendor/test/property.te b/qva/vendor/test/property.te
deleted file mode 100644
index 95d0a1d..0000000
--- a/qva/vendor/test/property.te
+++ /dev/null
@@ -1,32 +0,0 @@
-
-# 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.
-
-#qspm hal debug
-vendor_restricted_prop(vendor_qspm_dbg_prop);
-vendor_restricted_prop(vendor_dbg_brkpoint_prop);
-vendor_restricted_prop(vendor_fda_prop);
diff --git a/qva/vendor/test/property_contexts b/qva/vendor/test/property_contexts
deleted file mode 100644
index b3fe975..0000000
--- a/qva/vendor/test/property_contexts
+++ /dev/null
@@ -1,32 +0,0 @@
-
-# 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.
-
-#qspm debug prop
-vendor.debug.qspm u:object_r:vendor_qspm_dbg_prop:s0
-vendor.debug.breakpoint.continue  u:object_r:vendor_dbg_brkpoint_prop:s0
-vendor.fda.property.            u:object_r:vendor_fda_prop:s0
diff --git a/qva/vendor/test/qtiloopback_app.te b/qva/vendor/test/qtiloopback_app.te
deleted file mode 100644
index 33cf302..0000000
--- a/qva/vendor/test/qtiloopback_app.te
+++ /dev/null
@@ -1,38 +0,0 @@
-# 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.
-
-type vendor_qtiloopback_app, domain;
-app_domain(vendor_qtiloopback_app)
-userdebug_or_eng(`
-hal_client_domain(vendor_qtiloopback_app,vendor_qtiloopback)
-
-allow vendor_qtiloopback_app activity_service:service_manager find;
-allow vendor_qtiloopback_app cgroup:file rw_file_perms;
-allow vendor_qtiloopback_app system_app_data_file:dir r_dir_perms;
-allow vendor_qtiloopback_app app_api_service:service_manager find;
-
-')
diff --git a/qva/vendor/test/qtiloopback_native.te b/qva/vendor/test/qtiloopback_native.te
deleted file mode 100644
index 010234c..0000000
--- a/qva/vendor/test/qtiloopback_native.te
+++ /dev/null
@@ -1,53 +0,0 @@
-
-# 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.
-
-type vendor_qtiloopback_native, domain;
-type vendor_qtiloopback_native_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_qtiloopback_native)
-vndbinder_use(vendor_qtiloopback)
-userdebug_or_eng(`
-
-hal_server_domain_bypass(vendor_qtiloopback_native,vendor_qtiloopback)
-binder_call(vendor_qtiloopback_client,vendor_qtiloopback_server)
-binder_call(vendor_qtiloopback_server,vendor_qtiloopback_client)
-hal_attribute_hwservice(vendor_qtiloopback, vendor_qtiloopback_hwservice)
-
-netmgr_socket(vendor_qtiloopback_native)
-allow vendor_qtiloopback_native self:{
-    # Allow receiving NETLINK responses from WLAN driver.
-    netlink_socket
-    netlink_generic_socket
-    qipcrtr_socket
-    netlink_route_socket
-} create_socket_perms_no_ioctl;
-
-allow vendor_qtiloopback_native vendor_sysfs_diag:dir search;
-allow vendor_qtiloopback_native self:netlink_route_socket nlmsg_read;
-allow vendor_qtiloopback_native self:udp_socket { create ioctl };
-
-')
diff --git a/qva/vendor/test/qttestservice.te b/qva/vendor/test/qttestservice.te
deleted file mode 100644
index 442d5e9..0000000
--- a/qva/vendor/test/qttestservice.te
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright (c) 2020, 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 vendor_qttestservice, domain;
-type vendor_qttestservice_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_qttestservice)
-
-#Allow to use Vendor Binder IPC
-vndbinder_use(vendor_qttestservice)
-
-#Allow to host qttestservice
-add_service(vendor_qttestservice, vendor_qutestservice_service)
-
-#allow load firmware
-r_dir_file(vendor_qttestservice, firmware_file)
-
diff --git a/qva/vendor/test/seapp_contexts b/qva/vendor/test/seapp_contexts
deleted file mode 100644
index 6ee503d..0000000
--- a/qva/vendor/test/seapp_contexts
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright (c) 2019-2020, 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.
-
-# Add new domain for location test apps
-user=_app seinfo=platform name=com.qualcomm.qct.dlt levelfrom=all domain=vendor_location_app_test type=app_data_file
-user=_app seinfo=platform name=com.qualcomm.qti.qlogcat levelfrom=all domain=vendor_location_app_test type=app_data_file
-user=system seinfo=platform name=.loopbackservice domain=vendor_qtiloopback_app type=system_app_data_file
-user=system seinfo=platform name=qcom.cta.cta_ui domain=vendor_cta_app type=system_app_data_file
-user=system seinfo=platform name=com.qualcomm.qti.logkit.lite domain=vendor_logkit_app type=system_app_data_file
-user=_app seinfo=platform domain=vendor_pdt_app name=com.quicinc.framework.debugapp levelfrom=all type=app_data_file
-user=_app seinfo=platform name=com.qualcomm.qti.dualstaapp domain=vendor_dualsta_app type=app_data_file levelFrom=all
-user=_app seinfo=platform name=com.qualcomm.qti.cam2test domain=vendor_sys_seccam2_app type=app_data_file levelFrom=all
-user=system seinfo=platform name=com.qualcomm.wrd.ue.kpitool.base domain=vendor_cta_app type=system_app_data_file
diff --git a/qva/vendor/test/seccam2_app.te b/qva/vendor/test/seccam2_app.te
deleted file mode 100644
index 81bbe49..0000000
--- a/qva/vendor/test/seccam2_app.te
+++ /dev/null
@@ -1,42 +0,0 @@
-# Copyright (c) 2020, 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.
-
-type vendor_sys_seccam2_app, domain;
-app_domain(vendor_sys_seccam2_app)
-net_domain(vendor_sys_seccam2_app)
-
-hal_client_domain(vendor_sys_seccam2_app, vendor_hal_secureprocessor);
-hal_client_domain(vendor_sys_seccam2_app, vendor_hal_perf);
-hal_client_domain(vendor_sys_seccam2_app, vendor_hal_qspmhal);
-
-allow vendor_sys_seccam2_app app_data_file:dir create_dir_perms;
-allow vendor_sys_seccam2_app app_data_file:file create_file_perms;
-allow vendor_sys_seccam2_app { app_api_service } :service_manager find;
-allow vendor_sys_seccam2_app cameraserver_service:service_manager find;
-
-binder_call(vendor_sys_seccam2_app, gpuservice);
-get_prop(vendor_sys_seccam2_app, vendor_persist_camera_prop)
diff --git a/qva/vendor/test/sysmonapp/keys.conf b/qva/vendor/test/sysmonapp/keys.conf
deleted file mode 100644
index 4626aff..0000000
--- a/qva/vendor/test/sysmonapp/keys.conf
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2018, 2020, 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.
-[@SYSMONAPP]
-ALL : device/qcom/sepolicy_vndr/qva/vendor/test/sysmonapp/sysmonapp_app_cert.x509.pem
diff --git a/qva/vendor/test/sysmonapp/mac_permissions.xml b/qva/vendor/test/sysmonapp/mac_permissions.xml
deleted file mode 100644
index 6f511ed..0000000
--- a/qva/vendor/test/sysmonapp/mac_permissions.xml
+++ /dev/null
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<!--
-Copyright (c) 2018, 2020, 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.
--->
-
-<policy>
-    <signer signature="@SYSMONAPP" >
-      <seinfo value="sysmonapp" />
-    </signer>
-</policy>
diff --git a/qva/vendor/test/sysmonapp/seapp_contexts b/qva/vendor/test/sysmonapp/seapp_contexts
deleted file mode 100644
index 9c41bc7..0000000
--- a/qva/vendor/test/sysmonapp/seapp_contexts
+++ /dev/null
@@ -1,31 +0,0 @@
-# Copyright (c) 2018, 2020, 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.
-
-# sysmonapp applications
-user=_app seinfo=sysmonapp domain=vendor_sysmonapp_app_test name=com.qualcomm.sysmonappInternal type=app_data_file levelFrom=all
-user=_app seinfo=platform domain=vendor_sysmonapp_app_test name=com.qualcomm.sysmonappInternal type=app_data_file levelFrom=all
-user=_app seinfo=platform domain=vendor_sysmonapp_app_test name=com.qualcomm.qti.sysmonappExternal type=app_data_file levelFrom=all
diff --git a/qva/vendor/test/sysmonapp/sysmonapp_app_cert.x509.pem b/qva/vendor/test/sysmonapp/sysmonapp_app_cert.x509.pem
deleted file mode 100644
index 0dc0867..0000000
--- a/qva/vendor/test/sysmonapp/sysmonapp_app_cert.x509.pem
+++ /dev/null
@@ -1,24 +0,0 @@
------BEGIN CERTIFICATE-----
-MIID+zCCAuOgAwIBAgIJAI6ZXMpc0lvVMA0GCSqGSIb3DQEBCwUAMIGUMQswCQYD
-VQQGEwJJTjESMBAGA1UECAwJVGVsYW5nYW5hMRIwEAYDVQQHDAlIeWRlcmFiYWQx
-FjAUBgNVBAoMDVF1YWxjb21tLEluYy4xDDAKBgNVBAsMA1FDVDEPMA0GA1UEAwwG
-c2dhbmRlMSYwJAYJKoZIhvcNAQkBFhdzZ2FuZGVAcXRpLnF1YWxjb21tLmNvbTAe
-Fw0xODA2MTgwNTM0MTVaFw00NTExMDMwNTM0MTVaMIGUMQswCQYDVQQGEwJJTjES
-MBAGA1UECAwJVGVsYW5nYW5hMRIwEAYDVQQHDAlIeWRlcmFiYWQxFjAUBgNVBAoM
-DVF1YWxjb21tLEluYy4xDDAKBgNVBAsMA1FDVDEPMA0GA1UEAwwGc2dhbmRlMSYw
-JAYJKoZIhvcNAQkBFhdzZ2FuZGVAcXRpLnF1YWxjb21tLmNvbTCCASAwDQYJKoZI
-hvcNAQEBBQADggENADCCAQgCggEBAJf2rCxstFL2XNWAfKOfDYDkIBXDR5hIQgki
-TlO3gOt7HuQ2VJXwiE7u9DxuBo2Z/bjqA0jsTyoVPUv4L0ZzV5sJHTyNmGtZbE8Y
-1HaXopIWTTM3rACZc/flhDUilEwLwhwSnaPLb+ZfBAziJfB4zlVFTqtW9ppyHTuK
-LtyZ/T3d0IbpKsQveuUrRi2C7D+DLw4ma8jLxZxB74SIrJDHAwO2fBfVYdr1zomV
-2Xw3yByP9LtH1iZn0mazK2iwLc0jwMA0MkP9vXy0AgU/K05fK2NGA1ohYGE+VylP
-2/xdOoTGYG9o+rQ4E4aRHLhUm0rrYJ+gMr5dNfAYKrYkNhYAFQ8CAQOjUDBOMB0G
-A1UdDgQWBBTmhWIosfZ4boEKTQfYpXyEEKWJczAfBgNVHSMEGDAWgBTmhWIosfZ4
-boEKTQfYpXyEEKWJczAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQA5
-60hYg8NV88l1vIJm67f2ZNOdRRcdN9cfRZcvQJ+5b6Fi5y3OWrAZZUoq809GwVzM
-BLD39kW7FeD7SGoXEn0aEiNPW7Ow0wEyNIKcnbL1BSCqNbuFpoDuTm8WA81NG3jV
-I3seJtbJBlOH800udMsuq1HlR2Bf0gG7CrCqSAoWupu6wFT9bvjRH92xd/nx9f5H
-vKdLHuCavy9woAp+pAZG06QYQ3r5xghUrSFzeBwRZyCvEdoPNMKRnAsLSPDVNPKh
-mrvpzBOuFpFrMikMTniOua0O7u1Mozb9JUCVJ3gKg6XDjkOggUZz4YOnjZTYCt+U
-M4A7lXTNwu+o0hww8cEB
------END CERTIFICATE-----
diff --git a/qva/vendor/test/sysmonapp/sysmonapp_app_test.te b/qva/vendor/test/sysmonapp/sysmonapp_app_test.te
deleted file mode 100644
index 44bc2a6..0000000
--- a/qva/vendor/test/sysmonapp/sysmonapp_app_test.te
+++ /dev/null
@@ -1,43 +0,0 @@
-# Copyright (c) 2018, 2020, 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.
-
-## vendor_sysmonapp_app_test
-## This file defines permissions that vendor_sysmonapp_app_test can carry
-
-type vendor_sysmonapp_app_test, domain;
-app_domain(vendor_sysmonapp_app_test);
-
-# For service manager access
-allow vendor_sysmonapp_app_test app_api_service:service_manager find;
-
-# For access to camera and media
-allow vendor_sysmonapp_app_test cameraserver_service:service_manager find;
-allow vendor_sysmonapp_app_test mediaserver_service:service_manager find;
-
-# To access FastRPC devices
-allow vendor_sysmonapp_app_test vendor_qdsp_device:chr_file r_file_perms;
-allow vendor_sysmonapp_app_test vendor_xdsp_device:chr_file r_file_perms;
diff --git a/qva/vendor/test/system_server.te b/qva/vendor/test/system_server.te
deleted file mode 100644
index b97002a..0000000
--- a/qva/vendor/test/system_server.te
+++ /dev/null
@@ -1,36 +0,0 @@
-# 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.
-
-# This domain is for ftm mode hal service and  always will be in
-# userdebug_or_eng macro
-
-userdebug_or_eng(`
-allow system_server vendor_binder_state:file r_file_perms;
-
-# allow system_server to access IMyFtm HAL service
-hal_client_domain(system_server, vendor_hal_wifimyftm);
-')
diff --git a/qva/vendor/test/vendor_cta_app.te b/qva/vendor/test/vendor_cta_app.te
deleted file mode 100644
index 63223fb..0000000
--- a/qva/vendor/test/vendor_cta_app.te
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2020, 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.
-
-# This domain is for pdt apps and should always be in
-# userdebug_or_eng macro
-
-userdebug_or_eng(`
-type vendor_cta_app, domain;
-app_domain(vendor_cta_app);
-permissive vendor_cta_app;
-')
diff --git a/qva/vendor/test/vendor_init.te b/qva/vendor/test/vendor_init.te
deleted file mode 100644
index 395c512..0000000
--- a/qva/vendor/test/vendor_init.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# 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.
-
-allow vendor_init vendor_binder_state:file r_file_perms;
-
diff --git a/qva/vendor/test/vendor_logkit_app.te b/qva/vendor/test/vendor_logkit_app.te
deleted file mode 100644
index 5b3d62d..0000000
--- a/qva/vendor/test/vendor_logkit_app.te
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2020, 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.
-
-# This domain is for pdt apps and should always be in
-# userdebug_or_eng macro
-
-userdebug_or_eng(`
-type vendor_logkit_app, domain;
-app_domain(vendor_logkit_app);
-permissive vendor_logkit_app;
-')
diff --git a/qva/vendor/test/vndservice.te b/qva/vendor/test/vndservice.te
deleted file mode 100644
index 283d858..0000000
--- a/qva/vendor/test/vndservice.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2020, 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.
-
-type vendor_qutestservice_service, vndservice_manager_type;
diff --git a/qva/vendor/test/vndservice_contexts b/qva/vendor/test/vndservice_contexts
deleted file mode 100644
index 2ceb38e..0000000
--- a/qva/vendor/test/vndservice_contexts
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2020, 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.
-
-vendor.qutestservice                                  u:object_r:vendor_qutestservice_service:s0
diff --git a/qva/vendor/test/wifimyftmsvc.te b/qva/vendor/test/wifimyftmsvc.te
deleted file mode 100644
index 673d4d0..0000000
--- a/qva/vendor/test/wifimyftmsvc.te
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright (c) 2020, 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.
-
-# This domain is for ftm mode hal service and  always will be in
-# userdebug_or_eng macro
-
-userdebug_or_eng(`
-type vendor_wifimyftmsvc, domain;
-type vendor_wifimyftmsvc_exec, exec_type, vendor_file_type, file_type;
-
-init_daemon_domain(vendor_wifimyftmsvc)
-hal_server_domain(vendor_wifimyftmsvc, vendor_hal_wifimyftm)
-
-#allows calls between client and server and vice-versa
-binder_call(vendor_hal_wifimyftm_client, vendor_hal_wifimyftm_server)
-binder_call(vendor_hal_wifimyftm_server, vendor_hal_wifimyftm_client)
-
-#register hal service and allow hal clients to find the service
-hal_attribute_hwservice(vendor_hal_wifimyftm, vendor_hal_wifimyftm_hwservice)
-
-allow vendor_hal_wifimyftm self:netlink_generic_socket create_socket_perms_no_ioctl;
-')
diff --git a/qva/vendor/trinket/device.te b/qva/vendor/trinket/device.te
deleted file mode 100644
index 28e7e54..0000000
--- a/qva/vendor/trinket/device.te
+++ /dev/null
@@ -1,32 +0,0 @@
-# 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.
-
-#logdump partition
-type vendor_logdump_partition, dev_type;
-type vendor_mba_debug_dev, dev_type;
-type vendor_dip_device, dev_type;
-type vendor_rawdump_block_device, dev_type;
diff --git a/qva/vendor/trinket/file.te b/qva/vendor/trinket/file.te
deleted file mode 100644
index 4e2b1fd..0000000
--- a/qva/vendor/trinket/file.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_sysfs_fps_attr, fs_type, sysfs_type;
diff --git a/qva/vendor/trinket/file_contexts b/qva/vendor/trinket/file_contexts
deleted file mode 100644
index cf4d072..0000000
--- a/qva/vendor/trinket/file_contexts
+++ /dev/null
@@ -1,177 +0,0 @@
-# Copyright (c) 2016-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.
-###################################
-# Dev block nodes
-
-#Primary storage device nodes
-/dev/block/mmcblk0rpmb                                                          u:object_r:vendor_rpmb_device:s0
-/dev/block/mmcblk0                                                              u:object_r:root_block_device:s0
-
-# UFS Devices
-/dev/block/platform/soc/4804000.ufshc/by-name/system                            u:object_r:system_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/metadata                          u:object_r:metadata_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/userdata                          u:object_r:userdata_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/boot                              u:object_r:boot_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/logdump                           u:object_r:vendor_logdump_partition:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/fsc                                u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/fsg                                u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/modemst1                           u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/modemst2                           u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/ssd                                u:object_r:vendor_ssd_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/misc                               u:object_r:misc_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/rpm                                u:object_r:vendor_rpmb_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/msadp                              u:object_r:vendor_mba_debug_dev:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/recovery                           u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/cache                              u:object_r:cache_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/frp                                u:object_r:frp_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/mdtp                               u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/dip                                u:object_r:vendor_dip_device:s0
-
-#rawdump partition
-/dev/block/platform/soc/4804000.ufshc/by-name/rawdump                            u:object_r:vendor_rawdump_block_device:s0
-
-# A/B partitions.
-/dev/block/platform/soc/4804000.ufshc/by-name/abl_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/aop_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/apdp_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/bluetooth_[ab]    u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/boot_[ab]         u:object_r:boot_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/cmnlib_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/cmnlib64_[ab]     u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/devcfg_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/dsp_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/dtbo_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/hyp_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/keymaster_[ab]    u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/mdtp_[ab]         u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/mdtpsecapp_[ab]   u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/modem_[ab]        u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/msadp_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/persist           u:object_r:vendor_persist_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/pmic_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/qupfw_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/rpm_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/system_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/tz_[ab]           u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/vbmeta_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/vendor_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/xbl_[ab]          u:object_r:vendor_xbl_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/xbl_config_[ab]   u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/imagefv_[ab]      u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/uefisecapp_[ab]   u:object_r:vendor_uefi_block_device:s0
-/dev/block/platform/soc/4804000.ufshc/by-name/super             u:object_r:super_block_device:s0
-
-# Block device holding the GPT, where the A/B attributes are stored.
-/dev/block/platform/soc/4804000.ufshc/sd[ade]                   u:object_r:vendor_gpt_block_device:s0
-
-# Block devices for the drive that holds the xbl_a and xbl_b partitions.
-/dev/block/platform/soc/4804000.ufshc/sd[bc]                 u:object_r:vendor_xbl_block_device:s0
-
-##################################
-# non-hlos mount points
-/firmware                  u:object_r:firmware_file:s0
-/bt_firmware               u:object_r:bt_firmware_file:s0
-
-#for eMMC
-/dev/block/platform/soc/4744000.sdhci/by-name/abl_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/apdp_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/boot_[ab]         u:object_r:boot_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/cmnlib_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/cmnlib64_[ab]     u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/devcfg_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/hyp_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/keymaster_[ab]    u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/modem_[ab]        u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/bluetooth_[ab]    u:object_r:vendor_modem_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/msadp_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/pmic_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/rpm_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/system_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/tz_[ab]           u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/vendor_[ab]       u:object_r:system_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/xbl_[ab]          u:object_r:vendor_xbl_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/aop_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/vbmeta_[ab]       u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/dtbo_[ab]         u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/dsp_[ab]          u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/mdtp_[ab]         u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/mdtpsecapp_[ab]   u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/qupfw_[ab]        u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/xbl_config_[ab]   u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/storsec_[ab]      u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/imagefv_[ab]      u:object_r:vendor_custom_ab_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/uefisecapp_[ab]   u:object_r:vendor_uefi_block_device:s0
-
-#non A/B
-/dev/block/platform/soc/4744000.sdhci/by-name/system                            u:object_r:system_block_device:s0
-/dev/block/platform/soc/4744000.ufshc/by-name/metadata                          u:object_r:metadata_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/userdata                          u:object_r:userdata_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/boot                              u:object_r:boot_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/logdump                           u:object_r:vendor_logdump_partition:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/fsc                                u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/fsg                                u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/modemst1                           u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/modemst2                           u:object_r:vendor_modem_efs_partition_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/ssd                                u:object_r:vendor_ssd_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/misc                               u:object_r:misc_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/rpm                                u:object_r:vendor_rpmb_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/msadp                              u:object_r:vendor_mba_debug_dev:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/recovery                           u:object_r:recovery_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/cache                              u:object_r:cache_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/frp                                u:object_r:frp_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/mdtp                               u:object_r:vendor_mdtp_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/dip                                u:object_r:vendor_dip_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/storsec                            u:object_r:boot_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/persist                            u:object_r:vendor_persist_block_device:s0
-/dev/block/platform/soc/4744000.sdhci/by-name/super                              u:object_r:super_block_device:s0
-
-# Camera
-/sys/devices/platform/soc/5ca0000.qcom,jpeg/video4linux/video[0-33]/name(/.*)?    u:object_r:vendor_sysfs_jpeg:s0
-/sys/devices/platform/soc/5c00000.qcom,msm-cam/video4linux/video[0-33]/name(/.*)?  u:object_r:vendor_sysfs_jpeg:s0
-#rawdump partition
-/dev/block/platform/soc/4744000.sdhci/by-name/rawdump                            u:object_r:vendor_rawdump_block_device:s0
-
-# FBE
-/(vendor|system/vendor)/bin/init.qti.qseecomd.sh                                u:object_r:vendor_init-qti-fbe-sh_exec:s0
-/(vendor|system/vendor)/bin/init\.qti\.can\.sh                                  u:object_r:vendor_qti_init_shell_exec:s0
-
-##################################
-# same process HAL libs
-/vendor/lib(64)?/hw/gralloc\.trinket\.so   u:object_r:same_process_hal_file:s0
-/vendor/lib(64)?/hw/vulkan\.trinket\.so    u:object_r:same_process_hal_file:s0
-
-##################################
-# Brightness permission
-/sys/devices/platform/soc/5e00000.qcom,mdss_mdp/backlight(/.*)?     u:object_r:vendor_sysfs_graphics:s0
-
-
-#FPC
-/sys/devices/platform/soc/soc:fpc1020(/.*?) u:object_r:vendor_sysfs_fps_attr:s0
-/sys/devices/platform/soc/c440000.qcom,spmi/spmi-0/spmi0-03/c440000.qcom,spmi:qcom,pmi632@3:qcom,leds@d000/leds/modalias u:object_r:vendor_sysfs_fps_attr:s0
-/(vendor|system/vendor)/bin/hw/android\.hardware\.biometrics\.fingerprint@2\.1-service-fpc u:object_r:vendor_hal_fingerprint_fpc_exec:s0
-
-/sys/devices/platform/soc/1b46018.qfprom/qfprom0/nvmem                  u:object_r:vendor_sysfs_qfprom:s0
diff --git a/qva/vendor/trinket/fingerprintd.te b/qva/vendor/trinket/fingerprintd.te
deleted file mode 100644
index 678d00c..0000000
--- a/qva/vendor/trinket/fingerprintd.te
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright (c) 2018, 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.
-
-allow hal_fingerprint input_device:dir r_dir_perms;
-allow hal_fingerprint vendor_sysfs_fps_attr:file rw_file_perms;
-allow hal_fingerprint uhid_device:chr_file rw_file_perms;
-r_dir_file(hal_fingerprint, firmware_file);
-r_dir_file(hal_fingerprint, sysfs_leds);
diff --git a/qva/vendor/trinket/genfs_contexts b/qva/vendor/trinket/genfs_contexts
deleted file mode 100644
index 0a7722b..0000000
--- a/qva/vendor/trinket/genfs_contexts
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright (c) 2018, 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.
-###################################
-
-#pmic sysfs_nodes
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-00/1c40000.qcom,spmi:qcom,pm6125@0:qcom,pm6125_rtc/rtc u:object_r:sysfs_rtc:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-02/1c40000.qcom,spmi:qcom,pmi632@2:qcom,qpnp-smb5/power_supply/battery u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-02/1c40000.qcom,spmi:qcom,pmi632@2:qcom,qpnp-smb5/power_supply/pc_port u:object_r:vendor_sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-02/1c40000.qcom,spmi:qcom,pmi632@2:qcom,qpnp-smb5/power_supply/usb u:object_r:vendor_sysfs_usb_supply:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-02/1c40000.qcom,spmi:qcom,pmi632@2:qcom,qpnp-smb5/power_supply/main u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-02/1c40000.qcom,spmi:qcom,pmi632@2:qpnp,qg/power_supply/bms u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/4a84000.i2c/i2c-0/0-0008/4a84000.i2c:qcom,smb1355@8:qcom,smb1355-charger@1000/power_supply/parallel u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/4a84000.i2c/i2c-0/0-000c/4a84000.i2c:qcom,smb1355@c:qcom,smb1355-charger@1000/power_supply/parallel u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /class/qcom-battery u:object_r:vendor_sysfs_battery_supply:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-03/1c40000.qcom,spmi:qcom,pmi632@3:qcom,leds@d000/leds u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-03/1c40000.qcom,spmi:qcom,pmi632@3:qcom,leds@d300/leds u:object_r:sysfs_leds:s0
-genfscon sysfs /devices/platform/soc/1c40000.qcom,spmi/spmi-0/spmi0-03/1c40000.qcom,spmi:qcom,pmi632@3:qcom,vibrator@5700/leds/vibrator u:object_r:sysfs_leds:s0
-
-genfscon sysfs /devices/platform/soc/6080000.qcom,mss/subsys0/name         u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/ab00000.qcom,lpass/subsys1/name       u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/b300000.qcom,turing/subsys2/name      u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,ipa_fws/subsys3/name         u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/5ae0000.qcom,venus/subsys4/name       u:object_r:vendor_sysfs_ssr:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-hyp/subsys5/name        u:object_r:vendor_sysfs_ssr:s0
-#qdss sysfs-node
-genfscon sysfs /devices/platform/soc/8047000.tmc/coresight-tmc-etf u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/8048000.tmc/coresight-tmc-etr u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/8002000.stm/coresight-stm u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/4506604.hwevent/coresight-hwevent u:object_r:vendor_sysfs_qdss_dev:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu0-cpu-ddr-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu4-cpu-ddr-latfloor/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu0-cpu-ddr-latfloor/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu-cpu-ddr-bw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/5900000.qcom,kgsl-3d0/kgsl/kgsl-3d0/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/5900000.qcom,kgsl-3d0/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,gpubw/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,kgsl-busmon/devfreq u:object_r:vendor_sysfs_devfreq:s0
-genfscon sysfs /devices/platform/soc/soc:qcom,cpu4-cpu-ddr-lat/devfreq u:object_r:vendor_sysfs_devfreq:s0
-#fps sysfs-node
-genfscon sysfs /devices/platform/soc/5e00000.qcom,mdss_mdp/drm/card0/sde-crtc-1/measured_fps u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/5e00000.qcom,mdss_mdp/drm/card0/sde-crtc-0/measured_fps u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/5e00000.qcom,mdss_mdp/drm/card0/sde-crtc-1/fps_periodicity_ms u:object_r:vendor_sysfs_graphics:s0
-genfscon sysfs /devices/platform/soc/5e00000.qcom,mdss_mdp/drm/card0/sde-crtc-0/fps_periodicity_ms u:object_r:vendor_sysfs_graphics:s0
-
-#net sysfs
-genfscon sysfs /devices/platform/soc/c800000.qcom,icnss/net u:object_r:sysfs_net:s0
diff --git a/qva/vendor/trinket/hal_camera.te b/qva/vendor/trinket/hal_camera.te
deleted file mode 100644
index 094cb7e..0000000
--- a/qva/vendor/trinket/hal_camera.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# 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.
-
-binder_call(hal_camera, system_server)
\ No newline at end of file
diff --git a/qva/vendor/trinket/hal_fingerprint_fpc.te b/qva/vendor/trinket/hal_fingerprint_fpc.te
deleted file mode 100644
index 5076262..0000000
--- a/qva/vendor/trinket/hal_fingerprint_fpc.te
+++ /dev/null
@@ -1,35 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_hal_fingerprint_fpc, domain;
-hal_server_domain(vendor_hal_fingerprint_fpc, hal_fingerprint)
-
-type vendor_hal_fingerprint_fpc_exec, exec_type, vendor_file_type, file_type;
-init_daemon_domain(vendor_hal_fingerprint_fpc)
-
-allow vendor_hal_fingerprint_fpc input_device:chr_file r_file_perms;
-allow vendor_hal_fingerprint_fpc tee_device:chr_file rw_file_perms;
diff --git a/qva/vendor/trinket/hal_perf_default.te b/qva/vendor/trinket/hal_perf_default.te
deleted file mode 100644
index cb232af..0000000
--- a/qva/vendor/trinket/hal_perf_default.te
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (c) 2020, 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.
-
-allow vendor_hal_perf_default self:capability kill;
-allow vendor_hal_perf_default {appdomain}:process sigkill;
-
diff --git a/qva/vendor/trinket/hal_sensors.te b/qva/vendor/trinket/hal_sensors.te
deleted file mode 100644
index e44c926..0000000
--- a/qva/vendor/trinket/hal_sensors.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2018, 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.
-
-allow hal_sensors vendor_hal_fingerprint_fpc:unix_stream_socket { connectto };
diff --git a/qva/vendor/trinket/hwservice_contexts b/qva/vendor/trinket/hwservice_contexts
deleted file mode 100644
index 02931cf..0000000
--- a/qva/vendor/trinket/hwservice_contexts
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright (c) 2018, 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.
-
-com.fingerprints.extension::IFingerprintEngineering u:object_r:hal_fingerprint_hwservice:s0
-com.fingerprints.extension::IFingerprintAuthenticator u:object_r:hal_fingerprint_hwservice:s0
-com.fingerprints.extension::IFingerprintNavigation u:object_r:hal_fingerprint_hwservice:s0
-com.fingerprints.extension::IFingerprintSensorTest u:object_r:hal_fingerprint_hwservice:s0
-com.fingerprints.extension::IFingerprintCalibration u:object_r:hal_fingerprint_hwservice:s0
diff --git a/qva/vendor/trinket/init-qti-fbe-sh.te b/qva/vendor/trinket/init-qti-fbe-sh.te
deleted file mode 100644
index ee17f17..0000000
--- a/qva/vendor/trinket/init-qti-fbe-sh.te
+++ /dev/null
@@ -1,37 +0,0 @@
-# Copyright (c) 2018, 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.
-
-type vendor_init-qti-fbe-sh, domain;
-type vendor_init-qti-fbe-sh_exec, exec_type, file_type, vendor_file_type;
-
-init_daemon_domain(vendor_init-qti-fbe-sh)
-
-allow vendor_init-qti-fbe-sh vendor_shell_exec:file rx_file_perms;
-
-# execute toybox/toolbox
-allow vendor_init-qti-fbe-sh vendor_toolbox_exec:file rx_file_perms;
-get_prop(vendor_init-qti-fbe-sh, vendor_tee_listener_prop)
diff --git a/qva/vendor/trinket/init_shell.te b/qva/vendor/trinket/init_shell.te
deleted file mode 100644
index 755a37d..0000000
--- a/qva/vendor/trinket/init_shell.te
+++ /dev/null
@@ -1,30 +0,0 @@
-# Copyright (c) 2017-2018, 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.
-# media_trinket_version_prop - to choose target version specific media_codecs.xml
-allow vendor_qti_init_shell {
-    vendor_media_trinket_version_prop
-}:property_service set;
diff --git a/qva/vendor/trinket/mediacodec.te b/qva/vendor/trinket/mediacodec.te
deleted file mode 100644
index 57412bf..0000000
--- a/qva/vendor/trinket/mediacodec.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2018, 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.
-
-get_prop(mediacodec, vendor_media_trinket_version_prop)
diff --git a/qva/vendor/trinket/mediaserver.te b/qva/vendor/trinket/mediaserver.te
deleted file mode 100644
index a3f066e..0000000
--- a/qva/vendor/trinket/mediaserver.te
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2018, 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.
-
-get_prop(mediaserver, vendor_media_trinket_version_prop)
diff --git a/qva/vendor/trinket/property.te b/qva/vendor/trinket/property.te
deleted file mode 100644
index 8942b97..0000000
--- a/qva/vendor/trinket/property.te
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2018, 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.
-
-#properites for init.qcom.sh script
-type vendor_media_trinket_version_prop, property_type;
diff --git a/qva/vendor/trinket/property_contexts b/qva/vendor/trinket/property_contexts
deleted file mode 100644
index ccaf486..0000000
--- a/qva/vendor/trinket/property_contexts
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright (c) 2018, 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.
-
-vendor.media.trinket.version      u:object_r:vendor_media_trinket_version_prop:s0
