diff --git a/Android.bp b/Android.bp
index 5cd3c01..4c097cd 100644
--- a/Android.bp
+++ b/Android.bp
@@ -295,6 +295,15 @@ prebuilt_etc_xml {
soc_specific: true,
}
+prebuilt_etc_xml {
+ name: "c2_manifest_vendor",
+ owner: "oneplus",
+ src: "proprietary/vendor/etc/vintf/manifest/c2_manifest_vendor.xml",
+ filename_from_src: true,
+ sub_dir: "vintf/manifest",
+ soc_specific: true,
+}
+
prebuilt_etc_xml {
name: "manifest_android.hardware.drm@1.3-service.widevine",
owner: "oneplus",
diff --git a/proprietary/vendor/bin/hw/vendor.qti.media.c2@1.0-service b/proprietary/vendor/bin/hw/vendor.qti.media.c2@1.0-service
new file mode 100644
index 0000000..c15d6c9
Binary files /dev/null and b/proprietary/vendor/bin/hw/vendor.qti.media.c2@1.0-service differ
diff --git a/proprietary/vendor/etc/init/vendor.qti.media.c2@1.0-service.rc b/proprietary/vendor/etc/init/vendor.qti.media.c2@1.0-service.rc
new file mode 100644
index 0000000..2f29a12
--- /dev/null
+++ b/proprietary/vendor/etc/init/vendor.qti.media.c2@1.0-service.rc
@@ -0,0 +1,7 @@
+service vendor-qti-media-c2-hal-1-0 /vendor/bin/hw/vendor.qti.media.c2@1.0-service
+ class hal
+ user mediacodec
+ group mediadrm camera drmrpc system
+ ioprio rt 4
+ writepid /dev/cpuset/foreground/tasks
+
diff --git a/proprietary/vendor/etc/media_codecs_c2.xml b/proprietary/vendor/etc/media_codecs_c2.xml
new file mode 100644
index 0000000..769fff6
--- /dev/null
+++ b/proprietary/vendor/etc/media_codecs_c2.xml
@@ -0,0 +1,440 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/proprietary/vendor/etc/media_codecs_performance_c2.xml b/proprietary/vendor/etc/media_codecs_performance_c2.xml
new file mode 100644
index 0000000..2993d2f
--- /dev/null
+++ b/proprietary/vendor/etc/media_codecs_performance_c2.xml
@@ -0,0 +1,221 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/proprietary/vendor/etc/seccomp_policy/codec2.vendor.base-arm.policy b/proprietary/vendor/etc/seccomp_policy/codec2.vendor.base-arm.policy
new file mode 100644
index 0000000..d654d1e
--- /dev/null
+++ b/proprietary/vendor/etc/seccomp_policy/codec2.vendor.base-arm.policy
@@ -0,0 +1,89 @@
+###################################################################################################
+# Copyright (c) 2020 Qualcomm Technologies, Inc.
+# All Rights Reserved.
+# Confidential and Proprietary - Qualcomm Technologies, Inc.
+###################################################################################################
+#
+# Not a Contribution.
+#
+
+# Copyright (C) 2019 The Android Open Source Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+futex: 1
+# ioctl calls are filtered via the selinux policy.
+ioctl: 1
+sched_yield: 1
+close: 1
+dup: 1
+ppoll: 1
+mprotect: arg2 in ~PROT_EXEC || arg2 in ~PROT_WRITE
+mmap2: arg2 in ~PROT_EXEC || arg2 in ~PROT_WRITE
+memfd_create: 1
+ftruncate: 1
+ftruncate64: 1
+
+mremap: arg3 == 3
+munmap: 1
+prctl: 1
+getuid32: 1
+writev: 1
+sigaltstack: 1
+clone: 1
+exit: 1
+lseek: 1
+rt_sigprocmask: 1
+openat: 1
+open: 1
+fstat64: 1
+write: 1
+nanosleep: 1
+setpriority: 1
+set_tid_address: 1
+getdents64: 1
+readlinkat: 1
+readlink: 1
+read: 1
+pread64: 1
+fstatfs64: 1
+gettimeofday: 1
+faccessat: 1
+_llseek: 1
+fstatat64: 1
+ugetrlimit: 1
+exit_group: 1
+restart_syscall: 1
+rt_sigreturn: 1
+getrandom: 1
+madvise: 1
+
+# crash dump policy additions
+sigreturn: 1
+clock_gettime: 1
+futex: 1
+getpid: 1
+gettid: 1
+pipe2: 1
+recvmsg: 1
+process_vm_readv: 1
+tgkill: 1
+rt_sigaction: 1
+rt_tgsigqueueinfo: 1
+#prctl: arg0 == PR_GET_NO_NEW_PRIVS || arg0 == 0x53564d41
+#mprotect: arg2 in 0x1|0x2
+#mmap2: arg2 in 0x1|0x2
+geteuid32: 1
+getgid32: 1
+getegid32: 1
+getgroups32: 1
diff --git a/proprietary/vendor/etc/seccomp_policy/codec2.vendor.ext-arm.policy b/proprietary/vendor/etc/seccomp_policy/codec2.vendor.ext-arm.policy
new file mode 100644
index 0000000..6930da8
--- /dev/null
+++ b/proprietary/vendor/etc/seccomp_policy/codec2.vendor.ext-arm.policy
@@ -0,0 +1,13 @@
+#Copyright (c) 2019-2020 Qualcomm Technologies, Inc.
+#All Rights Reserved.
+#Confidential and Proprietary - Qualcomm Technologies, Inc.
+
+# device specific syscalls
+pselect6: 1
+eventfd2: 1
+sendto: 1
+recvfrom: 1
+_llseek: 1
+sysinfo: 1
+getcwd: 1
+getdents64: 1
diff --git a/proprietary/vendor/etc/vintf/manifest/c2_manifest_vendor.xml b/proprietary/vendor/etc/vintf/manifest/c2_manifest_vendor.xml
new file mode 100644
index 0000000..f6c22c1
--- /dev/null
+++ b/proprietary/vendor/etc/vintf/manifest/c2_manifest_vendor.xml
@@ -0,0 +1,40 @@
+
+
+
+
+ android.hardware.media.c2
+ hwbinder
+ 1.0
+
+ IComponentStore
+ default
+ software
+
+
+
diff --git a/proprietary/vendor/lib/libqcodec2_base.so b/proprietary/vendor/lib/libqcodec2_base.so
new file mode 100644
index 0000000..f7ef2ff
Binary files /dev/null and b/proprietary/vendor/lib/libqcodec2_base.so differ
diff --git a/proprietary/vendor/lib/libqcodec2_basecodec.so b/proprietary/vendor/lib/libqcodec2_basecodec.so
new file mode 100644
index 0000000..c411e09
Binary files /dev/null and b/proprietary/vendor/lib/libqcodec2_basecodec.so differ
diff --git a/proprietary/vendor/lib/libqcodec2_core.so b/proprietary/vendor/lib/libqcodec2_core.so
new file mode 100644
index 0000000..86af771
Binary files /dev/null and b/proprietary/vendor/lib/libqcodec2_core.so differ
diff --git a/proprietary/vendor/lib/libqcodec2_platform.so b/proprietary/vendor/lib/libqcodec2_platform.so
new file mode 100644
index 0000000..d999ca6
Binary files /dev/null and b/proprietary/vendor/lib/libqcodec2_platform.so differ
diff --git a/proprietary/vendor/lib/libqcodec2_utils.so b/proprietary/vendor/lib/libqcodec2_utils.so
new file mode 100644
index 0000000..99c75a9
Binary files /dev/null and b/proprietary/vendor/lib/libqcodec2_utils.so differ
diff --git a/proprietary/vendor/lib/libqcodec2_v4l2codec.so b/proprietary/vendor/lib/libqcodec2_v4l2codec.so
new file mode 100644
index 0000000..adbd964
Binary files /dev/null and b/proprietary/vendor/lib/libqcodec2_v4l2codec.so differ
diff --git a/sm7250-common-vendor.mk b/sm7250-common-vendor.mk
index a1ca889..14e3e78 100644
--- a/sm7250-common-vendor.mk
+++ b/sm7250-common-vendor.mk
@@ -126,6 +126,7 @@ PRODUCT_COPY_FILES += \
vendor/oneplus/sm7250-common/proprietary/vendor/bin/hw/vendor.qti.hardware.servicetracker@1.2-service:$(TARGET_COPY_OUT_VENDOR)/bin/hw/vendor.qti.hardware.servicetracker@1.2-service \
vendor/oneplus/sm7250-common/proprietary/vendor/bin/hw/vendor.qti.hardware.soter@1.0-service:$(TARGET_COPY_OUT_VENDOR)/bin/hw/vendor.qti.hardware.soter@1.0-service \
vendor/oneplus/sm7250-common/proprietary/vendor/bin/hw/vendor.qti.hardware.tui_comm@1.0-service-qti:$(TARGET_COPY_OUT_VENDOR)/bin/hw/vendor.qti.hardware.tui_comm@1.0-service-qti \
+ vendor/oneplus/sm7250-common/proprietary/vendor/bin/hw/vendor.qti.media.c2@1.0-service:$(TARGET_COPY_OUT_VENDOR)/bin/hw/vendor.qti.media.c2@1.0-service \
vendor/oneplus/sm7250-common/proprietary/vendor/bin/ims_rtp_daemon:$(TARGET_COPY_OUT_VENDOR)/bin/ims_rtp_daemon \
vendor/oneplus/sm7250-common/proprietary/vendor/bin/imsdatadaemon:$(TARGET_COPY_OUT_VENDOR)/bin/imsdatadaemon \
vendor/oneplus/sm7250-common/proprietary/vendor/bin/imsqmidaemon:$(TARGET_COPY_OUT_VENDOR)/bin/imsqmidaemon \
@@ -251,6 +252,7 @@ PRODUCT_COPY_FILES += \
vendor/oneplus/sm7250-common/proprietary/vendor/etc/init/vendor.qti.hardware.servicetracker@1.2-service.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.hardware.servicetracker@1.2-service.rc \
vendor/oneplus/sm7250-common/proprietary/vendor/etc/init/vendor.qti.hardware.soter@1.0-service.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.hardware.soter@1.0-service.rc \
vendor/oneplus/sm7250-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/oneplus/sm7250-common/proprietary/vendor/etc/init/vendor.qti.media.c2@1.0-service.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.media.c2@1.0-service.rc \
vendor/oneplus/sm7250-common/proprietary/vendor/etc/init/vendor.qti.qspmhal@1.0-service.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.qspmhal@1.0-service.rc \
vendor/oneplus/sm7250-common/proprietary/vendor/etc/init/vendor.qti.rmt_storage.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.rmt_storage.rc \
vendor/oneplus/sm7250-common/proprietary/vendor/etc/init/vendor.qti.tftp.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.tftp.rc \
@@ -258,7 +260,9 @@ PRODUCT_COPY_FILES += \
vendor/oneplus/sm7250-common/proprietary/vendor/etc/init/vendor.sensors.sscrpcd.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.sensors.sscrpcd.rc \
vendor/oneplus/sm7250-common/proprietary/vendor/etc/init/vppservice.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vppservice.rc \
vendor/oneplus/sm7250-common/proprietary/vendor/etc/init/wfdvndservice.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/wfdvndservice.rc \
+ vendor/oneplus/sm7250-common/proprietary/vendor/etc/media_codecs_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_c2.xml \
vendor/oneplus/sm7250-common/proprietary/vendor/etc/media_codecs_dolby_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_dolby_audio.xml \
+ vendor/oneplus/sm7250-common/proprietary/vendor/etc/media_codecs_performance_c2.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_c2.xml \
vendor/oneplus/sm7250-common/proprietary/vendor/etc/msm_irqbalance.conf:$(TARGET_COPY_OUT_VENDOR)/etc/msm_irqbalance.conf \
vendor/oneplus/sm7250-common/proprietary/vendor/etc/perf/commonresourceconfigs.xml:$(TARGET_COPY_OUT_VENDOR)/etc/perf/commonresourceconfigs.xml \
vendor/oneplus/sm7250-common/proprietary/vendor/etc/perf/perfboostsconfig.xml:$(TARGET_COPY_OUT_VENDOR)/etc/perf/perfboostsconfig.xml \
@@ -269,6 +273,8 @@ PRODUCT_COPY_FILES += \
vendor/oneplus/sm7250-common/proprietary/vendor/etc/powerhint.xml:$(TARGET_COPY_OUT_VENDOR)/etc/powerhint.xml \
vendor/oneplus/sm7250-common/proprietary/vendor/etc/sec_config:$(TARGET_COPY_OUT_VENDOR)/etc/sec_config \
vendor/oneplus/sm7250-common/proprietary/vendor/etc/seccomp_policy/atfwd@2.0.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/atfwd@2.0.policy \
+ vendor/oneplus/sm7250-common/proprietary/vendor/etc/seccomp_policy/codec2.vendor.base-arm.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/codec2.vendor.base-arm.policy \
+ vendor/oneplus/sm7250-common/proprietary/vendor/etc/seccomp_policy/codec2.vendor.ext-arm.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/codec2.vendor.ext-arm.policy \
vendor/oneplus/sm7250-common/proprietary/vendor/etc/seccomp_policy/imsrtp.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/imsrtp.policy \
vendor/oneplus/sm7250-common/proprietary/vendor/etc/seccomp_policy/qspm.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/qspm.policy \
vendor/oneplus/sm7250-common/proprietary/vendor/etc/seccomp_policy/qti-systemd.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/qti-systemd.policy \
@@ -378,6 +384,12 @@ PRODUCT_COPY_FILES += \
vendor/oneplus/sm7250-common/proprietary/vendor/lib/libperfioctl.so:$(TARGET_COPY_OUT_VENDOR)/lib/libperfioctl.so \
vendor/oneplus/sm7250-common/proprietary/vendor/lib/libqcci_legacy.so:$(TARGET_COPY_OUT_VENDOR)/lib/libqcci_legacy.so \
vendor/oneplus/sm7250-common/proprietary/vendor/lib/libqcmaputils.so:$(TARGET_COPY_OUT_VENDOR)/lib/libqcmaputils.so \
+ vendor/oneplus/sm7250-common/proprietary/vendor/lib/libqcodec2_base.so:$(TARGET_COPY_OUT_VENDOR)/lib/libqcodec2_base.so \
+ vendor/oneplus/sm7250-common/proprietary/vendor/lib/libqcodec2_basecodec.so:$(TARGET_COPY_OUT_VENDOR)/lib/libqcodec2_basecodec.so \
+ vendor/oneplus/sm7250-common/proprietary/vendor/lib/libqcodec2_core.so:$(TARGET_COPY_OUT_VENDOR)/lib/libqcodec2_core.so \
+ vendor/oneplus/sm7250-common/proprietary/vendor/lib/libqcodec2_platform.so:$(TARGET_COPY_OUT_VENDOR)/lib/libqcodec2_platform.so \
+ vendor/oneplus/sm7250-common/proprietary/vendor/lib/libqcodec2_utils.so:$(TARGET_COPY_OUT_VENDOR)/lib/libqcodec2_utils.so \
+ vendor/oneplus/sm7250-common/proprietary/vendor/lib/libqcodec2_v4l2codec.so:$(TARGET_COPY_OUT_VENDOR)/lib/libqcodec2_v4l2codec.so \
vendor/oneplus/sm7250-common/proprietary/vendor/lib/libqdi.so:$(TARGET_COPY_OUT_VENDOR)/lib/libqdi.so \
vendor/oneplus/sm7250-common/proprietary/vendor/lib/libqdp.so:$(TARGET_COPY_OUT_VENDOR)/lib/libqdp.so \
vendor/oneplus/sm7250-common/proprietary/vendor/lib/libqmi.so:$(TARGET_COPY_OUT_VENDOR)/lib/libqmi.so \
@@ -828,6 +840,7 @@ PRODUCT_PACKAGES += \
ims \
qcrilmsgtunnel \
WfdCommon \
+ WfdCommon \
com.motorola.motosignature \
moto-checkin \
qcnvitems \
@@ -840,6 +853,7 @@ PRODUCT_PACKAGES += \
android.hardware.gnss@2.1-service-qti \
android.hardware.neuralnetworks@1.3-service-qti-hta \
android.hardware.neuralnetworks@1.3-service-qti \
+ c2_manifest_vendor \
manifest_android.hardware.drm@1.3-service.widevine \
vendor.qti.gnss@4.0-service \
vendor.qti.hardware.servicetracker@1.2-service