From b808bd7d46eee8ff4d2689c1284b6e8049d54c35 Mon Sep 17 00:00:00 2001 From: Yifan Hong Date: Tue, 3 Dec 2019 12:51:42 -0800 Subject: [PATCH] health 1.0: add helper library for -impl Now that libhealthd is no longer recognized as a HAL_STATIC_LIBRARY, vendors must define their own android.hardware.health@1.0-impl module. Add a helper and README.md for them to explain this transition. Test: builds Bug: 127677771 Change-Id: I65c162e7b5caed93c39a4a1cb6a2893fbb25724b --- health/1.0/default/Android.bp | 16 +++++++-- health/1.0/default/README.md | 66 +++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 3 deletions(-) create mode 100644 health/1.0/default/README.md diff --git a/health/1.0/default/Android.bp b/health/1.0/default/Android.bp index e4e6ce7b4b..7581335a3a 100644 --- a/health/1.0/default/Android.bp +++ b/health/1.0/default/Android.bp @@ -18,10 +18,9 @@ cc_library_static { } -cc_library_shared { - name: "android.hardware.health@1.0-impl", +cc_library_static { + name: "android.hardware.health@1.0-impl-helper", vendor: true, - relative_install_path: "hw", srcs: ["Health.cpp"], header_libs: [ @@ -39,6 +38,17 @@ cc_library_shared { static_libs: [ "android.hardware.health@1.0-convert", + ], +} + +cc_library_shared { + name: "android.hardware.health@1.0-impl", + vendor: true, + relative_install_path: "hw", + + static_libs: [ + "android.hardware.health@1.0-impl-helper", + "android.hardware.health@1.0-convert", "libhealthd.default", ], } diff --git a/health/1.0/default/README.md b/health/1.0/default/README.md new file mode 100644 index 0000000000..1ded7dede5 --- /dev/null +++ b/health/1.0/default/README.md @@ -0,0 +1,66 @@ +# Implement the 2.1 HAL instead! + +It is strongly recommended that you implement the 2.1 HAL directly. See +`hardware/interfaces/health/2.1/README.md` for more details. + +# Implement Health 1.0 HAL + +1. Install common binderized service. The binderized service `dlopen()`s + passthrough implementations on the device, so there is no need to write + your own. + + ```mk + # Install default binderized implementation to vendor. + PRODUCT_PACKAGES += android.hardware.health@1.0-service + ``` + +1. Add proper VINTF manifest entry to your device manifest. Example: + + ```xml + + android.hardware.health + hwbinder + 1.0 + + IHealth + default + + + ``` + +1. Install the proper passthrough implemetation. + + 1. If you want to use the default implementation (with default `libhealthd`), + add the following to `device.mk`: + + ```mk + PRODUCT_PACKAGES += \ + android.hardware.health@1.0-impl + ``` + + 1. Otherwise, if you have a customized `libhealthd.`: + + 1. Define your passthrough implementation. Example (replace `` + and `` accordingly): + + ```bp + cc_library_shared { + name: "android.hardware.health@1.0-impl-", + vendor: true, + relative_install_path: "hw", + + static_libs: [ + "android.hardware.health@1.0-impl-helper", + "android.hardware.health@1.0-convert", + "libhealthd.", + ], + } + ``` + + 1. Add to `device.mk`. + + ``` + PRODUCT_PACKAGES += android.hardware.health@1.0-impl- + ``` + + 1. Define appropriate SELinux permissions.