> the kernel needs to be tailored to the specific phone
Out of interest, would it be possible to operate an ARM SoC system like a generic x86 system, if drivers were upstreamed? Or is there too much SoC specific code?
The problem is that in many cases there's no nice automatic way to probe for devices, you just have to know the board config ahead of time. That's why device tree is so great, if the hardware manufacturers cooperate and upstream their code then you'll end up with something like the IBM PC.