Merge changes from topic "health-v3" into main
* changes: fastboot: Add getvar commands to query battery part info. Update fastbootd to use Health AIDL HAL V3. Update healthd to use Health AIDL HAL V3. Update storaged to use Health AIDL HAL V3.
This commit is contained in:
commit
99a33df544
7 changed files with 90 additions and 6 deletions
|
@ -170,7 +170,7 @@ cc_binary {
|
|||
"android.hardware.fastboot@1.1",
|
||||
"android.hardware.fastboot-V1-ndk",
|
||||
"android.hardware.health@2.0",
|
||||
"android.hardware.health-V2-ndk",
|
||||
"android.hardware.health-V3-ndk",
|
||||
"libasyncio",
|
||||
"libbase",
|
||||
"libbinder_ndk",
|
||||
|
|
|
@ -82,3 +82,5 @@
|
|||
#define FB_VAR_TREBLE_ENABLED "treble-enabled"
|
||||
#define FB_VAR_MAX_FETCH_SIZE "max-fetch-size"
|
||||
#define FB_VAR_DMESG "dmesg"
|
||||
#define FB_VAR_BATTERY_SERIAL_NUMBER "battery-serial-number"
|
||||
#define FB_VAR_BATTERY_PART_STATUS "battery-part-status"
|
||||
|
|
|
@ -147,6 +147,8 @@ const std::unordered_map<std::string, VariableHandlers> kVariableMap = {
|
|||
{FB_VAR_SECURITY_PATCH_LEVEL, {GetSecurityPatchLevel, nullptr}},
|
||||
{FB_VAR_TREBLE_ENABLED, {GetTrebleEnabled, nullptr}},
|
||||
{FB_VAR_MAX_FETCH_SIZE, {GetMaxFetchSize, nullptr}},
|
||||
{FB_VAR_BATTERY_SERIAL_NUMBER, {GetBatterySerialNumber, nullptr}},
|
||||
{FB_VAR_BATTERY_PART_STATUS, {GetBatteryPartStatus, nullptr}},
|
||||
};
|
||||
|
||||
static bool GetVarAll(FastbootDevice* device) {
|
||||
|
|
|
@ -570,3 +570,79 @@ bool GetDmesg(FastbootDevice* device) {
|
|||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetBatterySerialNumber(FastbootDevice* device, const std::vector<std::string>&,
|
||||
std::string* message) {
|
||||
auto health_hal = device->health_hal();
|
||||
if (!health_hal) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (GetDeviceLockStatus()) {
|
||||
return device->WriteFail("Device is locked");
|
||||
}
|
||||
|
||||
*message = "unsupported";
|
||||
|
||||
int32_t version = 0;
|
||||
auto res = health_hal->getInterfaceVersion(&version);
|
||||
if (!res.isOk()) {
|
||||
return device->WriteFail("Unable to query battery data");
|
||||
}
|
||||
if (version >= 3) {
|
||||
using aidl::android::hardware::health::BatteryHealthData;
|
||||
|
||||
BatteryHealthData data;
|
||||
auto res = health_hal->getBatteryHealthData(&data);
|
||||
if (!res.isOk()) {
|
||||
return device->WriteFail("Unable to query battery data");
|
||||
}
|
||||
if (data.batterySerialNumber) {
|
||||
*message = *data.batterySerialNumber;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetBatteryPartStatus(FastbootDevice* device, const std::vector<std::string>&,
|
||||
std::string* message) {
|
||||
auto health_hal = device->health_hal();
|
||||
if (!health_hal) {
|
||||
return false;
|
||||
}
|
||||
|
||||
using aidl::android::hardware::health::BatteryPartStatus;
|
||||
|
||||
BatteryPartStatus status = BatteryPartStatus::UNSUPPORTED;
|
||||
|
||||
int32_t version = 0;
|
||||
auto res = health_hal->getInterfaceVersion(&version);
|
||||
if (!res.isOk()) {
|
||||
return device->WriteFail("Unable to query battery data");
|
||||
}
|
||||
if (version >= 3) {
|
||||
using aidl::android::hardware::health::BatteryHealthData;
|
||||
|
||||
BatteryHealthData data;
|
||||
auto res = health_hal->getBatteryHealthData(&data);
|
||||
if (!res.isOk()) {
|
||||
return device->WriteFail("Unable to query battery data");
|
||||
}
|
||||
status = data.batteryPartStatus;
|
||||
}
|
||||
switch (status) {
|
||||
case BatteryPartStatus::UNSUPPORTED:
|
||||
*message = "unsupported";
|
||||
break;
|
||||
case BatteryPartStatus::ORIGINAL:
|
||||
*message = "original";
|
||||
break;
|
||||
case BatteryPartStatus::REPLACED:
|
||||
*message = "replaced";
|
||||
break;
|
||||
default:
|
||||
*message = "unknown";
|
||||
break;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
|
|
@ -67,6 +67,10 @@ bool GetBatterySoC(FastbootDevice* device, const std::vector<std::string>& args,
|
|||
std::string* message);
|
||||
bool GetBatterySoCOk(FastbootDevice* device, const std::vector<std::string>& args,
|
||||
std::string* message);
|
||||
bool GetBatterySerialNumber(FastbootDevice* device, const std::vector<std::string>& args,
|
||||
std::string* message);
|
||||
bool GetBatteryPartStatus(FastbootDevice* device, const std::vector<std::string>& args,
|
||||
std::string* message);
|
||||
bool GetSuperPartitionName(FastbootDevice* device, const std::vector<std::string>& args,
|
||||
std::string* message);
|
||||
bool GetSnapshotUpdateStatus(FastbootDevice* device, const std::vector<std::string>& args,
|
||||
|
|
|
@ -76,7 +76,7 @@ cc_library_static {
|
|||
defaults: ["libbatterymonitor_defaults"],
|
||||
srcs: ["BatteryMonitor.cpp"],
|
||||
static_libs: [
|
||||
"android.hardware.health-V2-ndk",
|
||||
"android.hardware.health-V3-ndk",
|
||||
],
|
||||
whole_static_libs: [
|
||||
// Need to translate HIDL to AIDL to support legacy APIs in
|
||||
|
@ -203,12 +203,12 @@ cc_library_static {
|
|||
defaults: ["libhealthd_charger_ui_defaults"],
|
||||
|
||||
static_libs: [
|
||||
"android.hardware.health-V2-ndk",
|
||||
"android.hardware.health-V3-ndk",
|
||||
"android.hardware.health-translate-ndk",
|
||||
],
|
||||
|
||||
export_static_lib_headers: [
|
||||
"android.hardware.health-V2-ndk",
|
||||
"android.hardware.health-V3-ndk",
|
||||
],
|
||||
}
|
||||
|
||||
|
@ -280,7 +280,7 @@ cc_defaults {
|
|||
static_libs: [
|
||||
// common
|
||||
"android.hardware.health@1.0-convert",
|
||||
"android.hardware.health-V2-ndk",
|
||||
"android.hardware.health-V3-ndk",
|
||||
"libbatterymonitor",
|
||||
"libcharger_sysprop",
|
||||
"libhealthd_charger_nops",
|
||||
|
|
|
@ -24,7 +24,7 @@ cc_defaults {
|
|||
shared_libs: [
|
||||
"android.hardware.health@1.0",
|
||||
"android.hardware.health@2.0",
|
||||
"android.hardware.health-V2-ndk",
|
||||
"android.hardware.health-V3-ndk",
|
||||
"libbase",
|
||||
"libbinder",
|
||||
"libbinder_ndk",
|
||||
|
|
Loading…
Reference in a new issue