What do I need to know to port Cyanogenmod to unsupported phones/tablets?

James T picture James T · Jan 2, 2012 · Viewed 18.2k times · Source

What do I need to know to port Cyanogenmod to currently unsupported android phones and tablets?

Does it involve modifying and building the kernel from source?

Does it involve modifying and building cyanogenmod from source?

Where can I get the base cyanogenmod which is the starting point for ports to specific devices?

I saw somewhere that I need to know c/c++. Would I also need to know Assembly or Java?

Do people write the device drivers for the new hardware from scratch? How do they know how to talk to the new hardware?

Do you use adb over usb and run linux commands like dmesg to get hints about what went wrong in initial builds? Do you use anything else to get hints about what went wrong?

I would like an overview of what is involved in porting Cyanogenmod to different hardware so that I can know what to learn, where to start, and where to go from there.

Answer

jclehner picture jclehner · Feb 29, 2012

I'd recommend that you read this post as an introduction:

http://forum.cyanogenmod.com/topic/15492-general-cyanogenmod-porting-discussion/

Also, it might be worth studying the /device/<MANUFACTURER>/<MODEL>/ directories which contain device-specific code (camera, sensors, lights, etc.) or other information (keycode configs, init scripts, etc.).

Finally, why not ask in dedicated Google Groups (android-porting for example, see http://source.android.com/community/index.html) or the CM forums (there's an Unofficial Ports section).

Also: use Google (or Bing, or Yahoo, whatever) - it took me approximately 3 minutes of my life.