diff --git a/Android.bp b/Android.bp index 6713589..dfb1f66 100644 --- a/Android.bp +++ b/Android.bp @@ -6350,6 +6350,23 @@ cc_prebuilt_library_shared { soc_specific: true, } +cc_prebuilt_library_shared { + name: "libqcodec2", + owner: "samsung", + 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: "samsung", @@ -7817,6 +7834,24 @@ cc_prebuilt_binary { soc_specific: true, } +cc_prebuilt_binary { + name: "vendor.qti.media.c2@1.0-service", + owner: "samsung", + 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: "vendor.samsung.hardware.thermal@1.0-service", owner: "samsung", 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..52b846f --- /dev/null +++ b/proprietary/vendor/etc/seccomp_policy/codec2.vendor.base.policy @@ -0,0 +1,85 @@ +################################################################################################### +# 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/sm7125-common-vendor.mk b/sm7125-common-vendor.mk index ccd1ff4..cbb31b6 100644 --- a/sm7125-common-vendor.mk +++ b/sm7125-common-vendor.mk @@ -38,6 +38,7 @@ PRODUCT_COPY_FILES += \ vendor/samsung/sm7125-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/samsung/sm7125-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/samsung/sm7125-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/samsung/sm7125-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/samsung/sm7125-common/proprietary/vendor/etc/init/vendor.qti.rmt_storage.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.rmt_storage.rc \ vendor/samsung/sm7125-common/proprietary/vendor/etc/init/vendor.qti.tftp.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.tftp.rc \ vendor/samsung/sm7125-common/proprietary/vendor/etc/init/vendor.samsung.hardware.thermal@1.0-service.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.samsung.hardware.thermal@1.0-service.rc \ @@ -68,6 +69,8 @@ PRODUCT_COPY_FILES += \ vendor/samsung/sm7125-common/proprietary/vendor/etc/sap.conf:$(TARGET_COPY_OUT_VENDOR)/etc/sap.conf \ vendor/samsung/sm7125-common/proprietary/vendor/etc/sec_config:$(TARGET_COPY_OUT_VENDOR)/etc/sec_config \ vendor/samsung/sm7125-common/proprietary/vendor/etc/sec_config_oem:$(TARGET_COPY_OUT_VENDOR)/etc/sec_config_oem \ + vendor/samsung/sm7125-common/proprietary/vendor/etc/seccomp_policy/codec2.vendor.base.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/codec2.vendor.base.policy \ + vendor/samsung/sm7125-common/proprietary/vendor/etc/seccomp_policy/codec2.vendor.ext.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/codec2.vendor.ext.policy \ vendor/samsung/sm7125-common/proprietary/vendor/etc/seccomp_policy/mediacodec.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/mediacodec.policy \ vendor/samsung/sm7125-common/proprietary/vendor/etc/seccomp_policy/vendor.qti.hardware.dsp.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/vendor.qti.hardware.dsp.policy \ vendor/samsung/sm7125-common/proprietary/vendor/etc/sensors/config/atoll_default_sensors.json:$(TARGET_COPY_OUT_VENDOR)/etc/sensors/config/atoll_default_sensors.json \ @@ -465,6 +468,7 @@ PRODUCT_PACKAGES += \ libhdmipassthru_vendor \ libhfp_vendor \ libprofileparamstorage \ + libqcodec2 \ libqtigef \ librecordalive \ libsamsungVoipResampler \ @@ -560,6 +564,7 @@ PRODUCT_PACKAGES += \ vendor.qti.hardware.perf@2.2-service \ vendor.qti.hardware.qseecom@1.0-service \ vendor.qti.hardware.tui_comm@1.0-service-qti \ + vendor.qti.media.c2@1.0-service \ vendor.samsung.hardware.thermal@1.0-service \ ipacm-diag \ irsc_util \