From 4c4e9d36dad8b9add0a92d07377b8759d679f41d Mon Sep 17 00:00:00 2001 From: Thomas Makin Date: Mon, 10 Apr 2023 20:10:55 -0400 Subject: [PATCH] nx: Override and hide cec on vali * Again, we do not plan to support vali display hacks for the time being. If so, we will add env and do it that way. * filter-out CEC for vali because common trees assume that unified devices will all support CEC or none. Change-Id: I1df0d895de870a3ebd76825fe278997e83435922 --- AndroidBoard.mk | 6 ++++++ device.mk | 11 +++++++++++ initfiles/Android.mk | 24 ++++++++++++++++++++++++ initfiles/cec_disable.xml | 4 ++++ initfiles/init.vali.rc | 22 ++++++++++++++++++++++ initfiles/nx_cec.rc | 24 ++++++++++++++++++++++++ 6 files changed, 91 insertions(+) create mode 100644 initfiles/cec_disable.xml create mode 100644 initfiles/init.vali.rc create mode 100644 initfiles/nx_cec.rc diff --git a/AndroidBoard.mk b/AndroidBoard.mk index 19335a9..148133c 100644 --- a/AndroidBoard.mk +++ b/AndroidBoard.mk @@ -27,3 +27,9 @@ $(INSTALLED_DTBIMAGE_TARGET): $(INSTALLED_KERNEL_TARGET) | mkdtimg $(KERNEL_OUT)/arch/arm64/boot/dts/tegra210b01-frig.dtb --id=0x46524947 --rev=0xa00 ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_DTBIMAGE_TARGET) + +CEC_XML_SYMLINK := $(TARGET_OUT_VENDOR)/etc/permissions/android.hardware.hdmi.cec.xml +$(CEC_XML_SYMLINK): $(LOCAL_INSTALLED_MODULE) + $(hide) ln -sf /data/vendor/permissions/android.hardware.hdmi.cec.xml $@ + +ALL_DEFAULT_INSTALLED_MODULES += $(CEC_XML_SYMLINK) diff --git a/device.mk b/device.mk index cfeba4f..839ba7c 100644 --- a/device.mk +++ b/device.mk @@ -66,6 +66,7 @@ PRODUCT_PACKAGES += \ init.loki_foster_e_common.rc \ init.nx.rc \ init.recovery.nx.rc \ + init.vali.rc \ power.nx.rc # Permissions @@ -95,6 +96,16 @@ PRODUCT_PACKAGES += \ nvaudio_conf.xml endif +# CEC +PRODUCT_COPY_FILES := $(filter-out frameworks/native/data/etc/android.hardware.hdmi.cec.xml%android.hardware.hdmi.cec.xml,$(PRODUCT_COPY_FILES)) + +PRODUCT_COPY_FILES += \ + frameworks/native/data/etc/android.hardware.hdmi.cec.xml:$(TARGET_COPY_OUT_VENDOR)/etc/staging/android.hardware.hdmi.cec.xml + +PRODUCT_PACKAGES += \ + nx_cec.rc \ + cec_disable.xml + # Device Settings PRODUCT_PACKAGES += \ DeviceSettingsNX diff --git a/initfiles/Android.mk b/initfiles/Android.mk index 82b665c..e62256c 100644 --- a/initfiles/Android.mk +++ b/initfiles/Android.mk @@ -29,6 +29,14 @@ LOCAL_VENDOR_MODULE := true LOCAL_MODULE_RELATIVE_PATH := init/hw include $(BUILD_PREBUILT) +include $(CLEAR_VARS) +LOCAL_MODULE := init.vali.rc +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := init.vali.rc +LOCAL_VENDOR_MODULE := true +LOCAL_MODULE_RELATIVE_PATH := init/hw +include $(BUILD_PREBUILT) + include $(CLEAR_VARS) LOCAL_MODULE := init.frig.rc LOCAL_MODULE_CLASS := ETC @@ -83,3 +91,19 @@ LOCAL_MODULE_SUFFIX := .sh LOCAL_INIT_RC := wifi_reset.rc LOCAL_MODULE_CLASS := EXECUTABLES include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := nx_cec.rc +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := nx_cec.rc +LOCAL_VENDOR_MODULE := true +LOCAL_MODULE_RELATIVE_PATH := init +include $(BUILD_PREBUILT) + +include $(CLEAR_VARS) +LOCAL_MODULE := cec_disable.xml +LOCAL_MODULE_CLASS := ETC +LOCAL_SRC_FILES := cec_disable.xml +LOCAL_VENDOR_MODULE := true +LOCAL_MODULE_RELATIVE_PATH := staging +include $(BUILD_PREBUILT) diff --git a/initfiles/cec_disable.xml b/initfiles/cec_disable.xml new file mode 100644 index 0000000..922e099 --- /dev/null +++ b/initfiles/cec_disable.xml @@ -0,0 +1,4 @@ + + + + diff --git a/initfiles/init.vali.rc b/initfiles/init.vali.rc new file mode 100644 index 0000000..392c007 --- /dev/null +++ b/initfiles/init.vali.rc @@ -0,0 +1,22 @@ +# Copyright (C) 2023 The LineageOS 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. + +# Override and disable cec HAL +service vendor.cec-hal-1-0 /vendor/bin/hw/android.hardware.tv.cec@1.0-service + override + interface android.hardware.tv.cec@1.0::IHdmiCec default + class hal + user system + group system + disabled diff --git a/initfiles/nx_cec.rc b/initfiles/nx_cec.rc new file mode 100644 index 0000000..5cc75fe --- /dev/null +++ b/initfiles/nx_cec.rc @@ -0,0 +1,24 @@ +# Copyright (C) 2023 The LineageOS 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. + +on property:vold.post_fs_data_done=1 + mkdir /data/vendor/permissions/ 0755 system system + chown system system /data/vendor/permissions/android.hardware.hdmi.cec.xml + rm /data/vendor/permissions/android.hardware.hdmi.cec.xml + +on property:vold.post_fs_data_done=1 && property:ro.boot.hardware.sku=vali + symlink /vendor/etc/staging/cec_disable.xml /data/vendor/permissions/android.hardware.hdmi.cec.xml + +on property:vold.post_fs_data_done=1 + symlink /vendor/etc/staging/android.hardware.hdmi.cec.xml /data/vendor/permissions/android.hardware.hdmi.cec.xml