tree: 9ddddb88a2f0a366dc34071f424b6d92ddefac05 [path history] [tgz]
  1. include/
  2. libhealthd/
  3. Android.bp
  4. android.hardware.health@1.0-service.rc
  5. convert.cpp
  6. Health.cpp
  7. Health.h
  8. HealthService.cpp
  9. README.md
health/1.0/default/README.md

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.

    # Install default binderized implementation to vendor.
    PRODUCT_PACKAGES += android.hardware.health@1.0-service
    
  2. Add proper VINTF manifest entry to your device manifest. Example:

    <hal format="hidl">
        <name>android.hardware.health</name>
        <transport>hwbinder</transport>
        <version>1.0</version>
        <interface>
            <name>IHealth</name>
            <instance>default</instance>
        </interface>
    </hal>
    
  3. Install the proper passthrough implemetation.

    1. If you want to use the default implementation (with default libhealthd), add the following to device.mk:

      PRODUCT_PACKAGES += \
          android.hardware.health@1.0-impl
      
    2. Otherwise, if you have a customized libhealthd.<board>:

      1. Define your passthrough implementation. Example (replace <device> and <board> accordingly):

        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>",
            ],
        }
        
      2. Add to device.mk.

        PRODUCT_PACKAGES += android.hardware.health@1.0-impl-<device>
        
      3. Define appropriate SELinux permissions.