在我的 Android 系统上,有两个独立的 healthd 进程:
$ adb shell "ps -ef | grep health"
root 3535 1 3 14:33:18 ? 00:00:00 healthd
system 3548 1 5 14:33:18 ? 00:00:00 [email protected]
它们都使用
system/core/healthd
和 hardware/interfaces/health/2.0/default
中的相同代码,但只有 [email protected]
使用 vendor/nxp-opensource/imx/health
中的代码。
healthd
的构建/运行?更新:
两项服务的
.rc
文件不同:
smarc_mx8mq:/etc/init # cat healthd.rc
service healthd /system/bin/healthd
class hal
critical
group root system wakelock
smarc_mx8mq:/etc/init # cat /vendor/etc/init/[email protected]
service vendor.health-hal-2-0 /vendor/bin/hw/[email protected]
class hal
user system
group system
capabilities WAKE_ALARM
file /dev/kmsg w
从构建的系统中删除
/etc/init/healthd.rc
会导致原版 healthd 无法启动。 我还没有发现任何不良影响。
healthd 是 1.0 hal 版本,可以删除。参考:移除健康
有人解决了 GUI 中电池状态为“充电”和“放电”的问题吗?
在我的内核中,充电和放电正在完美地进行。
来自内核的日志:-
phyboard_polis:/ # cat /sys/class/power_supply/ltc4155-battery/status
收费
phyboard_polis:/ # cat /sys/class/power_supply/ltc4155-battery/status
放电
但是当我在hal中更新相同的内容时:方法HealthImpl::UpdateHealthInfo中的vendor/nxp-opensource/imx/health/health.cpp
状态更新发生相当延迟,可能会持续 30 秒。
知道如何解决内核更新状态后立即更新电池状态的问题吗?