It's been a while since I did any porting so things may have changed
(donut and eclair). I just did graphics, no other devices (sound,
gps, accelerometer, etc.). Specifically, I added support for an 555
RGB in 16 bits screen.
I found that Android is mostly forgiving of the Linux kernel version
as long as you have the correct Android specific kernel patches
applied. I applied the Android kernel patches to the board supplied
kernel sources.
Here is the list of Android files I changed for framebuffer support.
It may be under or over kill but I did get correct images on the
screen (until Android crashed running out of RAM):
simulator/app/PhoneData.cpp
include/core/SkBitmap.h
src/gl/SkGL.cpp
cmds/bootanimation/BootAnimation.cpp
core/jni/android/graphics/NinePatchImpl.cpp
core/jni/android/opengl/util.cpp
core/jni/android_view_Surface.cpp
core/jni/com_google_android_gles_jni_EGLImpl.cpp
graphics/jni/android_renderscript_RenderScript.cpp
include/ui/PixelFormat.h
libs/rs/rsAllocation.cpp
libs/rs/rsScriptC_Lib.cpp
libs/rs/rsUtils.h
libs/surfaceflinger/Layer.cpp
libs/surfaceflinger/LayerBase.cpp
libs/ui/GraphicBufferMapper.cpp
opengl/include/GLES/gl.h
opengl/include/GLES2/gl2.h
opengl/libagl/copybit.cpp
opengl/libagl/egl.cpp
opengl/libagl/mipmap.cpp
opengl/libagl/texture.cpp
include/hardware/copybit.h
include/hardware/hardware.h
modules/gralloc/framebuffer.cpp
modules/gralloc/gralloc.cpp
modules/overlay/overlay.cpp
include/pixelflinger/format.h
libpixelflinger/buffer.cpp
libpixelflinger/codeflinger/texturing.cpp
libpixelflinger/format.cpp