diff --git a/Android.bp b/Android.bp index 3b0c267..e094036 100644 --- a/Android.bp +++ b/Android.bp @@ -3822,6 +3822,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", @@ -13360,6 +13391,47 @@ 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", + "libhidltransport", + "libhwbinder", + "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..34fafda 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..fc6e232 --- /dev/null +++ b/proprietary/vendor/etc/seccomp_policy/codec2.vendor.base.policy @@ -0,0 +1,74 @@ +# Copyright (C) 2018 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. + +# Organized by frequency of systemcall - in descending order for +# best performance. +futex: 1 +ioctl: 1 +write: 1 +prctl: 1 +clock_gettime: 1 +getpriority: 1 +read: 1 +close: 1 +writev: 1 +dup: 1 +ppoll: 1 +mmap2: 1 +getrandom: 1 +eventfd2: 1 + +# mremap: Ensure |flags| are (MREMAP_MAYMOVE | MREMAP_FIXED) TODO: Once minijail +# parser support for '<' is in this needs to be modified to also prevent +# |old_address| and |new_address| from touching the exception vector page, which +# on ARM is statically loaded at 0xffff 0000. See +# http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0211h/Babfeega.html +# for more details. +mremap: 1 +munmap: 1 +mprotect: 1 +madvise: 1 +openat: 1 +sigaltstack: 1 +clone: 1 +setpriority: 1 +getuid32: 1 +fstat64: 1 +fstatfs64: 1 +pread64: 1 +faccessat: 1 +readlinkat: 1 +exit: 1 +rt_sigprocmask: 1 +set_tid_address: 1 +restart_syscall: 1 +exit_group: 1 +rt_sigreturn: 1 +pipe2: 1 +gettimeofday: 1 +sched_yield: 1 +nanosleep: 1 +lseek: 1 +_llseek: 1 +sched_get_priority_max: 1 +sched_get_priority_min: 1 +statfs64: 1 +sched_setscheduler: 1 +fstatat64: 1 +ugetrlimit: 1 +getdents64: 1 +getrandom: 1 + +@include /system/etc/seccomp_policy/crash_dump.arm.policy + 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..5d77fe1 Binary files /dev/null and b/proprietary/vendor/lib/libqcodec2.so differ diff --git a/sdm845-common-vendor.mk b/sdm845-common-vendor.mk index d6883ad..cc948e4 100644 --- a/sdm845-common-vendor.mk +++ b/sdm845-common-vendor.mk @@ -84,6 +84,7 @@ PRODUCT_COPY_FILES += \ vendor/xiaomi/sdm845-common/proprietary/vendor/etc/init/vendor.qti.hardware.sensorscalibrate@1.0-service.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.hardware.sensorscalibrate@1.0-service.rc \ vendor/xiaomi/sdm845-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/xiaomi/sdm845-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/xiaomi/sdm845-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/sdm845-common/proprietary/vendor/etc/init/vendor.qti.rmt_storage.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.rmt_storage.rc \ vendor/xiaomi/sdm845-common/proprietary/vendor/etc/init/vendor.qti.tftp.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.qti.tftp.rc \ vendor/xiaomi/sdm845-common/proprietary/vendor/etc/init/vendor.xiaomi.hardware.mlipay@1.1-service.rc:$(TARGET_COPY_OUT_VENDOR)/etc/init/vendor.xiaomi.hardware.mlipay@1.1-service.rc \ @@ -94,6 +95,8 @@ PRODUCT_COPY_FILES += \ vendor/xiaomi/sdm845-common/proprietary/vendor/etc/scve/facereco/gModel.dat:$(TARGET_COPY_OUT_VENDOR)/etc/scve/facereco/gModel.dat \ vendor/xiaomi/sdm845-common/proprietary/vendor/etc/sec_config:$(TARGET_COPY_OUT_VENDOR)/etc/sec_config \ vendor/xiaomi/sdm845-common/proprietary/vendor/etc/seccomp_policy/atfwd@2.0.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/atfwd@2.0.policy \ + vendor/xiaomi/sdm845-common/proprietary/vendor/etc/seccomp_policy/codec2.vendor.base.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/codec2.vendor.base.policy \ + vendor/xiaomi/sdm845-common/proprietary/vendor/etc/seccomp_policy/codec2.vendor.ext.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/codec2.vendor.ext.policy \ vendor/xiaomi/sdm845-common/proprietary/vendor/etc/seccomp_policy/imsrtp.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/imsrtp.policy \ vendor/xiaomi/sdm845-common/proprietary/vendor/etc/seccomp_policy/wfdhdcphalservice.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/wfdhdcphalservice.policy \ vendor/xiaomi/sdm845-common/proprietary/vendor/etc/seccomp_policy/wfdvndservice.policy:$(TARGET_COPY_OUT_VENDOR)/etc/seccomp_policy/wfdvndservice.policy \ @@ -228,6 +231,7 @@ PRODUCT_PACKAGES += \ libmmrtpdecoder_proprietary \ libmmrtpencoder_proprietary \ libmulawdec \ + libqcodec2 \ libqtigef \ libsmwrapper \ libsndmonitor \ @@ -563,6 +567,7 @@ PRODUCT_PACKAGES += \ vendor.qti.hardware.sensorscalibrate@1.0-service \ vendor.qti.hardware.soter@1.0-service \ vendor.qti.hardware.tui_comm@1.0-service-qti \ + vendor.qti.media.c2@1.0-service \ ims_rtp_daemon \ imsdatadaemon \ imsqmidaemon \