diff --git a/current.txt b/current.txt index adc8a54493..860a034945 100644 --- a/current.txt +++ b/current.txt @@ -616,7 +616,7 @@ dd377f404a8e71f6191d295e10067db629b0f0c28e594af906f2bea5d87fe2cc android.hardwar f284ffde7cadf5a1364b75ab313baf22401eeca289bdde2a2dc7a27ea4ab98d7 android.hardware.dumpstate@1.1::IDumpstateDevice ce8dbe76eb9ee94b46ef98f725be992e760a5751073d4f4912484026541371f3 android.hardware.health@2.1::IHealth 26f04510a0b57aba5167c5c0a7c2f077c2acbb98b81902a072517829fd9fd67f android.hardware.health@2.1::IHealthInfoCallback -db47f4ceceb1f06c656f39caa70c557b0f8471ef59fd58611bea667ffca20101 android.hardware.health@2.1::types +30e5d878099aeca710420dfc438d115bbbdcdbe84ad1b05a0f5e01debc3ef3af android.hardware.health@2.1::types 0589e410f519e36514e7ece18f283f022df0f70efd2c12821d822f67f74aba98 android.hardware.identity@1.0::types bbeee9604128ede83ee755b67e73b5ad29e6e1dbac9ec41fea6ffe2745b0c50a android.hardware.identity@1.0::IIdentityCredential 96ce8aad80f4c476f25261f790d357c117e79e18474c7dadd850dac704bbe65e android.hardware.identity@1.0::IIdentityCredentialStore diff --git a/health/2.1/types.hal b/health/2.1/types.hal index efd8d6f675..d99f63f92f 100644 --- a/health/2.1/types.hal +++ b/health/2.1/types.hal @@ -84,12 +84,12 @@ struct HealthInfo { int64_t batteryChargeTimeToFullNowSeconds; /** - * Estimated battery full capacity (in microamp hours, uAh). + * Estimated battery full charge design capacity (in microamp hours, uAh). + * batteryFullCharge must be less than (value * 1000). * Value must be 0 if unknown. - * Value must be positive if known, and must be between [50%, 120%] of - * batteryFullCharge (the designed capacity). + * Value must be positive if known. */ - int32_t batteryFullCapacityUah; + int32_t batteryFullChargeDesignCapacityUah; }; /** diff --git a/health/2.1/vts/functional/VtsHalHealthV2_1TargetTest.cpp b/health/2.1/vts/functional/VtsHalHealthV2_1TargetTest.cpp index e75b299b0b..ea69527ae3 100644 --- a/health/2.1/vts/functional/VtsHalHealthV2_1TargetTest.cpp +++ b/health/2.1/vts/functional/VtsHalHealthV2_1TargetTest.cpp @@ -228,17 +228,18 @@ TEST_P(HealthHidlTest, getHealthInfo_2_1) { return; } ASSERT_EQ(Result::SUCCESS, result); - const auto& legacy = value.legacy.legacy; EXPECT_TRUE(IsEnum(value.batteryCapacityLevel)) << " BatteryCapacityLevel"; EXPECT_GE(value.batteryChargeTimeToFullNowSeconds, 0); - EXPECT_GE(value.batteryFullCapacityUah, 0) - << "batteryFullCapacityUah should not be negative"; + EXPECT_GE(value.batteryFullChargeDesignCapacityUah, 0) + << "batteryFullChargeDesignCapacityUah should not be negative"; - if (value.batteryFullCapacityUah > 0) { - EXPECT_GE(value.batteryFullCapacityUah, legacy.batteryFullCharge * 0.50); - EXPECT_LE(value.batteryFullCapacityUah, legacy.batteryFullCharge * 1.20); + // Check for extreme outliers + const auto& legacy = value.legacy.legacy; + if (value.batteryFullChargeDesignCapacityUah > 0) { + EXPECT_LT((long)legacy.batteryFullCharge, + ((long)value.batteryFullChargeDesignCapacityUah * 1000)); } }))); } diff --git a/health/utils/libhealthloop/utils.cpp b/health/utils/libhealthloop/utils.cpp index ebfd8d8c6a..053fd19fe2 100644 --- a/health/utils/libhealthloop/utils.cpp +++ b/health/utils/libhealthloop/utils.cpp @@ -42,6 +42,7 @@ void InitHealthdConfig(struct healthd_config* healthd_config) { .batteryCycleCountPath = String8(String8::kEmptyString), .batteryCapacityLevelPath = String8(String8::kEmptyString), .batteryChargeTimeToFullNowPath = String8(String8::kEmptyString), + .batteryFullChargeDesignCapacityUahPath = String8(String8::kEmptyString), .energyCounter = NULL, .boot_min_cap = 0, .screen_on = NULL,