View Single Post
Posts: 71 | Thanked: 36 times | Joined on Nov 2009 @ CT, USA
#50
I'm not that experience with Android myself, but there was some interesting stuff written recently with the spat between the kernel maintainers and the Android team about removal of the source from the staging tree.

The Android kernel code is more than just the few weird drivers that were in the drivers/staging/android subdirectory in the kernel. In order to get a working Android system, you need the new lock type they have created, as well as hooks in the core system for their security model.

In order to write a driver for hardware to work on Android, you need to properly integrate into this new lock, as well as sometimes the bizarre security model. Oh, and then there's the totally-different framebuffer driver infrastructure as well.

This means that any drivers written for Android hardware platforms, can not get merged into the main kernel tree because they have dependencies on code that only lives in Google's kernel tree, causing it to fail to build in the kernel.org tree.

Because of this, Google has now prevented a large chunk of hardware drivers and platform code from ever getting merged into the main kernel tree. Effectively creating a kernel branch that a number of different vendors are now relying on.

Now branches in the Linux kernel source tree are fine and they happen with every distro release. But this is much worse. Because Google doesn't have their code merged into the mainline, these companies creating drivers and platform code are locked out from ever contributing it back to the kernel community. The kernel community has for years been telling these companies to get their code merged, so that they can take advantage of the security fixes, and handle the rapid API churn automatically. And these companies have listened, as is shown by the larger number of companies contributing to the kernel every release.

source:http://www.kroah.com/log/linux/andro...html?seemore=y
So it's mostly a standard kernel with some out of tree patches. I believe the dispute was resolved and Google/OHA have promised to work to get the patches back into mainline. But it appear that the biggest problem is drivers (not surprisingly); maybe dj_steve has some perspective on this based on this nitdroid experience?