diff options
author | Todd Poynor <toddpoynor@google.com> | 2017-11-06 18:14:25 -0800 |
---|---|---|
committer | Todd Poynor <toddpoynor@google.com> | 2018-02-05 19:48:30 +0000 |
commit | 4d7ee2ebbb17b0f43aa19304f28efff88c04a2a3 (patch) | |
tree | a44e7aa04623533b18e2005cf9046cf64b996ab8 | |
parent | 94e930551169f95593cd8732f8d9dcb452902ed0 (diff) | |
download | core-4d7ee2ebbb17b0f43aa19304f28efff88c04a2a3.tar.gz core-4d7ee2ebbb17b0f43aa19304f28efff88c04a2a3.tar.bz2 core-4d7ee2ebbb17b0f43aa19304f28efff88c04a2a3.zip |
healthd: don't report fake data for battery-less devices
If the kernel does not implement a power_supply class device of type
battery, do not report fake data, instead report the following by
default:
* batteryPresent = false (instead of true),
* charging status = unknown (instead of charging),
* capacity = 0 (instead of 100%),
* health = unknown (instead of good),
* AC charger online not modified (instead of forcing true)
If no charger and no battery devices are supplied by the kernel, the
AC charger online property will no longer be forced to true. Devices
that are always plugged into AC power should either implement a
power_supply class charger device or implement a Health HAL that sets
properties appropriately.
Bug: 34507420
Test: manual: gce_x6_phone (no battery or charger),
boots and stays booted, inspect properties
Merged-In: I14cb3b685e8130428e417e7d08c4246f7415210a
Change-Id: I64bd4431af10f3d232f36fcf8d356b6d88b08013
-rw-r--r-- | healthd/BatteryMonitor.cpp | 26 | ||||
-rw-r--r-- | healthd/include/healthd/BatteryMonitor.h | 1 |
2 files changed, 6 insertions, 21 deletions
diff --git a/healthd/BatteryMonitor.cpp b/healthd/BatteryMonitor.cpp index 676ee4151..08b8b269d 100644 --- a/healthd/BatteryMonitor.cpp +++ b/healthd/BatteryMonitor.cpp @@ -42,7 +42,6 @@ #define POWER_SUPPLY_SYSFS_PATH "/sys/class/" POWER_SUPPLY_SUBSYSTEM #define FAKE_BATTERY_CAPACITY 42 #define FAKE_BATTERY_TEMPERATURE 424 -#define ALWAYS_PLUGGED_CAPACITY 100 #define MILLION 1.0e6 #define DEFAULT_VBUS_VOLTAGE 5000000 @@ -81,8 +80,11 @@ static void initBatteryProperties(BatteryProperties* props) { props->batteryTechnology.clear(); } -BatteryMonitor::BatteryMonitor() : mHealthdConfig(nullptr), mBatteryDevicePresent(false), - mAlwaysPluggedDevice(false), mBatteryFixedCapacity(0), mBatteryFixedTemperature(0) { +BatteryMonitor::BatteryMonitor() + : mHealthdConfig(nullptr), + mBatteryDevicePresent(false), + mBatteryFixedCapacity(0), + mBatteryFixedTemperature(0) { initBatteryProperties(&props); } @@ -223,15 +225,6 @@ bool BatteryMonitor::update(void) { mBatteryFixedTemperature : getIntField(mHealthdConfig->batteryTemperaturePath); - // For devices which do not have battery and are always plugged - // into power souce. - if (mAlwaysPluggedDevice) { - props.chargerAcOnline = true; - props.batteryPresent = true; - props.batteryStatus = BATTERY_STATUS_CHARGING; - props.batteryHealth = BATTERY_HEALTH_GOOD; - } - std::string buf; if (readFromFile(mHealthdConfig->batteryStatusPath, &buf) > 0) @@ -405,11 +398,7 @@ status_t BatteryMonitor::getProperty(int id, struct BatteryProperty *val) { break; case BATTERY_PROP_BATTERY_STATUS: - if (mAlwaysPluggedDevice) { - val->valueInt64 = BATTERY_STATUS_CHARGING; - } else { - val->valueInt64 = getChargeStatus(); - } + val->valueInt64 = getChargeStatus(); ret = NO_ERROR; break; @@ -628,9 +617,6 @@ void BatteryMonitor::init(struct healthd_config *hc) { KLOG_WARNING(LOG_TAG, "No battery devices found\n"); hc->periodic_chores_interval_fast = -1; hc->periodic_chores_interval_slow = -1; - mBatteryFixedCapacity = ALWAYS_PLUGGED_CAPACITY; - mBatteryFixedTemperature = FAKE_BATTERY_TEMPERATURE; - mAlwaysPluggedDevice = true; } else { if (mHealthdConfig->batteryStatusPath.isEmpty()) KLOG_WARNING(LOG_TAG, "BatteryStatusPath not found\n"); diff --git a/healthd/include/healthd/BatteryMonitor.h b/healthd/include/healthd/BatteryMonitor.h index 8865a7d82..194e6679d 100644 --- a/healthd/include/healthd/BatteryMonitor.h +++ b/healthd/include/healthd/BatteryMonitor.h @@ -48,7 +48,6 @@ class BatteryMonitor { struct healthd_config *mHealthdConfig; Vector<String8> mChargerNames; bool mBatteryDevicePresent; - bool mAlwaysPluggedDevice; int mBatteryFixedCapacity; int mBatteryFixedTemperature; struct BatteryProperties props; |