If you’ve spent any amount of time on XDA, you’ve heard of XDA Recognized Developer Cyanogen or the nearly ubiquitous CyanogenMod. In fact, chances are that at you’ve either run CyanogenMod on one of your devices at some point in the past, or you’re running it (or a kanged version) now. In many ways, CyanogenMod represented all that was good about Android Open Source Project (AOSP) and proceeded to go where the carriers and manufacturers were unwilling to take their devices. Along the way, Cyanogen inspired developers everywhere to reach for what was previously lacking in the Android community.
Cyanogen also saw an emerging trend which he wasn’t too happy about – the term “chef” being applied to the Android custom development scene, along with the emergence of the so-called “WinZip ROM.” So he created a thread back in 2010 to speak to this emerging trend and offer up some advice. The overriding theme was that contributing quality was far more important than contributing quantity on XDA.
He had this advice to offer for those looking to make their own Android ROMs:
Stop. Write an app or two first, learn how the system works from a developer standpoint. Learn some Java. Read the developer documentation. Learn how to use Git. Then learn how to build AOSP from source. Read the porting guides, and learn how the build system works….. Now try to put your new found skills to work on enhancing the platform by writing code or making theme overlays. And share! And put that s**t on your resume. There is a *ton* of information out there but any kind of “step-by-step rom cooking guide” is going to be a complete fail- it’s too broad of a subject.
As XDA has grown right along with the meteoric rise of Android, so has a desire of users to create their own ROMs, kernels, themes, and so on. Much of this work classifies as “original development,” but there’s been a growing trend to what many are calling “derivative development.” This category covers most of ROMs based on stock releases from the manufacturers, applying patches and scripts aimed at optimization, theming and/or removing stock applications, and using “kitchens” that run a stock release through a list of scripts and then repackage as a recovery-flashable update.zip. This is what Cyanogen was expressing frustration about—shortcuts being taken to achieve a product that differs only slightly from stock (derived) and pushed out instead of building from source and delving into the core of Android and making something truly original.
XDA-Developers exists first and foremost for developers. It’s at the core of who we are; it’s in our blood; and it’s in the air we breathe. There is a place for derivative works—they provide an entry to the scene which can help to introduce people to the wonders of Android. But let’s not stop there. Don’t be satisfied with just creating yet another derivative of someone else’s work. Instead, follow Cyanogen’s sage advice and learn about Android from the ground up, and create something truly original and innovative.
Here are some locations to help you on the path to learning about Android and contributing to the community as a whole:
- Android Developer Guides
- Working with Android Source
- Downloading the Android Source
- Git Tips and Tricks
- Building CyanogenMod
- Pro GIT Book
[Image courtesy of XDA Senior Moderator TheRomMistress.]_________
Want something on the XDA Portal? Send us a tip! -- Join us for xda:devcon 2014!