I have now reverted all my changes on the phone, and it seems that i still have the battery service, though with one attribute less.
gdbus introspect --system --dest org.bluez --object-path /org/bluez/hci0/dev_E8_0E_8D_62_88_72 -r -p
interface org.bluez.Battery1 {
properties:
readonly y Percentage = 0x64;
};
And after setting Experimental = true in /etc/bluetooth/main.conf.
interface org.bluez.Battery1 {
properties:
readonly y Percentage = 0x64;
readonly s Source = 'GATT Battery Service';
};
And of course 0x64 = 100.
So it seems we have all we need here, except downstream stuff like Pulse reporting back to Bluez the battery status they (for whatever reason) get hold of.