2 ms·
And so we come to the root of the problem. Either Android/Linux needs a stable driver ABI, or somehow (looking at you Google) the hardware vendors have to be c
by zrm 10y ago
And so we come to the root of the problem.
Either Android/Linux needs a stable driver ABI, or somehow (looking at you Google) the hardware vendors have to be convinced to release driver source.
Last weekend I installed the latest Debian on a Pentium II from 1997. What madness that I can't install the latest Android on a three year old phone?
- kogepathic 10y ago> What madness that I can't install the latest Android on a three year old phone? Unfortunately I think this falls to Linus and the kernel developers. The ARM portions of the kernel are a fucking dumpster fire of epic proportions. Because every SoC vendor can bolt on different components, there is a truckload of one off code in the kernel to handle every variation of an SoC a vendor makes. Couple this with the fact that there are very few rules governing where and how vendors connect external devices via IO, and you have code for specific boards to ensure they work. It's simply not maintainable. Many ARM boards ship with heavily patched kernels, which while having their source code released, will never be merged into the mainline kernel because of lack of effort by the manufacturer or simply the kludgy nature of the code offending the good senses of kernel developers. Where Google can help is by preventing manufacturers from shipping a device with Android unless their kernel changes have been accepted to mainline Linux. This is the only way to ensure support for multiple years. Actually, that will only help devices which have Google Play Services. Since Android is open source Chinese manufacturers can just release their own builds based off AOSP which don't include Google Play Services and then Google has absolutely no recourse.
- fulafel 10y agoKernel ABI is not the dominant part of the problem. The stagefright debacle didn't have anything to do with the kernel or Linux ABIs. libstagefight is Android's own userspace library. Quadrooter was kind of related to ABIs in that it was inside Qualcomm's driver, but it would still have been trivial for vendors to just pop in a patched driver from Qualcomm and release a software update. They do all have systems ready for making software updates, since phones ~always get OTAs early in their lifetimes. A stable kernel ABI (so all vendors could have samed the same binary of the fixed driver) would not have made this significantly easier. The main problem is lack of product liability cases due to lack of high profile really bad things happening (malicious worm epidemic etc). If consumers demanded (and won) their money back from phone vendors due to security incidents, diligence wrt updates would get written into contracts between operators, phone vendors, SoC providers etc and it would work.