So it sounds like there was a battery concern? To avoid physical issues they severely capped the max charge on one of the two battery models used in these devices. However it seems that they wanted to keep this quiet so got some engineer to do a hack build rather than the usual CI?
Some obvious questions:
They are harming these users who they sold a defective device to. It is out of warranty but the right thing to do here would be a recall.
They aren’t being open about this, the honest thing would be to share information about whatever risk they are trying to mitigate. This could be important if these batteries are being used with third-party OSes or have been repurposed for uses outside of the original phone.
How can a random engineer sign and ship an update outside of the regular CI process. Shouldn’t this signing key be very locked down?
How can a random engineer sign and ship an update outside of the regular CI process. Shouldn’t this signing key be very locked down?
It’s a little more complicated than that. Apparently, only the kernel build was from a random engineer. The OS as a whole went through normal release processes. Apparently the kernel builds being separate and then getting vendored into the OS build is normal.
Yes, it’s terrible practice. Not going through CI usually means no control over what actually went into the binary because the environment it’s built in is not controlled. It’s hard to reproduce this build and there is an endless source of potential errors, like embedding the wrong version numbers (because CI usually takes care of version numbering), using the wrong branch, using the wrong compiler, using the wrong build flags, etc. There’s a reason why this stuff is automated and under strict version control.
It makes me feel marginally better. At least that indicates the signing key isn’t available to just anyone - presumably the config to include the hand-built kernel had to go through normal review and CI processes.
But it doesn’t make me feel that much better. The whole thing is still sketchy as hell.
Going from 4.45V to 3.95V is a massive jump. For context: most of the usable energy of a lithium ion battery is between it’s max charge voltage (eg 4.2V) and about 3.4V. Below that there is only a tiny bit of capacity, the voltage plummets quickly (lookup “lithium ion discharge curves”), the exact choice of low cutoff voltage (2.6-3V are common) is a bit arbitrary and only grants you a few more % at best.
It could be a well researched change with actual data behind it. But I vote corporate laziness instead, Google probably just doesn’t care and put pressure on the person to do something quickly and cheaply.
i don’t know if this was the case elsewhere, but in the uk google offered free battery swaps at EE stores or £40 for each device (i think regardless of the condition), which is probably fair for a 5 year old phone?
Most lithium batteries I’ve worked with have around 4.2V as the upper limit, so 4.45V was a bit surprising to me, but that is what the manufacturer states.
4.2V is the general recommendation, but indeed some cells are specced by the manufacturer to go higher. They like doing this in phones because it gets them a much better energy/volume ratio.
I have accidentally overcharged some small lipo pouch cells to 4.5V once before (faulty USB charger). I used them immediately to drain them back down, so at a minimum they didn’t immediately explode :P
So it sounds like there was a battery concern? To avoid physical issues they severely capped the max charge on one of the two battery models used in these devices. However it seems that they wanted to keep this quiet so got some engineer to do a hack build rather than the usual CI?
Some obvious questions:
It’s a little more complicated than that. Apparently, only the kernel build was from a random engineer. The OS as a whole went through normal release processes. Apparently the kernel builds being separate and then getting vendored into the OS build is normal.
That… doesn’t make me feel much better 😅
Yes, it’s terrible practice. Not going through CI usually means no control over what actually went into the binary because the environment it’s built in is not controlled. It’s hard to reproduce this build and there is an endless source of potential errors, like embedding the wrong version numbers (because CI usually takes care of version numbering), using the wrong branch, using the wrong compiler, using the wrong build flags, etc. There’s a reason why this stuff is automated and under strict version control.
It makes me feel marginally better. At least that indicates the signing key isn’t available to just anyone - presumably the config to include the hand-built kernel had to go through normal review and CI processes.
But it doesn’t make me feel that much better. The whole thing is still sketchy as hell.
Yeah, I’m sure that binary kernel they checked in was well reviewed. I guess it is at least traceable to a human.
Going from 4.45V to 3.95V is a massive jump. For context: most of the usable energy of a lithium ion battery is between it’s max charge voltage (eg 4.2V) and about 3.4V. Below that there is only a tiny bit of capacity, the voltage plummets quickly (lookup “lithium ion discharge curves”), the exact choice of low cutoff voltage (2.6-3V are common) is a bit arbitrary and only grants you a few more % at best.
It could be a well researched change with actual data behind it. But I vote corporate laziness instead, Google probably just doesn’t care and put pressure on the person to do something quickly and cheaply.
i don’t know if this was the case elsewhere, but in the uk google offered free battery swaps at EE stores or £40 for each device (i think regardless of the condition), which is probably fair for a 5 year old phone?
Most lithium batteries I’ve worked with have around 4.2V as the upper limit, so 4.45V was a bit surprising to me, but that is what the manufacturer states.
4.2V is the general recommendation, but indeed some cells are specced by the manufacturer to go higher. They like doing this in phones because it gets them a much better energy/volume ratio.
I have accidentally overcharged some small lipo pouch cells to 4.5V once before (faulty USB charger). I used them immediately to drain them back down, so at a minimum they didn’t immediately explode :P