Just in case you didn’t know, Android is built atop the Linux kernel. A few patches here, a few branches there, pepper in some code, and Android was created. Unfortunately a lot of the patches were never sent upstream, this means some of the hard work done by the engineers at Google never made it out of the phones and into desktop or server hardware. The Android Mainlining Project aims to solve this.
Greg Kroah-Hartman, head of the Linux Driver Project, has created a new project with 3 major goals in mind.
- To allow a developer to use the latest released version of the Linux kernel to run an Android system, without requiring patches to their kernel.
- To make it possible to develop drivers and board support features against either an Android kernel release or a kernel.org kernel release, with little or no modifications or conditional code.
- To reduce or eliminate the burden of maintaining independent patches from release to release for Android kernel developers.
This means all the Android-specific code that was purposely left out of kernel releases, will now be easier to implement and merge with the development branch of the 3.3 kernel. Systems like Android’s logging, low memory kills and wakelock power management will be branched-in, allowing for more hardware access to third party boards and systems with memory or power restraints.
In an e-mail to the Embedded Linux Kernel mailing-list, Tim Bird, Architecture Group Chair, CE Workgroup of the Linux Foundation, states that the project was born after discussion and re-evaluation code from Android. With a current stable kernel of 3.19, mainline at 3.2-rc7, there are only a few dot-releases before the project aims to be completed.
Numerous volunteers have signed up for the project, and many have started to contribute patches and code for smooth integration. Without support from Google and AOSP, it’s highly unlikely that both kernels will ever reach parity, but this is quite an excellent start in order to bridge the gap and create a unified kernel that will benefit all users.