diff --git a/sdm660-common/proprietary/vendor/bin/hw/vendor.qti.hardware.perf@2.2-service b/sdm660-common/proprietary/vendor/bin/hw/vendor.qti.hardware.perf@2.2-service
new file mode 100755
index 0000000..51ec9fd
Binary files /dev/null and b/sdm660-common/proprietary/vendor/bin/hw/vendor.qti.hardware.perf@2.2-service differ
diff --git a/sdm660-common/proprietary/vendor/etc/init/vendor.qti.hardware.perf@2.2-service.rc b/sdm660-common/proprietary/vendor/etc/init/vendor.qti.hardware.perf@2.2-service.rc
new file mode 100755
index 0000000..2ca0d64
--- /dev/null
+++ b/sdm660-common/proprietary/vendor/etc/init/vendor.qti.hardware.perf@2.2-service.rc
@@ -0,0 +1,13 @@
+# @file vendor.qti.hardware.perf@2.2-service.rc
+# @brief Defination perf service
+#
+# DESCRIPTION
+# ---------------------------------------------------------------------------
+# Copyright (c) 2019-2020 Qualcomm Technologies, Inc.
+# All Rights Reserved.
+# Confidential and Proprietary - Qualcomm Technologies, Inc.
+# ---------------------------------------------------------------------------
+service perf-hal-2-2 /vendor/bin/hw/vendor.qti.hardware.perf@2.2-service
+ class hal
+ user root
+ group root readproc oem_2907
diff --git a/sdm660-common/proprietary/vendor/etc/perf/commonresourceconfigs.xml b/sdm660-common/proprietary/vendor/etc/perf/commonresourceconfigs.xml
new file mode 100755
index 0000000..050f30ac
--- /dev/null
+++ b/sdm660-common/proprietary/vendor/etc/perf/commonresourceconfigs.xml
@@ -0,0 +1,290 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sdm660-common/proprietary/vendor/etc/perf/commonsysnodesconfigs.xml b/sdm660-common/proprietary/vendor/etc/perf/commonsysnodesconfigs.xml
new file mode 100755
index 0000000..22db738
--- /dev/null
+++ b/sdm660-common/proprietary/vendor/etc/perf/commonsysnodesconfigs.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sdm660-common/proprietary/vendor/etc/perf/perfboostsconfig.xml b/sdm660-common/proprietary/vendor/etc/perf/perfboostsconfig.xml
new file mode 100644
index 0000000..c6538e8
--- /dev/null
+++ b/sdm660-common/proprietary/vendor/etc/perf/perfboostsconfig.xml
@@ -0,0 +1,475 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sdm660-common/proprietary/vendor/etc/perf/perfconfigstore.xml b/sdm660-common/proprietary/vendor/etc/perf/perfconfigstore.xml
new file mode 100644
index 0000000..140829d
--- /dev/null
+++ b/sdm660-common/proprietary/vendor/etc/perf/perfconfigstore.xml
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sdm660-common/proprietary/vendor/etc/perf/targetconfig.xml b/sdm660-common/proprietary/vendor/etc/perf/targetconfig.xml
new file mode 100644
index 0000000..46efa03
--- /dev/null
+++ b/sdm660-common/proprietary/vendor/etc/perf/targetconfig.xml
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sdm660-common/proprietary/vendor/etc/perf/targetresourceconfigs.xml b/sdm660-common/proprietary/vendor/etc/perf/targetresourceconfigs.xml
new file mode 100644
index 0000000..50cd272
--- /dev/null
+++ b/sdm660-common/proprietary/vendor/etc/perf/targetresourceconfigs.xml
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/sdm660-common/proprietary/vendor/lib/libperfconfig.so b/sdm660-common/proprietary/vendor/lib/libperfconfig.so
new file mode 100755
index 0000000..f6eb992
Binary files /dev/null and b/sdm660-common/proprietary/vendor/lib/libperfconfig.so differ
diff --git a/sdm660-common/proprietary/vendor/lib/libperfgluelayer.so b/sdm660-common/proprietary/vendor/lib/libperfgluelayer.so
new file mode 100755
index 0000000..f461c79
Binary files /dev/null and b/sdm660-common/proprietary/vendor/lib/libperfgluelayer.so differ
diff --git a/sdm660-common/proprietary/vendor/lib/libqti-perfd-client.so b/sdm660-common/proprietary/vendor/lib/libqti-perfd-client.so
new file mode 100755
index 0000000..6f94c8d
Binary files /dev/null and b/sdm660-common/proprietary/vendor/lib/libqti-perfd-client.so differ
diff --git a/sdm660-common/proprietary/vendor/lib/libqti-perfd.so b/sdm660-common/proprietary/vendor/lib/libqti-perfd.so
new file mode 100755
index 0000000..f16147b
Binary files /dev/null and b/sdm660-common/proprietary/vendor/lib/libqti-perfd.so differ
diff --git a/sdm660-common/proprietary/vendor/lib/libqti-util.so b/sdm660-common/proprietary/vendor/lib/libqti-util.so
new file mode 100755
index 0000000..8adc395
Binary files /dev/null and b/sdm660-common/proprietary/vendor/lib/libqti-util.so differ
diff --git a/sdm660-common/proprietary/vendor/lib64/libperfconfig.so b/sdm660-common/proprietary/vendor/lib64/libperfconfig.so
new file mode 100755
index 0000000..52b1cb6
Binary files /dev/null and b/sdm660-common/proprietary/vendor/lib64/libperfconfig.so differ
diff --git a/sdm660-common/proprietary/vendor/lib64/libperfgluelayer.so b/sdm660-common/proprietary/vendor/lib64/libperfgluelayer.so
new file mode 100755
index 0000000..d3e711f
Binary files /dev/null and b/sdm660-common/proprietary/vendor/lib64/libperfgluelayer.so differ
diff --git a/sdm660-common/proprietary/vendor/lib64/libqti-perfd-client.so b/sdm660-common/proprietary/vendor/lib64/libqti-perfd-client.so
new file mode 100755
index 0000000..0bf7579
Binary files /dev/null and b/sdm660-common/proprietary/vendor/lib64/libqti-perfd-client.so differ
diff --git a/sdm660-common/proprietary/vendor/lib64/libqti-perfd.so b/sdm660-common/proprietary/vendor/lib64/libqti-perfd.so
new file mode 100755
index 0000000..d4ebfc9
Binary files /dev/null and b/sdm660-common/proprietary/vendor/lib64/libqti-perfd.so differ
diff --git a/sdm660-common/proprietary/vendor/lib64/libqti-util.so b/sdm660-common/proprietary/vendor/lib64/libqti-util.so
new file mode 100755
index 0000000..a49ae51
Binary files /dev/null and b/sdm660-common/proprietary/vendor/lib64/libqti-util.so differ
diff --git a/sdm660-common/sdm660-common-vendor.mk b/sdm660-common/sdm660-common-vendor.mk
index e081012..eec5461 100644
--- a/sdm660-common/sdm660-common-vendor.mk
+++ b/sdm660-common/sdm660-common-vendor.mk
@@ -176,6 +176,7 @@ PRODUCT_COPY_FILES += \
vendor/asus/sdm660-common/proprietary/vendor/bin/hw/vendor.qti.hardware.alarm@1.0-service:$(TARGET_COPY_OUT_VENDOR)/bin/hw/vendor.qti.hardware.alarm@1.0-service \
vendor/asus/sdm660-common/proprietary/vendor/bin/hw/vendor.qti.hardware.capabilityconfigstore@1.0-service:$(TARGET_COPY_OUT_VENDOR)/bin/hw/vendor.qti.hardware.capabilityconfigstore@1.0-service \
vendor/asus/sdm660-common/proprietary/vendor/bin/hw/vendor.qti.hardware.factory@1.0-service:$(TARGET_COPY_OUT_VENDOR)/bin/hw/vendor.qti.hardware.factory@1.0-service \
+ vendor/asus/sdm660-common/proprietary/vendor/bin/hw/vendor.qti.hardware.perf@2.2-service:$(TARGET_COPY_OUT_VENDOR)/bin/hw/vendor.qti.hardware.perf@2.2-service \
vendor/asus/sdm660-common/proprietary/vendor/bin/hw/vendor.qti.hardware.qccvndhal@1.0-service:$(TARGET_COPY_OUT_VENDOR)/bin/hw/vendor.qti.hardware.qccvndhal@1.0-service \
vendor/asus/sdm660-common/proprietary/vendor/bin/hw/vendor.qti.hardware.qseecom@1.0-service:$(TARGET_COPY_OUT_VENDOR)/bin/hw/vendor.qti.hardware.qseecom@1.0-service \
vendor/asus/sdm660-common/proprietary/vendor/bin/hw/vendor.qti.hardware.qteeconnector@1.0-service:$(TARGET_COPY_OUT_VENDOR)/bin/hw/vendor.qti.hardware.qteeconnector@1.0-service \
@@ -282,6 +283,7 @@ PRODUCT_COPY_FILES += \
vendor/asus/sdm660-common/proprietary/vendor/etc/init/vendor.qti.hardware.capabilityconfigstore@1.0-service.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.hardware.capabilityconfigstore@1.0-service.rc \
vendor/asus/sdm660-common/proprietary/vendor/etc/init/vendor.qti.hardware.dsp@1.0-service.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.hardware.dsp@1.0-service.rc \
vendor/asus/sdm660-common/proprietary/vendor/etc/init/vendor.qti.hardware.factory@1.0-service.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.hardware.factory@1.0-service.rc \
+ vendor/asus/sdm660-common/proprietary/vendor/etc/init/vendor.qti.hardware.perf@2.2-service.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.hardware.perf@2.2-service.rc \
vendor/asus/sdm660-common/proprietary/vendor/etc/init/vendor.qti.hardware.qccvndhal@1.0-service.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.hardware.qccvndhal@1.0-service.rc \
vendor/asus/sdm660-common/proprietary/vendor/etc/init/vendor.qti.hardware.qseecom@1.0-service.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.hardware.qseecom@1.0-service.rc \
vendor/asus/sdm660-common/proprietary/vendor/etc/init/vendor.qti.hardware.qteeconnector@1.0-service.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.hardware.qteeconnector@1.0-service.rc \
@@ -289,6 +291,12 @@ PRODUCT_COPY_FILES += \
vendor/asus/sdm660-common/proprietary/vendor/etc/init/vendor.qti.hardware.tui_comm@1.0-service-qti.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.hardware.tui_comm@1.0-service-qti.rc \
vendor/asus/sdm660-common/proprietary/vendor/etc/init/vendor.qti.rmt_storage.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.rmt_storage.rc \
vendor/asus/sdm660-common/proprietary/vendor/etc/init/vendor.qti.tftp.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.tftp.rc \
+ vendor/asus/sdm660-common/proprietary/vendor/etc/perf/commonresourceconfigs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/perf/commonresourceconfigs.xml \
+ vendor/asus/sdm660-common/proprietary/vendor/etc/perf/commonsysnodesconfigs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/perf/commonsysnodesconfigs.xml \
+ vendor/asus/sdm660-common/proprietary/vendor/etc/perf/perfboostsconfig.xml:$(TARGET_COPY_OUT_VENDOR)/etc/perf/perfboostsconfig.xml \
+ vendor/asus/sdm660-common/proprietary/vendor/etc/perf/perfconfigstore.xml:$(TARGET_COPY_OUT_VENDOR)/etc/perf/perfconfigstore.xml \
+ vendor/asus/sdm660-common/proprietary/vendor/etc/perf/targetconfig.xml:$(TARGET_COPY_OUT_VENDOR)/etc/perf/targetconfig.xml \
+ vendor/asus/sdm660-common/proprietary/vendor/etc/perf/targetresourceconfigs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/perf/targetresourceconfigs.xml \
vendor/asus/sdm660-common/proprietary/vendor/etc/permissions/android.hardware.light.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.light.xml \
vendor/asus/sdm660-common/proprietary/vendor/etc/permissions/vendor.qti.hardware.factory.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/vendor.qti.hardware.factory.xml \
vendor/asus/sdm660-common/proprietary/vendor/etc/seccomp_policy/atfwd@2.0.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/atfwd@2.0.policy \
@@ -368,12 +376,17 @@ PRODUCT_COPY_FILES += \
vendor/asus/sdm660-common/proprietary/vendor/lib/libmdsprpc.so:$(TARGET_COPY_OUT_VENDOR)/lib/libmdsprpc.so \
vendor/asus/sdm660-common/proprietary/vendor/lib/libmmcamera_ppeiscore.so:$(TARGET_COPY_OUT_VENDOR)/lib/libmmcamera_ppeiscore.so \
vendor/asus/sdm660-common/proprietary/vendor/lib/libmmosal.so:$(TARGET_COPY_OUT_VENDOR)/lib/libmmosal.so \
+ vendor/asus/sdm660-common/proprietary/vendor/lib/libperfconfig.so:$(TARGET_COPY_OUT_VENDOR)/lib/libperfconfig.so \
+ vendor/asus/sdm660-common/proprietary/vendor/lib/libperfgluelayer.so:$(TARGET_COPY_OUT_VENDOR)/lib/libperfgluelayer.so \
vendor/asus/sdm660-common/proprietary/vendor/lib/libpn553_fw.so:$(TARGET_COPY_OUT_VENDOR)/lib/libpn553_fw.so \
vendor/asus/sdm660-common/proprietary/vendor/lib/libqmi_cci.so:$(TARGET_COPY_OUT_VENDOR)/lib/libqmi_cci.so \
vendor/asus/sdm660-common/proprietary/vendor/lib/libqmi_common_so.so:$(TARGET_COPY_OUT_VENDOR)/lib/libqmi_common_so.so \
vendor/asus/sdm660-common/proprietary/vendor/lib/libqmi_encdec.so:$(TARGET_COPY_OUT_VENDOR)/lib/libqmi_encdec.so \
vendor/asus/sdm660-common/proprietary/vendor/lib/libqmiservices.so:$(TARGET_COPY_OUT_VENDOR)/lib/libqmiservices.so \
vendor/asus/sdm660-common/proprietary/vendor/lib/libqseed3.so:$(TARGET_COPY_OUT_VENDOR)/lib/libqseed3.so \
+ vendor/asus/sdm660-common/proprietary/vendor/lib/libqti-perfd-client.so:$(TARGET_COPY_OUT_VENDOR)/lib/libqti-perfd-client.so \
+ vendor/asus/sdm660-common/proprietary/vendor/lib/libqti-perfd.so:$(TARGET_COPY_OUT_VENDOR)/lib/libqti-perfd.so \
+ vendor/asus/sdm660-common/proprietary/vendor/lib/libqti-util.so:$(TARGET_COPY_OUT_VENDOR)/lib/libqti-util.so \
vendor/asus/sdm660-common/proprietary/vendor/lib/libqtigef.so:$(TARGET_COPY_OUT_VENDOR)/lib/libqtigef.so \
vendor/asus/sdm660-common/proprietary/vendor/lib/librs_adreno.so:$(TARGET_COPY_OUT_VENDOR)/lib/librs_adreno.so \
vendor/asus/sdm660-common/proprietary/vendor/lib/libscalar.so:$(TARGET_COPY_OUT_VENDOR)/lib/libscalar.so \
@@ -562,6 +575,8 @@ PRODUCT_COPY_FILES += \
vendor/asus/sdm660-common/proprietary/vendor/lib64/liboemcrypto.so:$(TARGET_COPY_OUT_VENDOR)/lib64/liboemcrypto.so \
vendor/asus/sdm660-common/proprietary/vendor/lib64/libpdmapper.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libpdmapper.so \
vendor/asus/sdm660-common/proprietary/vendor/lib64/libpdnotifier.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libpdnotifier.so \
+ vendor/asus/sdm660-common/proprietary/vendor/lib64/libperfconfig.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libperfconfig.so \
+ vendor/asus/sdm660-common/proprietary/vendor/lib64/libperfgluelayer.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libperfgluelayer.so \
vendor/asus/sdm660-common/proprietary/vendor/lib64/libperipheral_client.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libperipheral_client.so \
vendor/asus/sdm660-common/proprietary/vendor/lib64/libqcbor.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libqcbor.so \
vendor/asus/sdm660-common/proprietary/vendor/lib64/libqcc_file_agent.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libqcc_file_agent.so \
@@ -587,6 +602,9 @@ PRODUCT_COPY_FILES += \
vendor/asus/sdm660-common/proprietary/vendor/lib64/libqrtr.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libqrtr.so \
vendor/asus/sdm660-common/proprietary/vendor/lib64/libqseed3.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libqseed3.so \
vendor/asus/sdm660-common/proprietary/vendor/lib64/libqsocket.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libqsocket.so \
+ vendor/asus/sdm660-common/proprietary/vendor/lib64/libqti-perfd-client.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libqti-perfd-client.so \
+ vendor/asus/sdm660-common/proprietary/vendor/lib64/libqti-perfd.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libqti-perfd.so \
+ vendor/asus/sdm660-common/proprietary/vendor/lib64/libqti-util.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libqti-util.so \
vendor/asus/sdm660-common/proprietary/vendor/lib64/libqtigef.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libqtigef.so \
vendor/asus/sdm660-common/proprietary/vendor/lib64/librcc.so:$(TARGET_COPY_OUT_VENDOR)/lib64/librcc.so \
vendor/asus/sdm660-common/proprietary/vendor/lib64/libril-qc-hal-qmi.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libril-qc-hal-qmi.so \