diff --git a/Android.bp b/Android.bp index 286c5b3..17a2cdc 100644 --- a/Android.bp +++ b/Android.bp @@ -3064,6 +3064,37 @@ cc_prebuilt_library_shared { soc_specific: true, } +cc_prebuilt_library_shared { + name: "libqcodec2", + owner: "xiaomi", + strip: { + none: true, + }, + target: { + android_arm: { + srcs: [ + "proprietary/vendor/lib/libqcodec2.so", + ], + shared_libs: [ + "libutils", + "libcutils", + "liblog", + "libcodec2_vndk", + "libqdMetaData", + "libhidlbase", + "android.hardware.graphics.mapper@3.0", + "libc++", + "libc", + "libm", + "libdl", + ], + }, + }, + compile_multilib: "32", + prefer: true, + soc_specific: true, +} + cc_prebuilt_library_shared { name: "libqtigef", owner: "xiaomi", @@ -17344,6 +17375,45 @@ cc_prebuilt_binary { soc_specific: true, } +cc_prebuilt_binary { + name: "vendor.qti.media.c2@1.0-service", + owner: "xiaomi", + target: { + android_arm: { + srcs: [ + "proprietary/vendor/bin/hw/vendor.qti.media.c2@1.0-service", + ], + shared_libs: [ + "libqcodec2", + "android.hardware.media.c2@1.0", + "android.hardware.media.omx@1.0", + "liblog", + "libcutils", + "libavservices_minijail", + "libbinder", + "libhidlbase", + "libcodec2_vndk", + "libstagefright_omx", + "libstagefright_xmlparser", + "libutils", + "libvndksupport", + "libcodec2_hidl@1.0", + "libc++", + "libc", + "libm", + "libdl", + ], + }, + }, + compile_multilib: "32", + strip: { + none: true, + }, + prefer: true, + relative_install_path: "hw", + soc_specific: true, +} + cc_prebuilt_binary { name: "ims_rtp_daemon", owner: "xiaomi", 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..a72e1c6 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/seccomp_policy/codec2.vendor.base.policy b/proprietary/vendor/etc/seccomp_policy/codec2.vendor.base.policy new file mode 100644 index 0000000..9d3a478 --- /dev/null +++ b/proprietary/vendor/etc/seccomp_policy/codec2.vendor.base.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.policy b/proprietary/vendor/etc/seccomp_policy/codec2.vendor.ext.policy new file mode 100644 index 0000000..07b7bf7 --- /dev/null +++ b/proprietary/vendor/etc/seccomp_policy/codec2.vendor.ext.policy @@ -0,0 +1,9 @@ +# device specific syscalls +pselect6: 1 +eventfd2: 1 +sendto: 1 +recvfrom: 1 +_llseek: 1 +sysinfo: 1 +getcwd: 1 +getdents64: 1 diff --git a/proprietary/vendor/lib/libqcodec2.so b/proprietary/vendor/lib/libqcodec2.so new file mode 100644 index 0000000..da6a53e Binary files /dev/null and b/proprietary/vendor/lib/libqcodec2.so differ diff --git a/sm6250-common-vendor.mk b/sm6250-common-vendor.mk index 2ebb687..86d2926 100644 --- a/sm6250-common-vendor.mk +++ b/sm6250-common-vendor.mk @@ -140,6 +140,7 @@ PRODUCT_COPY_FILES += \ vendor/xiaomi/sm6250-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/xiaomi/sm6250-common/proprietary/vendor/etc/init/vendor.qti.hardware.charger_monitor@1.0-service.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.hardware.charger_monitor@1.0-service.rc \ vendor/xiaomi/sm6250-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/xiaomi/sm6250-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/xiaomi/sm6250-common/proprietary/vendor/etc/init/vendor.qti.rmt_storage.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.rmt_storage.rc \ vendor/xiaomi/sm6250-common/proprietary/vendor/etc/init/vendor.qti.tftp.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.tftp.rc \ vendor/xiaomi/sm6250-common/proprietary/vendor/etc/init/vendor.sensors.qti.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.sensors.qti.rc \ @@ -152,6 +153,8 @@ PRODUCT_COPY_FILES += \ vendor/xiaomi/sm6250-common/proprietary/vendor/etc/qdcm_calib_data_nt36675_video_mode_dsi_tianma_panel.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_nt36675_video_mode_dsi_tianma_panel.xml \ vendor/xiaomi/sm6250-common/proprietary/vendor/etc/sap.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sap.conf \ vendor/xiaomi/sm6250-common/proprietary/vendor/etc/sec_config:$(TARGET_COPY_OUT_VENDOR)/etc/sec_config \ + vendor/xiaomi/sm6250-common/proprietary/vendor/etc/seccomp_policy/codec2.vendor.base.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/codec2.vendor.base.policy \ + vendor/xiaomi/sm6250-common/proprietary/vendor/etc/seccomp_policy/codec2.vendor.ext.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/codec2.vendor.ext.policy \ vendor/xiaomi/sm6250-common/proprietary/vendor/etc/seccomp_policy/imsrtp.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/imsrtp.policy \ vendor/xiaomi/sm6250-common/proprietary/vendor/etc/seccomp_policy/vendor.qti.hardware.dsp.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/vendor.qti.hardware.dsp.policy \ vendor/xiaomi/sm6250-common/proprietary/vendor/etc/seccomp_policy/wfdhdcphalservice.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/wfdhdcphalservice.policy \ @@ -400,6 +403,7 @@ PRODUCT_PACKAGES += \ libmmrtpdecoder_proprietary \ libmmrtpencoder_proprietary \ libmulawdec \ + libqcodec2 \ libqtigef \ libsurround_3mic_proc \ libwfdcodecv4l2_proprietary \ @@ -908,6 +912,7 @@ PRODUCT_PACKAGES += \ vendor.display.color@1.0-service \ vendor.qti.hardware.alarm@1.0-service \ vendor.qti.hardware.capabilityconfigstore@1.0-service \ + vendor.qti.media.c2@1.0-service \ ims_rtp_daemon \ imsdatadaemon \ imsqmidaemon \