Add apex_defaults for consumerir HAL APEX

The IR HAL APEX can be defined by inheriting the default one. Note that
HAL in APEX can't load a legacy libhardware module from /vendor/lib/hw.
Instead, it tries to load the hardware module from the APEX. Hence, the
APEX inheriting this should embed it along with the HAL binary.

Bug: 300011390
Test: ConsumerIrTest VtsHalIrTargetTest hal_implementation_test
Change-Id: I14ab4a7e52195f630aa394f74a3f2852f6007ecc
This commit is contained in:
Jooyung Han 2023-09-21 21:08:18 +09:00
parent bddf425784
commit 367dbf3ac1
4 changed files with 59 additions and 2 deletions

View file

@ -36,8 +36,58 @@ cc_binary {
"liblog",
"libutils",
"android.hardware.ir-V1-ndk",
"libhardware"
"libhardware",
],
srcs: ["main.cpp"],
}
prebuilt_etc {
name: "android.hardware.ir-service.example.rc",
src: ":gen-android.hardware.ir-service.example.rc",
installable: false,
}
genrule {
name: "gen-android.hardware.ir-service.example.rc",
srcs: ["android.hardware.ir-service.example.rc"],
out: ["android.hardware.ir-service.example.apex.rc"],
cmd: "sed -e 's@/vendor/bin/@/apex/com.android.hardware.ir/bin/@' $(in) > $(out)",
}
prebuilt_etc {
name: "android.hardware.ir-service.example.xml",
src: "android.hardware.ir-service.example.xml",
sub_dir: "vintf",
installable: false,
}
filegroup {
name: "com.android.hardware.ir_file_contexts",
srcs: ["apex_file_contexts"],
}
filegroup {
name: "com.android.hardware.ir_apex_manifest.json",
srcs: ["apex_manifest.json"],
}
apex_defaults {
name: "com.android.hardware.ir",
// Reference to the filegroup instead of direct path since
// paths in defaults don't work in a different directory.
file_contexts: ":com.android.hardware.ir_file_contexts",
manifest: ":com.android.hardware.ir_apex_manifest.json",
updatable: false,
vendor: true,
binaries: [
"android.hardware.ir-service.example",
],
prebuilts: [
"android.hardware.ir-service.example.rc",
"android.hardware.ir-service.example.xml",
"android.hardware.consumerir.prebuilt.xml", // feature
],
}

View file

@ -1,4 +1,4 @@
service vendor.ir-default /vendor/bin/hw/android.hardware.ir-service.example
service vendor.ir-default /apex/com.android.hardware.ir/bin/hw/android.hardware.ir-service.example
class hal
user system
group system

View file

@ -0,0 +1,3 @@
(/.*)? u:object_r:vendor_file:s0
/etc(/.*)? u:object_r:vendor_configs_file:s0
/bin/hw/android\.hardware\.ir-service\.example u:object_r:hal_ir_default_exec:s0

View file

@ -0,0 +1,4 @@
{
"name": "com.android.hardware.ir",
"version": 1
}