Optimizing Battery Management on Linux Phones: A Dive into PinePhone and Librem 5

I cannot get manage_librem_battery.service to work with my Librem5. The script runs as expected but the /sys/class/leds/chg_en/brightness content doesn’t seem to have any effect on the charging behavior.

The content of /sys/class/power_supply/max170xx_battery/status constantly switches between Charging and Discharging within a few seconds. The charging level is at 98%.

I noticed that /sys/class/power_supply/max170xx_battery/charge_type does not exist, but I am not sure if that is applicable.

This is shown in the log:

2026-01-18 23:05:08 Behaviour internal: Charging, Battery internal: 98%, int_charger: NA,
2026-01-18 23:07:38 Behaviour internal: Discharging, Battery internal: 98%, int_charger: NA,
2026-01-18 23:17:38 Behaviour internal: Discharging, Battery internal: 98%, int_charger: NA,
2026-01-18 23:27:38 Behaviour internal: Charging, Battery internal: 98%, int_charger: NA,
2026-01-18 23:37:38 Behaviour internal: Charging, Battery internal: 98%, int_charger: NA,

This is shown when I run the script manually:
98
int_bat_perc 98
int_charger_con NA
Current charging behaviour: 1
No change needed: Charging behaviour for max170xx_battery is already 1.
set inhibiting charger internal
98
int_bat_perc 98
int_charger_con NA
Current charging behaviour: 1
No change needed: Charging behaviour for max170xx_battery is already 1.
set inhibiting charger internal

Any hint on how to get it to work would be greatly appreciated.