From bc0dc1d83f1ff13ef126da1ad73f62cb397a3508 Mon Sep 17 00:00:00 2001 From: basamaryan Date: Tue, 4 Feb 2025 15:37:31 -0500 Subject: [PATCH] sm6150-common: rootdir: Remove /data/vendor/dolby on upgrade This is required after switching to the OnePlus Dolby Atmos stack Based on: https://github.com/adithya2306/android_device_xiaomi_lisa/commit/09e0c6ad23ec651b2281672463d360a9b2b87d7c https://github.com/adithya2306/android_device_xiaomi_K9-sepolicy/commit/346519f7f272e45dd2be08db51669ff3700b1f90 Change-Id: I2ac8f83899a0866975aa6cbce26da9670b16843d Co-authored-by: Adithya R Co-authored-by: Pranav Vashi Signed-off-by: Pranav Vashi Signed-off-by: therealmharc --- rootdir/bin/init.dolby_fix.sh | 15 +++++++++++++++ rootdir/etc/init.qcom.rc | 10 ++++++++++ sepolicy/vendor/file_contexts | 3 +++ sepolicy/vendor/init-qcom-dolby-sh.te | 16 ++++++++++++++++ sm6150.mk | 4 ++++ 5 files changed, 48 insertions(+) create mode 100644 rootdir/bin/init.dolby_fix.sh create mode 100644 sepolicy/vendor/init-qcom-dolby-sh.te diff --git a/rootdir/bin/init.dolby_fix.sh b/rootdir/bin/init.dolby_fix.sh new file mode 100644 index 0000000..fc0ccb3 --- /dev/null +++ b/rootdir/bin/init.dolby_fix.sh @@ -0,0 +1,15 @@ +#!/vendor/bin/sh +# +# Copyright (C) 2022 Paranoid Android +# Copyright (C) 2025 The LineageOS Project +# +# SPDX-License-Identifier: Apache-2.0 +# + +fix_applied=$(getprop persist.vendor.audio.dolby_fix_applied) + +if [ "$fix_applied" != "true" ]; then + # Remove /data/vendor/dolby + rm -rf /data/vendor/dolby/* + setprop persist.vendor.audio.dolby_fix_applied true +fi diff --git a/rootdir/etc/init.qcom.rc b/rootdir/etc/init.qcom.rc index 1812bf4..19ba942 100644 --- a/rootdir/etc/init.qcom.rc +++ b/rootdir/etc/init.qcom.rc @@ -129,6 +129,9 @@ on boot enable vendor.dataadpl on post-fs-data + # Dolby + start vendor.init-dolby_fix-sh + # Create directory used by display clients mkdir /data/vendor/display 0770 system graphics @@ -299,3 +302,10 @@ service vendor.audio-hal /vendor/bin/hw/android.hardware.audio.service task_profiles ProcessCapacityHigh HighPerformance socket audio_hw_socket seqpacket 0666 system system onrestart restart audioserver + +service vendor.init-dolby_fix-sh /vendor/bin/init.dolby_fix.sh + class main + user media + group media + disabled + oneshot diff --git a/sepolicy/vendor/file_contexts b/sepolicy/vendor/file_contexts index 3c4f065..5fdd6cf 100644 --- a/sepolicy/vendor/file_contexts +++ b/sepolicy/vendor/file_contexts @@ -33,6 +33,9 @@ /(odm|vendor/odm)/bin/hw/vendor\.dolby_sp\.hardware\.dmssp@2\.0-service u:object_r:hal_dms_default_exec:s0 /(vendor|odm)/bin/hw/vendor\.dolby_sp\.media\.c2@1\.0-service u:object_r:mediacodec_exec:s0 +# Dolby Fix script +/vendor/bin/init\.dolby_fix\.sh u:object_r:vendor_init-dolby-sh_exec:s0 + # Fingerprint /dev/fortsense_fp u:object_r:fingerprint_device:s0 /dev/goodix_fp u:object_r:fingerprint_device:s0 diff --git a/sepolicy/vendor/init-qcom-dolby-sh.te b/sepolicy/vendor/init-qcom-dolby-sh.te new file mode 100644 index 0000000..62a6e66 --- /dev/null +++ b/sepolicy/vendor/init-qcom-dolby-sh.te @@ -0,0 +1,16 @@ +type vendor_init-dolby-sh, domain; +type vendor_init-dolby-sh_exec, exec_type, vendor_file_type, file_type; + +init_daemon_domain(vendor_init-dolby-sh) + +allow vendor_init-dolby-sh vendor_data_file:dir { rw_dir_perms setattr }; +allow vendor_init-dolby-sh vendor_data_file:file { rw_file_perms setattr unlink }; + +allow vendor_init-dolby-sh self:capability { fowner fsetid }; + +allow vendor_init-dolby-sh vendor_toolbox_exec:file { execute execute_no_trans getattr map open read }; +allow vendor_init-dolby-sh vendor_shell_exec:file { execute getattr map read }; + +set_prop(vendor_init-dolby-sh, vendor_audio_prop); + +dontaudit vendor_init-dolby-sh self:capability { dac_override dac_read_search }; diff --git a/sm6150.mk b/sm6150.mk index f43c8db..0c376d3 100644 --- a/sm6150.mk +++ b/sm6150.mk @@ -127,6 +127,10 @@ PRODUCT_PACKAGES += \ PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.hardware.opengles.aep.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.hardware.opengles.aep.xml +# Dolby +PRODUCT_COPY_FILES += \ + $(LOCAL_PATH)/rootdir/bin/init.dolby_fix.sh:$(TARGET_COPY_OUT_VENDOR)/bin/init.dolby_fix.sh + # DRM PRODUCT_PACKAGES += \ android.hardware.drm-service.clearkey