From d6d673f44170a73de4fa0ef17f478546b78318f5 Mon Sep 17 00:00:00 2001 From: Pranav Vashi Date: Sat, 3 Dec 2022 21:12:56 +0530 Subject: [PATCH] sm8350-common: Add Moto dolby support Change-Id: Ifbae49338aa40f41278edf410c1f4b7b055b033c Signed-off-by: Pranav Vashi Signed-off-by: zaidkhan0997 --- BoardConfigCommon.mk | 2 + audio/audio_effects.xml | 10 +- common.mk | 11 + configs/dolby/dax-default.xml | 1857 ++++++++++++++++++++ configs/media/media_codecs_dolby_audio.xml | 57 + extract-files.sh | 85 +- hidl/framework_compatibility_matrix.xml | 10 + hidl/manifest_lahaina.xml | 10 + proprietary-files.txt | 47 + sepolicy/vendor/attributes | 4 + sepolicy/vendor/file_contexts | 7 +- sepolicy/vendor/hal_audio_default.te | 3 + sepolicy/vendor/hal_dms.te | 6 + sepolicy/vendor/hal_dms_default.te | 11 + sepolicy/vendor/hwservice.te | 2 + sepolicy/vendor/hwservice_contexts | 6 +- sepolicy/vendor/mediacodec.te | 2 + sepolicy/vendor/platform_app.te | 3 + vendor.prop | 7 + 19 files changed, 2090 insertions(+), 50 deletions(-) create mode 100644 configs/dolby/dax-default.xml create mode 100644 configs/media/media_codecs_dolby_audio.xml create mode 100644 hidl/framework_compatibility_matrix.xml create mode 100644 sepolicy/vendor/hal_dms.te create mode 100644 sepolicy/vendor/hal_dms_default.te create mode 100644 sepolicy/vendor/hwservice.te create mode 100644 sepolicy/vendor/mediacodec.te diff --git a/BoardConfigCommon.mk b/BoardConfigCommon.mk index d9cca8a..d222c18 100644 --- a/BoardConfigCommon.mk +++ b/BoardConfigCommon.mk @@ -41,6 +41,7 @@ TARGET_2ND_CPU_VARIANT := generic TARGET_2ND_CPU_VARIANT_RUNTIME := kryo385 # Audio +AUDIO_FEATURE_ENABLED_DS2_DOLBY_DAP := true AUDIO_FEATURE_ENABLED_EXTENDED_COMPRESS_FORMAT := true AUDIO_FEATURE_ENABLED_GKI := true AUDIO_FEATURE_ENABLED_PROXY_DEVICE := true @@ -66,6 +67,7 @@ DEVICE_MATRIX_FILE := $(COMMON_PATH)/hidl/compatibility_matrix.xml DEVICE_FRAMEWORK_COMPATIBILITY_MATRIX_FILE := \ $(COMMON_PATH)/hidl/vendor_framework_compatibility_matrix.xml \ $(COMMON_PATH)/hidl/xiaomi_framework_compatibility_matrix.xml \ + $(COMMON_PATH)/hidl/framework_compatibility_matrix.xml \ vendor/lineage/config/device_framework_matrix.xml DEVICE_MANIFEST_FILE := \ diff --git a/audio/audio_effects.xml b/audio/audio_effects.xml index add0925..8602896 100644 --- a/audio/audio_effects.xml +++ b/audio/audio_effects.xml @@ -28,6 +28,9 @@ + + + @@ -43,6 +46,9 @@ + + + @@ -92,19 +98,15 @@ - - - - diff --git a/common.mk b/common.mk index b245ce2..2ca5397 100644 --- a/common.mk +++ b/common.mk @@ -279,8 +279,19 @@ PRODUCT_COPY_FILES += \ PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/media/yupik/media_codecs_performance_yupik_v1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_performance_yupik_v1.xml \ $(LOCAL_PATH)/media/yupik/media_codecs_yupik_v1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_yupik_v1.xml \ + $(LOCAL_PATH)/configs/media/media_codecs_dolby_audio.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_codecs_dolby_audio.xml \ $(LOCAL_PATH)/media/yupik/media_profiles_yupik_v1.xml:$(TARGET_COPY_OUT_VENDOR)/etc/media_profiles_yupik_v1.xml +# Moto Dolby +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/configs/dolby/dax-default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/dolby/dax-default.xml + +TARGET_EXCLUDES_AUDIOFX := true + +PRODUCT_COPY_FILES += \ + prebuilts/vndk/v33/arm/arch-arm-armv7-a-neon/shared/vndk-core/libstagefright_foundation.so:$(TARGET_COPY_OUT_VENDOR)/lib/libstagefright_foundation-v33.so \ + prebuilts/vndk/v33/arm64/arch-arm64-armv8-a/shared/vndk-core/libstagefright_foundation.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libstagefright_foundation-v33.so + # Native libraries whitelist PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/configs/public.libraries.txt:$(TARGET_COPY_OUT_VENDOR)/etc/public.libraries.txt diff --git a/configs/dolby/dax-default.xml b/configs/dolby/dax-default.xml new file mode 100644 index 0000000..4177b92 --- /dev/null +++ b/configs/dolby/dax-default.xml @@ -0,0 +1,1857 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/configs/media/media_codecs_dolby_audio.xml b/configs/media/media_codecs_dolby_audio.xml new file mode 100644 index 0000000..1c98a62 --- /dev/null +++ b/configs/media/media_codecs_dolby_audio.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extract-files.sh b/extract-files.sh index 06355dc..670e726 100755 --- a/extract-files.sh +++ b/extract-files.sh @@ -1,7 +1,8 @@ #!/bin/bash # -# SPDX-FileCopyrightText: 2016 The CyanogenMod Project -# SPDX-FileCopyrightText: 2017-2024 The LineageOS Project +# Copyright (C) 2016 The CyanogenMod Project +# Copyright (C) 2017-2023 The LineageOS Project +# # SPDX-License-Identifier: Apache-2.0 # @@ -37,29 +38,28 @@ SECTION= while [ "${#}" -gt 0 ]; do case "${1}" in - --only-common) - ONLY_COMMON=true - ;; - --only-firmware) - ONLY_FIRMWARE=true - ;; - --only-target) - ONLY_TARGET=true - ;; - -n | --no-cleanup) - CLEAN_VENDOR=false - ;; - -k | --kang) - KANG="--kang" - ;; - -s | --section) - SECTION="${2}" - shift - CLEAN_VENDOR=false - ;; - *) - SRC="${1}" - ;; + --only-common ) + ONLY_COMMON=true + ;; + --only-firmware ) + ONLY_FIRMWARE=true + ;; + --only-target ) + ONLY_TARGET=true + ;; + -n | --no-cleanup ) + CLEAN_VENDOR=false + ;; + -k | --kang ) + KANG="--kang" + ;; + -s | --section ) + SECTION="${2}"; shift + CLEAN_VENDOR=false + ;; + * ) + SRC="${1}" + ;; esac shift done @@ -75,55 +75,52 @@ function blob_fixup() { "${PATCHELF}" --replace-needed "android.media.audio.common.types-V2-cpp.so" "android.media.audio.common.types-V3-cpp.so" "${2}" ;; system_ext/lib64/libwfdnative.so) - [ "$2" = "" ] && return 0 "${PATCHELF}" --remove-needed "android.hidl.base@1.0.so" "${2}" ;; vendor/etc/media_lahaina/video_system_specs.json \ |vendor/etc/media_shima_v1/video_system_specs.json \ |vendor/etc/media_yupik_v1/video_system_specs.json) - [ "$2" = "" ] && return 0 sed -i "/max_retry_alloc_output_timeout/ s/10000/0/" "${2}" ;; vendor/etc/vintf/manifest/c2_manifest_vendor.xml) - [ "$2" = "" ] && return 0 sed -ni '/ozoaudio/!p' "${2}" sed -ni '/dolby/!p' "${2}" ;; vendor/lib64/android.hardware.secure_element@1.0-impl.so) - [ "$2" = "" ] && return 0 "${PATCHELF}" --remove-needed "android.hidl.base@1.0.so" "${2}" ;; - *) - return 1 + vendor/lib/libstagefright_soft_ddpdec.so | vendor/lib/libstagefright_soft_ac4dec.so | \ + vendor/lib/libstagefrightdolby.so | vendor/lib64/libstagefright_soft_ddpdec.so | \ + vendor/lib64/libdlbdsservice.so | vendor/lib64/libstagefright_soft_ac4dec.so | vendor/lib64/libstagefrightdolby.so) + ${PATCHELF} --replace-needed "libstagefright_foundation.so" "libstagefright_foundation-v33.so" "${2}" + ;; + vendor/lib/libstagefright_soft_ddpdec.so | vendor/lib/libstagefright_soft_ac4dec.so | \ + vendor/lib/libstagefrightdolby.so | vendor/lib64/libstagefright_soft_ddpdec.so | \ + vendor/lib64/libdlbdsservice.so | vendor/lib64/libstagefright_soft_ac4dec.so | vendor/lib64/libstagefrightdolby.so) + ${PATCHELF} --replace-needed "libstagefright_foundation.so" "libstagefright_foundation-v33.so" "${2}" ;; esac - - return 0 -} - -function blob_fixup_dry() { - blob_fixup "$1" "" } if [ -z "${ONLY_FIRMWARE}" ] && [ -z "${ONLY_TARGET}" ]; then # Initialize the helper for common device - setup_vendor "${DEVICE_COMMON}" "${VENDOR_COMMON:-$VENDOR}" "${ANDROID_ROOT}" true "${CLEAN_VENDOR}" + setup_vendor "${DEVICE_COMMON}" "${VENDOR}" "${ANDROID_ROOT}" true "${CLEAN_VENDOR}" extract "${MY_DIR}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}" fi -if [ -z "${ONLY_COMMON}" ] && [ -s "${MY_DIR}/../../${VENDOR}/${DEVICE}/proprietary-files.txt" ]; then +if [ -z "${ONLY_COMMON}" ] && [ -s "${MY_DIR}/../${DEVICE}/proprietary-files.txt" ]; then # Reinitialize the helper for device - source "${MY_DIR}/../../${VENDOR}/${DEVICE}/extract-files.sh" + source "${MY_DIR}/../${DEVICE}/extract-files.sh" setup_vendor "${DEVICE}" "${VENDOR}" "${ANDROID_ROOT}" false "${CLEAN_VENDOR}" if [ -z "${ONLY_FIRMWARE}" ]; then - extract "${MY_DIR}/../../${VENDOR}/${DEVICE}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}" + extract "${MY_DIR}/../${DEVICE}/proprietary-files.txt" "${SRC}" "${KANG}" --section "${SECTION}" fi - if [ -z "${SECTION}" ] && [ -f "${MY_DIR}/../../${VENDOR}/${DEVICE}/proprietary-firmware.txt" ]; then - extract_firmware "${MY_DIR}/../../${VENDOR}/${DEVICE}/proprietary-firmware.txt" "${SRC}" + if [ -f "${MY_DIR}/../${DEVICE}/proprietary-firmware.txt" ]; then + extract_firmware "${MY_DIR}/../${DEVICE}/proprietary-firmware.txt" "${SRC}" fi fi -"${MY_DIR}/setup-makefiles.sh" +"${MY_DIR}/setup-makefiles.sh" \ No newline at end of file diff --git a/hidl/framework_compatibility_matrix.xml b/hidl/framework_compatibility_matrix.xml new file mode 100644 index 0000000..80dca2d --- /dev/null +++ b/hidl/framework_compatibility_matrix.xml @@ -0,0 +1,10 @@ + + + vendor.dolby.hardware.dms + 2.0 + + IDms + default + + + \ No newline at end of file diff --git a/hidl/manifest_lahaina.xml b/hidl/manifest_lahaina.xml index 854bb86..f041abd 100644 --- a/hidl/manifest_lahaina.xml +++ b/hidl/manifest_lahaina.xml @@ -577,4 +577,14 @@ IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. MwqemAdapter + + + vendor.dolby.hardware.dms + hwbinder + 2.0 + + IDms + default + + diff --git a/proprietary-files.txt b/proprietary-files.txt index 1a47abb..3ce9afa 100644 --- a/proprietary-files.txt +++ b/proprietary-files.txt @@ -173,6 +173,53 @@ vendor/lib64/vendor.display.color@1.4.so vendor/lib64/vendor.display.color@1.5.so vendor/lib64/vendor.display.postproc@1.0.so +# Dolby - from rhode +odm/bin/hw/vendor.dolby_v3_6.hardware.dms360@2.0-service|da39a3ee5e6b4b0d3255bfef95601890afd80709 +system_ext/app/MotoSignatureApp/MotoSignatureApp.apk|98027bccd4ec14cb7887cde068e35f6b0ecd0a44 +system_ext/etc/permissions/com.motorola.frameworks.core.addon.xml|b98f53235c8d4c1962d3b279840e2a074d0ddd10 +system_ext/etc/permissions/com.motorola.motosignature.xml|e94cdcfd1b92b6bd1d0b53c3c2ed8bffe362e6ac +system_ext/etc/permissions/com.motorola.software.dolbyui.xml|d5c25b2522094346257a5ff0f4317c992b54d1fc +system_ext/etc/permissions/moto-checkin.xml|373f75676a0ac7915f5bc49ec43fd99c38dd9c1b +system_ext/etc/permissions/moto-settings.xml|f2a2703b62777c88e3a161a0d2a75d72f90d5007 +system_ext/etc/permissions/moto.xml|5521a530e243f6e5e928018320d4e9b819134fbb +system_ext/etc/permissions/privapp-com.dolby.daxservice.xml|56da6dd095fba323ddf6951075995ba56c5f3f2f +system_ext/etc/permissions/privapp-com.motorola.android.providers.settings.xml|44bd70f7309ad6407d43391bcdb5b7e05ae8c363 +system_ext/etc/permissions/privapp-com.motorola.dolby.dolbyui.xml|d7f762731e3302ce553bf22a99aaeec312f65c0a +system_ext/etc/sysconfig/config-com.dolby.daxservice.xml|f2955d9e3d5f75b40fdc8229243828f0c1c163de +system_ext/etc/sysconfig/config-com.motorola.android.providers.settings.xml|1f804d789dd7c8b7657a6f07e23bcac1ce5c701c +system_ext/etc/sysconfig/config-com.motorola.dolby.dolbyui.xml|0131f1a5a5c2d2fc09a6bc75ff4e25b74785ec2a +system_ext/etc/sysconfig/config-com.motorola.motosignature.app.xml|5b2c138d4be962f052700fb3ca00d822bbf836da +system_ext/framework/com.motorola.frameworks.core.addon.jar|8431ff519b0a3e02411a0096898ee8acb372b9b7 +system_ext/framework/com.motorola.motosignature.jar|1607b24909a030ddec7f05b91356e6b2d76c0b6b +system_ext/framework/moto-checkin.jar|989119b230c01ba95341d29de45e38120a68f394 +system_ext/framework/moto-settings.jar|0ebdf871ededa1eb9c5186bdb4a9055d89594779 +system_ext/framework/moto.jar|6c797a7f205f2ce5d939c000f21c6625daf0c33f +system_ext/priv-app/MotoDolbyDax3/MotoDolbyDax3.apk;OVERRIDES=MusicFX|e6b8ddab4c29c7d46469e92980e2a0a0ca7ea4e8 +system_ext/priv-app/MotorolaSettingsProvider/MotorolaSettingsProvider.apk|25deb5bdb18d55dee1b9bd1de2ba46e353c62780 +system_ext/priv-app/daxService/daxService.apk|7df2fd75a92d942164ae713f5b70f853f98c95f0 +vendor/bin/hw/vendor.dolby.hardware.dms@2.0-service|8215768638794162db3bb76e43045926fcbb4b0b +vendor/etc/init/vendor.dolby.hardware.dms@2.0-service.rc|29296ebfe89b2697fec573be73cc3757fd97bed6 +vendor/lib/soundfx/libswdap.so|810d0e266e4a77f06cba72fe8bdde2e1ede4f9f9 +vendor/lib/soundfx/libswgamedap.so|c7d35eb932ecffb384ec62628404df3406b63919 +vendor/lib/soundfx/libswvqe.so|3009202dcdd5b8fadb9c43a8cf5f0fe1c28311a6 +vendor/lib/libdapparamstorage.so|ce5f2fadc1e7d3811d73d49f64254b7054a57259 +vendor/lib/libdeccfg.so|050de5edb5fb7dabba9b59bfafcb5a1366285d3c +vendor/lib/libstagefright_soft_ac4dec.so|8e42b8c6a145cbc2d844e1609d5415faf739d3ec +vendor/lib/libstagefright_soft_ddpdec.so|b9e1aadc1c8cf7d709130d36b9c30a1f6f649b5a +vendor/lib/libstagefrightdolby.so|1c13964cd6919e9947cf1451a77baf12ccd83810 +vendor/lib/vendor.dolby.hardware.dms@2.0.so|aaf98796bfa8b384e2b5e162214ca46f6eca5dbc +vendor/lib64/soundfx/libswdap.so|e996ee1d421b3b2cf74f3f3ed93bff067d83dddb +vendor/lib64/soundfx/libswgamedap.so|c898fd5b51312c5fafa693ca037423c5bae23101 +vendor/lib64/soundfx/libswvqe.so|08394e1ac285479213604c35cb144147fdac68c0 +vendor/lib64/libdapparamstorage.so|7549aeba2b7041b472ffc1f5fd39a56e4be64a2b +vendor/lib64/libdeccfg.so|3a63582be7dea50ae10c0543f68e3bce592a3877 +vendor/lib64/libdlbdsservice.so|8d070318884f02e50ad1831bb29f8bde6af33168 +vendor/lib64/libstagefright_soft_ac4dec.so|d8d2dd47ca0552d4e1c5df7ad9b3becfd6d43179 +vendor/lib64/libstagefright_soft_ddpdec.so|9f921ef725bdd1edc26b484df86b10e2909f760b +vendor/lib64/libstagefrightdolby.so|319814f3d8968e002bc1591b8e90e6eda745f79b +vendor/lib64/vendor.dolby.hardware.dms@2.0-impl.so|92eb0a2b730810881288119fc4d038f52870acd1 +vendor/lib64/vendor.dolby.hardware.dms@2.0.so|a93b5cf33ae57387a2d32686520a0d1dd5d10dcc + # DPM system/framework/tcmclient.jar system_ext/bin/dpmd diff --git a/sepolicy/vendor/attributes b/sepolicy/vendor/attributes index 0981fe0..5733a81 100644 --- a/sepolicy/vendor/attributes +++ b/sepolicy/vendor/attributes @@ -10,3 +10,7 @@ attribute vendor_hal_camerapostproc_xiaomi_server; attribute vendor_hal_citsensorservice_xiaomi; attribute vendor_hal_citsensorservice_xiaomi_client; attribute vendor_hal_citsensorservice_xiaomi_server; + +attribute hal_dms; +attribute hal_dms_client; +attribute hal_dms_server; \ No newline at end of file diff --git a/sepolicy/vendor/file_contexts b/sepolicy/vendor/file_contexts index b8914e5..fa4ed79 100644 --- a/sepolicy/vendor/file_contexts +++ b/sepolicy/vendor/file_contexts @@ -6,6 +6,11 @@ # Battery /vendor/bin/batterysecret u:object_r:batterysecret_exec:s0 +# Dolby +/data/vendor/dolby(/.*)? u:object_r:vendor_data_file:s0 +/(vendor|system/vendor)/bin/hw/vendor\.dolby\.hardware\.dms@2\.0-service u:object_r:hal_dms_default_exec:s0 +/(vendor|system/vendor|odm)/bin/hw/vendor\.dolby_v3_6\.hardware\.dms360@2\.0-service u:object_r:hal_dms_default_exec:s0 + # Camera /mnt/vendor/persist/camera(/.*)? u:object_r:camera_persist_file:s0 /vendor/lib(64)?/libc\+\+_shared\.so u:object_r:same_process_hal_file:s0 @@ -65,4 +70,4 @@ # Xiaomi MAC /vendor/bin/nv_mac u:object_r:vendor_wcnss_service_exec:s0 /data/vendor/mac_addr(/.*)? u:object_r:vendor_wifi_vendor_data_file:s0 -/data/vendor/wlan_logs(/.*)? u:object_r:vendor_wifi_vendor_data_file:s0 +/data/vendor/wlan_logs(/.*)? u:object_r:vendor_wifi_vendor_data_file:s0 \ No newline at end of file diff --git a/sepolicy/vendor/hal_audio_default.te b/sepolicy/vendor/hal_audio_default.te index 97a9154..2215c07 100644 --- a/sepolicy/vendor/hal_audio_default.te +++ b/sepolicy/vendor/hal_audio_default.te @@ -1,3 +1,4 @@ + type audio_socket, file_type; type sound_device, dev_type; @@ -5,3 +6,5 @@ set_prop(hal_audio_default, vendor_audio_prop) allow hal_audio_default audio_socket:sock_file rw_file_perms; allow hal_audio_default sound_device:chr_file rw_file_perms; +allow hal_audio_default hal_dms_hwservice:hwservice_manager find; +binder_call(hal_audio_default, hal_dms_default) \ No newline at end of file diff --git a/sepolicy/vendor/hal_dms.te b/sepolicy/vendor/hal_dms.te new file mode 100644 index 0000000..6f3b093 --- /dev/null +++ b/sepolicy/vendor/hal_dms.te @@ -0,0 +1,6 @@ +# HwBinder IPC from client to server, and callbacks +binder_call(hal_dms_client, hal_dms_server) +binder_call(hal_dms_server, hal_dms_client) + +add_hwservice(hal_dms_server, hal_dms_hwservice) +allow hal_dms_client hal_dms_hwservice:hwservice_manager find; diff --git a/sepolicy/vendor/hal_dms_default.te b/sepolicy/vendor/hal_dms_default.te new file mode 100644 index 0000000..9326961 --- /dev/null +++ b/sepolicy/vendor/hal_dms_default.te @@ -0,0 +1,11 @@ +type hal_dms_default, domain; +hal_server_domain(hal_dms_default, hal_dms) + +type hal_dms_default_exec, exec_type, vendor_file_type, file_type; +init_daemon_domain(hal_dms_default) + +allow hal_dms_default vendor_data_file:file { rw_file_perms create unlink }; +allow hal_dms_default vendor_data_file:dir { rw_file_perms add_name remove_name }; +binder_call(hal_dms_default, hal_audio_default) +binder_call(hal_dms_default, platform_app) +binder_call(hal_dms_default, mediacodec) diff --git a/sepolicy/vendor/hwservice.te b/sepolicy/vendor/hwservice.te new file mode 100644 index 0000000..3ef95d3 --- /dev/null +++ b/sepolicy/vendor/hwservice.te @@ -0,0 +1,2 @@ +# Dolby +type hal_dms_hwservice, hwservice_manager_type; diff --git a/sepolicy/vendor/hwservice_contexts b/sepolicy/vendor/hwservice_contexts index 006f227..89a3f6d 100644 --- a/sepolicy/vendor/hwservice_contexts +++ b/sepolicy/vendor/hwservice_contexts @@ -2,6 +2,10 @@ vendor.xiaomi.hardware.cameraperf::IMiCameraPerfService u:object_r:vendor_hal_cameraperf_hwservice:s0 vendor.xiaomi.hardware.campostproc::IMiPostProcService u:object_r:vendor_hal_camerapostproc_xiaomi_hwservice:s0 +# Dolby +vendor.dolby.hardware.dms::IDms u:object_r:hal_dms_hwservice:s0 +vendor.dolby_v3_6.hardware.dms360::IDms u:object_r:hal_dms_hwservice:s0 + # Fingerprint vendor.xiaomi.hardware.dtool::IDtool u:object_r:vendor_hal_fingerprint_hwservice_xiaomi:s0 vendor.xiaomi.hardware.fx.tunnel::IMiFxTunnel u:object_r:vendor_hal_fingerprint_hwservice_xiaomi:s0 @@ -17,4 +21,4 @@ com.fingerprints.extension::IFingerprintOptical vendor.xiaomi.hardware.mlipay::IMlipayService u:object_r:hal_mlipay_hwservice:s0 # Sensors -vendor.xiaomi.hardware.citsensorservice::ICitSensorService u:object_r:vendor_hal_citsensorservice_xiaomi_hwservice:s0 +vendor.xiaomi.hardware.citsensorservice::ICitSensorService u:object_r:vendor_hal_citsensorservice_xiaomi_hwservice:s0 \ No newline at end of file diff --git a/sepolicy/vendor/mediacodec.te b/sepolicy/vendor/mediacodec.te new file mode 100644 index 0000000..bf336c1 --- /dev/null +++ b/sepolicy/vendor/mediacodec.te @@ -0,0 +1,2 @@ +allow mediacodec hal_dms_hwservice:hwservice_manager find; +binder_call(mediacodec, hal_dms_default) diff --git a/sepolicy/vendor/platform_app.te b/sepolicy/vendor/platform_app.te index 79f8f14..534e937 100644 --- a/sepolicy/vendor/platform_app.te +++ b/sepolicy/vendor/platform_app.te @@ -1,2 +1,5 @@ allow platform_app vendor_hal_soter_hwservice:hwservice_manager find; +allow platform_app hal_dms_hwservice:hwservice_manager find; binder_call(platform_app, vendor_hal_soter_qti) +binder_call(platform_app, hal_dms_default) +get_prop(platform_app, audio_config_prop) \ No newline at end of file diff --git a/vendor.prop b/vendor.prop index 8fd789e..e604473 100644 --- a/vendor.prop +++ b/vendor.prop @@ -156,6 +156,13 @@ ro.soc.manufacturer=QTI ro.crypto.dm_default_key.options_format.version=2 ro.crypto.volume.metadata.method=dm-default-key +# Dolby +persist.vendor.audio_fx.current=dolby +vendor.audio.dolby.ds2.enabled=true +vendor.audio.dolby.ds2.hardbypass=true +ro.vendor.audio.dolby.dax.support=true +ro.vendor.dolby.dax.version=DAX3_3.6.0.12_r1 + # DPM persist.vendor.dpm.feature=1 persist.vendor.dpm.idletimer.mode=default