summaryrefslogtreecommitdiffstats
path: root/healthd
diff options
context:
space:
mode:
authorTodd Poynor <toddpoynor@google.com>2017-11-06 18:14:25 -0800
committerTodd Poynor <toddpoynor@google.com>2018-02-05 19:48:30 +0000
commit4d7ee2ebbb17b0f43aa19304f28efff88c04a2a3 (patch)
treea44e7aa04623533b18e2005cf9046cf64b996ab8 /healthd
parent94e930551169f95593cd8732f8d9dcb452902ed0 (diff)
downloadsystem_core-4d7ee2ebbb17b0f43aa19304f28efff88c04a2a3.tar.gz
system_core-4d7ee2ebbb17b0f43aa19304f28efff88c04a2a3.tar.bz2
system_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
Diffstat (limited to 'healthd')
-rw-r--r--healthd/BatteryMonitor.cpp26
-rw-r--r--healthd/include/healthd/BatteryMonitor.h1
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;