From 3022586712de9dc99674578bdb394153e1312e27 Mon Sep 17 00:00:00 2001 From: Konsta Date: Sat, 22 Mar 2025 01:48:55 +0200 Subject: [PATCH] cec: use vendor property for device & remove unneeded properties * Use vendor property to allow labeling it for SELinux. * Remove unneeded properties to set version and vendor id. Using the default values in any case. --- cec/HdmiCec.cpp | 20 +++++--------------- cec/HdmiCec.h | 3 --- sepolicy/hal_tv_hdmi_cec_default.te | 1 + sepolicy/property.te | 1 + sepolicy/property_contexts | 2 ++ vendor.prop | 2 +- 6 files changed, 10 insertions(+), 19 deletions(-) create mode 100644 sepolicy/property.te create mode 100644 sepolicy/property_contexts diff --git a/cec/HdmiCec.cpp b/cec/HdmiCec.cpp index 0886768..759aec1 100644 --- a/cec/HdmiCec.cpp +++ b/cec/HdmiCec.cpp @@ -29,9 +29,7 @@ #include "HdmiCec.h" -#define PROPERTY_CEC_DEVICE "persist.hdmi.cec_device" -#define PROPERTY_CEC_VERSION "ro.hdmi.cec_version" -#define PROPERTY_VENDOR_ID "ro.hdmi.vendor_id" +#define PROPERTY_CEC_DEVICE "persist.vendor.hdmi.cec_device" using android::base::GetProperty; using ndk::ScopedAStatus; @@ -75,8 +73,8 @@ ScopedAStatus HdmiCec::addLogicalAddress(CecLogicalAddress addr, Result* _aidl_r return ScopedAStatus::ok(); } - cecLogAddrs.cec_version = getCecVersion(); - cecLogAddrs.vendor_id = getVendorId(); + cecLogAddrs.cec_version = CEC_OP_CEC_VERSION_1_4; + cecLogAddrs.vendor_id = 0x000c03; // HDMI LLC vendor ID unsigned int logAddrType = CEC_LOG_ADDR_TYPE_UNREGISTERED; unsigned int allDevTypes = 0; @@ -166,12 +164,8 @@ ScopedAStatus HdmiCec::enableAudioReturnChannel(int32_t portId __unused, bool en return ScopedAStatus::ok(); } -int32_t HdmiCec::getCecVersion() { - return property_get_int32(PROPERTY_CEC_VERSION, CEC_OP_CEC_VERSION_1_4); -} - ScopedAStatus HdmiCec::getCecVersion(int32_t* _aidl_return) { - *_aidl_return = getCecVersion(); + *_aidl_return = CEC_OP_CEC_VERSION_1_4; return ScopedAStatus::ok(); } @@ -189,12 +183,8 @@ ScopedAStatus HdmiCec::getPhysicalAddress(int32_t* _aidl_return) { return ScopedAStatus::ok(); } -uint32_t HdmiCec::getVendorId() { - return property_get_int32(PROPERTY_VENDOR_ID, 0x000c03 /* HDMI LLC vendor ID */); -} - ScopedAStatus HdmiCec::getVendorId(int32_t* _aidl_return) { - *_aidl_return = getVendorId(); + *_aidl_return = 0x000c03; // HDMI LLC vendor ID return ScopedAStatus::ok(); } diff --git a/cec/HdmiCec.h b/cec/HdmiCec.h index 16eeb74..68b62fb 100644 --- a/cec/HdmiCec.h +++ b/cec/HdmiCec.h @@ -89,9 +89,6 @@ struct HdmiCec : public BnHdmiCec { */ bool mCecControlEnabled; - int32_t getCecVersion(); - uint32_t getVendorId(); - std::shared_ptr mCallback; }; diff --git a/sepolicy/hal_tv_hdmi_cec_default.te b/sepolicy/hal_tv_hdmi_cec_default.te index de20230..2ccb439 100644 --- a/sepolicy/hal_tv_hdmi_cec_default.te +++ b/sepolicy/hal_tv_hdmi_cec_default.te @@ -1 +1,2 @@ allow hal_tv_hdmi_cec_default cec_device:chr_file rw_file_perms; +get_prop(hal_tv_hdmi_cec_default, vendor_hdmi_config_prop) diff --git a/sepolicy/property.te b/sepolicy/property.te new file mode 100644 index 0000000..95b3006 --- /dev/null +++ b/sepolicy/property.te @@ -0,0 +1 @@ +vendor_internal_prop(vendor_hdmi_config_prop) diff --git a/sepolicy/property_contexts b/sepolicy/property_contexts new file mode 100644 index 0000000..08ea9af --- /dev/null +++ b/sepolicy/property_contexts @@ -0,0 +1,2 @@ +# CEC +persist.vendor.hdmi.cec_device u:object_r:vendor_hdmi_config_prop:s0 diff --git a/vendor.prop b/vendor.prop index 9ed4a0f..3fbc953 100644 --- a/vendor.prop +++ b/vendor.prop @@ -38,7 +38,7 @@ media.settings.xml=/vendor/etc/media_profiles_V1_0.xml ro.hardware.camera=libcamera # CEC -persist.hdmi.cec_device=cec0 +persist.vendor.hdmi.cec_device=cec0 ro.hdmi.device_type=4 # Chipset