From 59af7f93ebfb78ad3630725f55439f59a6385129 Mon Sep 17 00:00:00 2001 From: Konsta Date: Fri, 21 Mar 2025 23:21:07 +0200 Subject: [PATCH] hdmi: cec: convert to apex --- device.mk | 2 +- hdmi/cec/Android.bp | 32 +++++++++++++++++-- ...ndroid.hardware.tv.hdmi.cec-service.rpi.rc | 2 +- hdmi/cec/apex_file_contexts | 3 ++ hdmi/cec/apex_manifest.json | 4 +++ sepolicy/file_contexts | 1 - 6 files changed, 39 insertions(+), 5 deletions(-) create mode 100644 hdmi/cec/apex_file_contexts create mode 100644 hdmi/cec/apex_manifest.json diff --git a/device.mk b/device.mk index 94fc498..fc6e1a9 100644 --- a/device.mk +++ b/device.mk @@ -138,7 +138,7 @@ PRODUCT_COPY_FILES += \ # CEC PRODUCT_PACKAGES += \ - android.hardware.tv.hdmi.cec-service.rpi \ + com.android.hardware.tv.hdmi.cec.rpi5 \ android.hardware.tv.hdmi.connection-service.rpi PRODUCT_COPY_FILES += \ diff --git a/hdmi/cec/Android.bp b/hdmi/cec/Android.bp index d2bb6f7..4b243e1 100644 --- a/hdmi/cec/Android.bp +++ b/hdmi/cec/Android.bp @@ -6,8 +6,6 @@ cc_binary { name: "android.hardware.tv.hdmi.cec-service.rpi", relative_install_path: "hw", - init_rc: ["android.hardware.tv.hdmi.cec-service.rpi.rc"], - vintf_fragments: ["android.hardware.tv.hdmi.cec-service.rpi.xml"], vendor: true, srcs: [ "HdmiCec.cpp", @@ -22,4 +20,34 @@ cc_binary { "libhardware", "liblog", ], + installable: false, +} + +prebuilt_etc { + name: "android.hardware.tv.hdmi.cec-service.rpi.rc", + src: "android.hardware.tv.hdmi.cec-service.rpi.rc", + installable: false, +} + +prebuilt_etc { + name: "android.hardware.tv.hdmi.cec-service.rpi.xml", + src: "android.hardware.tv.hdmi.cec-service.rpi.xml", + sub_dir: "vintf", + installable: false, +} + +apex { + name: "com.android.hardware.tv.hdmi.cec.rpi5", + manifest: "apex_manifest.json", + file_contexts: "apex_file_contexts", + key: "com.android.hardware.key", + certificate: ":com.android.hardware.certificate", + updatable: false, + vendor: true, + + binaries: ["android.hardware.tv.hdmi.cec-service.rpi"], + prebuilts: [ + "android.hardware.tv.hdmi.cec-service.rpi.rc", + "android.hardware.tv.hdmi.cec-service.rpi.xml", + ], } diff --git a/hdmi/cec/android.hardware.tv.hdmi.cec-service.rpi.rc b/hdmi/cec/android.hardware.tv.hdmi.cec-service.rpi.rc index 257b917..22739b6 100644 --- a/hdmi/cec/android.hardware.tv.hdmi.cec-service.rpi.rc +++ b/hdmi/cec/android.hardware.tv.hdmi.cec-service.rpi.rc @@ -1,4 +1,4 @@ -service vendor.cec-default /vendor/bin/hw/android.hardware.tv.hdmi.cec-service.rpi +service vendor.cec-rpi /apex/com.android.hardware.tv.hdmi.cec.rpi5/bin/hw/android.hardware.tv.hdmi.cec-service.rpi interface aidl android.hardware.tv.hdmi.cec.IHdmiCec/default class hal user system diff --git a/hdmi/cec/apex_file_contexts b/hdmi/cec/apex_file_contexts new file mode 100644 index 0000000..d6dd2a7 --- /dev/null +++ b/hdmi/cec/apex_file_contexts @@ -0,0 +1,3 @@ +(/.*)? u:object_r:vendor_file:s0 +/etc(/.*)? u:object_r:vendor_configs_file:s0 +/bin/hw/android\.hardware\.tv\.hdmi\.cec-service\.rpi u:object_r:hal_tv_hdmi_cec_default_exec:s0 diff --git a/hdmi/cec/apex_manifest.json b/hdmi/cec/apex_manifest.json new file mode 100644 index 0000000..151f8f5 --- /dev/null +++ b/hdmi/cec/apex_manifest.json @@ -0,0 +1,4 @@ +{ + "name": "com.android.hardware.tv.hdmi.cec.rpi5", + "version": 1 +} diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts index 7e09201..731cc85 100644 --- a/sepolicy/file_contexts +++ b/sepolicy/file_contexts @@ -6,7 +6,6 @@ /dev/cec1 u:object_r:cec_device:s0 /sys/devices/platform/axi/axi:gpu/drm/card1/card1-HDMI-A-1/status u:object_r:sysfs_hdmi:s0 /sys/devices/platform/axi/axi:gpu/drm/card1/card1-HDMI-A-2/status u:object_r:sysfs_hdmi:s0 -/vendor/bin/hw/android\.hardware\.tv\.hdmi\.cec-service\.rpi u:object_r:hal_tv_hdmi_cec_default_exec:s0 /vendor/bin/hw/android\.hardware\.tv\.hdmi\.connection-service\.rpi u:object_r:hal_tv_hdmi_connection_default_exec:s0 # DRM