I have always wondered how one should be applying the Android patches onto any Linux kernel. Recently I had to do the same stuff. Here is a short description on how I androidized the 3.2 Linux kernel. I have added the Android patches to 3.2 Linux kernel for Vexpress-rtsm. Since the kernel was close to the upstream kernel there were no merge conflicts luckily.
Here is the vanilla Linux kernel to which Android patches were added:
Andy Green from the Landing team has provided a topic(linaro-androidization-tracking) branch for 3.2 Linux kernel:
Androidization process was just 4 step process:
Clone the Linux kernel and create a branch for androidization :
git clone http://git.linaro.org/git/people/dmart/linux-3-arm.git -b arm/vexpressdt-rtsm
git checkout -b android
Add the remote topic branch:
git remote add androidization git://git.linaro.org/landing-teams/working/ti/kernel.git
Fetch and rebase the kernel:
git fetch androidization
git rebase remotes/androidization/linaro-androidization-tracking
Add the necessary configs to the board-defconfig file to enable Android components in the kernel:
CONFIG_ASHMEM=y CONFIG_STAGING=y CONFIG_ANDROID=y CONFIG_ANDROID_BINDER_IPC=y CONFIG_ANDROID_LOGGER=y CONFIG_ANDROID_RAM_CONSOLE=y CONFIG_ANDROID_LOW_MEMORY_KILLER=y
Additionally I had to set “CONFIG_VMSPLIT_3G=y” for Android to boot on vexpress RTSM/Fastmodel.
The androidization patches are usually provided by Google but was not available for 3.2 kernel. For people working on 3.3 kernel, androidization patches are available from Google at: https://android.googlesource.com/kernel/common.git for the Android-3.3 branch.