RK3288 手动设置电池电量

时间:2024-04-29 05:40:12

参考:[RK3288][Android6.0] 调试笔记 --- 电池电量一直显示100%

系统版本:RK3288 android 5.1 (与参考的变量和宏有点区别)

设备没有电池,在进行Fota升级时,提示电量不能低于30%,外接电源,可是读出来的电量是0%,无法进行升级,只能手动设置电池电量。

$ adb shell dumpsys battery  //通过adb查询电池信息
Current Battery Service state:
  AC powered: false
  USB powered: false
  Wireless powered: false
  status: 1
  health: 1
  present: true
  level: 0  //电池电量
  scale: 100
  voltage: 0
  temperature: 0
  technology:

diff --git a/system/core/healthd/BatteryMonitor.cpp b/system/core/healthd/BatteryMonitor.cpp
old mode
new mode
index d317b28..6b37dee
--- a/system/core/healthd/BatteryMonitor.cpp
+++ b/system/core/healthd/BatteryMonitor.cpp
@@ -, +, @@ #define POWER_SUPPLY_SUBSYSTEM "power_supply"
#define POWER_SUPPLY_SYSFS_PATH "/sys/class/" POWER_SUPPLY_SUBSYSTEM
-#define FAKE_BATTERY_CAPACITY 42
+#define FAKE_BATTERY_CAPACITY 100
#define FAKE_BATTERY_TEMPERATURE 424 namespace android {
@@ -, +, @@ void BatteryMonitor::init(struct healthd_config *hc) {
closedir(dir);
} - if (!mChargerNames.size())
+ if (!mChargerNames.size()) {
KLOG_ERROR(LOG_TAG, "No charger supplies found\n");
+ /*------------电池电量一直显示100%------------*/
+ mBatteryFixedCapacity = FAKE_BATTERY_CAPACITY; //电量 level
+ mBatteryFixedTemperature = FAKE_BATTERY_TEMPERATURE; //温度 temperature
+ mBatteryDevicePresent = true;
+ /*------------------------------------------------*/
+ }
if (!mBatteryDevicePresent) {
KLOG_WARNING(LOG_TAG, "No battery devices found\n");
hc->periodic_chores_interval_fast = -;

$ adb shell dumpsys battery
Current Battery Service state:
  AC powered: false
  USB powered: false
  Wireless powered: false
  status: 1
  health: 1
  present: true
  level: 100  //电池电量
  scale: 100
  voltage: 0
  temperature: 424
  technology: