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
This commit is contained in:
Yifan Hong
2019-12-03 12:51:42 -08:00
parent 891220af48
commit b808bd7d46
2 changed files with 79 additions and 3 deletions

View File

@@ -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",
],
}

View File

@@ -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
<hal format="hidl">
<name>android.hardware.health</name>
<transport>hwbinder</transport>
<version>1.0</version>
<interface>
<name>IHealth</name>
<instance>default</instance>
</interface>
</hal>
```
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.<board>`:
1. Define your passthrough implementation. Example (replace `<device>`
and `<board>` accordingly):
```bp
cc_library_shared {
name: "android.hardware.health@1.0-impl-<device>",
vendor: true,
relative_install_path: "hw",
static_libs: [
"android.hardware.health@1.0-impl-helper",
"android.hardware.health@1.0-convert",
"libhealthd.<board>",
],
}
```
1. Add to `device.mk`.
```
PRODUCT_PACKAGES += android.hardware.health@1.0-impl-<device>
```
1. Define appropriate SELinux permissions.