I think a lot of the problem is how proprietary some of the hardware is. For instance, the Raspberry pi only runs the raspberry pi kernel which has a lot of proprietary blobs.
Meanwhile boards from Pine64 don’t need proprietary software to boot. The achieve this by being selective with the hardware and hardware vendors.
I don’t think this is as much of a problem, proprietary hardware is a thing on x86 too. The two big problems are a lack of boot standardization, and vendors not upstreaming their device drivers. A lack of standardization means it is difficult or impossible to use a single image to boot across different devices, and the lack of upstream drivers means even if you solved the boot process, you won’t be able to interface with peripherals without using a very custom kernel.
True, one of the issues of Android is also cost and development time. Manufacturers want to develop a product as cheap and fast as possible to keep up with demand.
That’s true for all commercial development. No company wants to invest more than they have to. Upstreaming does save time in the long run, but not in the short term.
Technically Google could of made upstreaming easier or even the default but they instead modified the kernel a bunch and then encouraged bad practices in development.
There are of course trade offs to everything though. For instance, Qualcomm could do better.
I think a lot of the problem is how proprietary some of the hardware is. For instance, the Raspberry pi only runs the raspberry pi kernel which has a lot of proprietary blobs.
Meanwhile boards from Pine64 don’t need proprietary software to boot. The achieve this by being selective with the hardware and hardware vendors.
I don’t think this is as much of a problem, proprietary hardware is a thing on x86 too. The two big problems are a lack of boot standardization, and vendors not upstreaming their device drivers. A lack of standardization means it is difficult or impossible to use a single image to boot across different devices, and the lack of upstream drivers means even if you solved the boot process, you won’t be able to interface with peripherals without using a very custom kernel.
True, one of the issues of Android is also cost and development time. Manufacturers want to develop a product as cheap and fast as possible to keep up with demand.
That’s true for all commercial development. No company wants to invest more than they have to. Upstreaming does save time in the long run, but not in the short term.
Technically Google could of made upstreaming easier or even the default but they instead modified the kernel a bunch and then encouraged bad practices in development.
There are of course trade offs to everything though. For instance, Qualcomm could do better.