platform_hardware_interfaces/health/2.0/utils
Yifan Hong a76a2bf65b health: drop backup instance for non-recovery.
For the core variant (system), clients like storaged
etc. should no longer access the "backup" instance, because
healthd is removed from the system image.

For the vendor variant, this would only break if a
vendor image were launched with Android O / O-MR1 (so
health@2.0 is not required), and were compiled against an
Android T (and above) source tree (which won't check
the "backup" instance). This shouldn't be a valid configuration.

For the recovery variant, the "backup" instance has a different
meaning. It points to

  android.hardware.health@2.0-impl-default.recovery

... which was assumed by OEMs to be always installed when a
vendor-specific libhealthd is not necessary. Hence, its behavior
is kept. See

  hardware/interfaces/health/2.0/README.md

android.hardware.health@2.0-impl-default.recovery, and subsequently the
special handling of recovery mode below, can be removed once health@2.1
is the minimum required version (i.e. compatibility matrix level 3 is
removed). Health 2.1 requires OEMs to install the implementation
to the recovery partition when it is necessary (i.e. on non-A/B devices,
where IsBatteryOk() is needed in recovery).

Test: pass
Bug: 203245871

Change-Id: Ife14f5bdaba20e4cf5bd0b954aea4d04a62009c4
2021-10-19 12:50:11 -07:00
..
libhealthhalutils health: drop backup instance for non-recovery. 2021-10-19 12:50:11 -07:00
libhealthservice [LSC] Add LOCAL_LICENSE_KINDS to hardware/interfaces 2021-02-21 20:36:55 -08:00
libhealthstoragedefault [LSC] Add LOCAL_LICENSE_KINDS to hardware/interfaces 2021-02-21 20:36:55 -08:00
README.md

libhealthhalutils

A convenience library for (hwbinder) clients of health HAL to choose between the "default" instance (served by vendor service) or "backup" instance (served by healthd). C++ clients of health HAL should use this library instead of calling IHealth::getService() directly.

Its Java equivalent can be found in BatteryService.HealthServiceWrapper.

libhealthservice

Common code for all (hwbinder) services of the health HAL, including healthd and vendor health service android.hardware.health@2.0-service(.<vendor>). main() in those binaries calls health_service_main() directly.

libhealthstoragedefault

Default implementation for storage related APIs for (hwbinder) services of the health HAL. If an implementation of the health HAL do not wish to provide any storage info, include this library. Otherwise, it should implement the following two functions:

void get_storage_info(std::vector<struct StorageInfo>& info) {
    // ...
}
void get_disk_stats(std::vector<struct DiskStats>& stats) {
    // ...
}