Earlier quoted context omitted.
Not defending Google’s actions but it worth noting that not updating devices usually has to do with the SoC supplier ceasing support for the chip by not shipping BSPs which support new OS features. Yes google should have negotiated better support but it’s lack of support has to do more with inability to do so within reasonable means. They have projects ongoing to decouple OS functionality from the base firmware (proj…
> not updating devices usually has to do with the SoC supplier ceasing support for the chip by not shipping BSPs which support new OS features I don't know what a BSP is, but why can I update linux (or indeed almost any OS) on my PC without any support from the motherboard vendor? What OS features need SoC support, and why can the OS not live without them, when it was previously able to do so? This was the case befor…
Basically, PCs have 2 things going for them:
First, they use standardized, enumerable interfaces. You can boot an arbitrary Linux-based system and the kernel can ask the PCI bus "what hardware is installed?" using the same query on every machine, and get back an answer in the same format. "Embedded" devices don't have that, generally (ARM ServerReady does add this, and does create ARM-based hardware where you just stick in a random distro's USB stick and boot and it works).
Second, Linux on PCs tends to use upstream drivers. When you run ex. Ubuntu on a laptop, it talks to your ex. graphics card using a driver that's in Torvald's official tree. For... reasons... that I don't claim to understand but that probably involve cost-cutting, Android phones rely on drivers that are written by hardware vendors and then abandoned without any effort to get included upstream.
So the result is that in many cases you can boot vanilla Linux on an arbitrary phone or whatever, but it'll come up with access to the CPU, RAM, and USB (because that is still an enumerable bus using a standard interface), but it will have no idea how to query the rest of the hardware and if it did it wouldn't have any drivers to talk to that hardware with.
Edit: I should mention, a BSP is the ... "solution" that vendors use to pretend this whole thing is workable. It stands for board support package, which is a giant blob of source code that includes at minimum a copy of Linux with all their delightfully buggy custom drivers included and all the necessary hardware devices hard-coded so the system can find the hardware when it boots. And by find, of course, I mean "blindly assume it's there". On a good day this data is encoded in a device tree, which is a file format for "here's what hardware is in this system and how to talk to it (ports, memory addresses, whatever) ".