为无电池设备配置 AOSP?

Configure AOSP for a batteryless device?

我正在为类似 phone 的设备构建 Android AOSP 8.1 (Oreo),该设备是永久安装的(例如工业部署)并且没有电池。但是,当我给它通电时,它会显示充电指示灯和 6% 的电量读数。我必须更改什么才能告诉 Android 没有电池?我认为这是可能的,因为 Android 也可以在机顶盒等设备上运行。我可以删除此验证吗?我尝试修改./frameworks/base/services/core/java/com/android/server/BatteryService.java中的BatteryService.java,也尝试修改frameworks/base/core/res/res/values/config.xml但没有成功。非常欢迎任何帮助。

提前致谢。

官方文档描述了如何配置无电池设备:https://source.android.com/devices/tech/power/batteryless

有两种可能的方法:

implement a Linux kernel power_supply class charger driver for the AC or USB power source that sets its online sysfs attribute to true.

configure the AC charger online property in a Health HAL for your device.

正如 Simpl 提到的,AOSP 描述了如何配置无电池设备, 我在 Android 9 上为我的工业设备实现了健康 HAL,默认情况下没有电池,它显示电池未知(如 AOSP 文档中所述)。我的要求是在没有插入电池时显示电池 100%,在有电池时显示实际电池状态。

下面是我的健康 hal 中的代码片段,HealthService.cpp

int healthd_board_battery_update(struct android::BatteryProperties *props) {
    // return 0 to log periodic polled battery status to kernel log
    if (! props->batteryPresent){
    props->chargerAcOnline=true;
    props->batteryPresent = true;
    props->batteryStatus = android::BATTERY_STATUS_CHARGING;
    props->batteryHealth = android::BATTERY_HEALTH_GOOD;
    props->batteryFullCharge = 100;
    props->batteryLevel = 100;
    }
return 0;
    }
 

更多关于如何编写自己的健康HAL,请关注: https://android.googlesource.com/platform/hardware/interfaces/+/master/health/2.0/README.md