diff --git a/ir/aidl/default/Android.bp b/ir/aidl/default/Android.bp index a8096c2758..4006554cd2 100644 --- a/ir/aidl/default/Android.bp +++ b/ir/aidl/default/Android.bp @@ -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 + ], +} diff --git a/ir/aidl/default/android.hardware.ir-service.example.rc b/ir/aidl/default/android.hardware.ir-service.example.rc index d27f282471..1a721daf5c 100644 --- a/ir/aidl/default/android.hardware.ir-service.example.rc +++ b/ir/aidl/default/android.hardware.ir-service.example.rc @@ -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 diff --git a/ir/aidl/default/apex_file_contexts b/ir/aidl/default/apex_file_contexts new file mode 100644 index 0000000000..3bbf131d2d --- /dev/null +++ b/ir/aidl/default/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\.ir-service\.example u:object_r:hal_ir_default_exec:s0 diff --git a/ir/aidl/default/apex_manifest.json b/ir/aidl/default/apex_manifest.json new file mode 100644 index 0000000000..d384375433 --- /dev/null +++ b/ir/aidl/default/apex_manifest.json @@ -0,0 +1,4 @@ +{ + "name": "com.android.hardware.ir", + "version": 1 +} \ No newline at end of file