healthd: Reports arbitrary numbers for capacity and temperature when
connected to fake battery.
Detects if the device is attached to a fake battery if yes, healthd
reports 42% battery charge and 42.2 degrees temperature.
Change-Id: I2508fd91c8d3848ea64f57ab59d20be1c2817913
diff --git a/healthd/BatteryMonitor.cpp b/healthd/BatteryMonitor.cpp
index 1ee33a1..4a6b702 100644
--- a/healthd/BatteryMonitor.cpp
+++ b/healthd/BatteryMonitor.cpp
@@ -35,6 +35,8 @@
#define POWER_SUPPLY_SUBSYSTEM "power_supply"
#define POWER_SUPPLY_SYSFS_PATH "/sys/class/" POWER_SUPPLY_SUBSYSTEM
+#define FAKE_BATTERY_CAPACITY 42
+#define FAKE_BATTERY_TEMPERATURE 424
namespace android {
@@ -530,11 +532,11 @@
KLOG_WARNING(LOG_TAG, "BatteryTechnologyPath not found\n");
}
- if (property_get("persist.sys.battery.capacity", pval, NULL) > 0)
- mBatteryFixedCapacity = (int) strtol(pval, NULL, 10);
-
- if (property_get("persist.sys.battery.temperature", pval, NULL) > 0)
- mBatteryFixedTemperature = (int) strtol(pval, NULL, 10);
+ if (property_get("ro.boot.fake_battery", pval, NULL) > 0
+ && strtol(pval, NULL, 10) != 0) {
+ mBatteryFixedCapacity = FAKE_BATTERY_CAPACITY;
+ mBatteryFixedTemperature = FAKE_BATTERY_TEMPERATURE;
+ }
}
}; // namespace android