If you own an Android device, it is unlikely that you haven't heard the term 'custom ROMs' and it is very likely that you are on one right now. Let's take a look at why custom ROMs have remained popular for this long after a brief overview of what they are, and why they are here to stay.
In essence, a custom ROM is a fork of Google's AOSP project with custom modifications, and hence the 'custom'. Thus, going by definition, even the firmware shipped with devices not owned by Google, are custom ROMs, only that they are proprietary versions, and not likely open-sourced (viz. you cannot modify them further than they already are).
When users switch to custom ROMs, for what reason is it? Where did OEMs go wrong? What made the users ditch their 'hard built' proprietary firmware for a custom firmware put together by a group of people in the mid-30's; working after their day-job? Underlying are some of the reasons for the same; I've tried to briefly capture why custom ROMs garner far more popularity than stock ROMs.
1. Speed & Usability
Devices seem to be getting faster and faster, with more and more clock-speeds, but the users never seem to get enough of it. All they want is more speed. Why else do you think that a normal user would want to overclock a perfectly working CPU? A similar analogy.
OEMs have firmware that are bloated beyond proportions. For what reasons? God knows. Why would Samsung S5's Stock firmware use up 8 GB of the 16 GB internal storage? HTC and Samsung are the two notorious names to look out for as they are well-known for filling their firmware with way more applications than needed (viz. Bloat)!
Even Google devices aren't spared as Google Apps (commonly known as gApps, the proprietary applications of Google that aren't included in AOSP) are getting bigger and bigger. It is not unlikely to buy a Google device now-a-days and not find the entirety of Google's application collection; most of it aren't needed; and the worst part being that you can't even uninstall them.
Every OEM tries their own spin-off at replacing Google Apps, but none are as persistent as Samsung, who are on a quest to replace every single app of Google with their own version.
Source: Ars Technica
This brings us to usability. Making the UI user-friendly is one case, cluttering it is completely another. The status bar, the one thing that quickly provides the user with information regarding the phone's status, notifications, etc. is not spared by most OEMs. Ryan Whitwam took out his frustration in a well worded G+ post, Status Bar Abuse, Lollipop Edition.
It seems that only devices running AOSP are the least screen-intensive status bars out there. Rightly worded by Ryan, he says:
Look at how that all compares to the Nexus UI. Exact same stuff enabled, and it takes up less than half the space of the others. This is stupid.
Let us not forget the UI modifications made by HTC, namely Sense(less), and Samsung's very own, hated by all, TouchWiz brrr... and other custom OEM skins, which are not really needed; when AOSP does the job just fine.
It wouldn't be wrong to say that these custom OEM skins sometimes make using the phone a harrowing experience, especially if you are searching for something, or have been accustomed to another custom OEM skin. At times, the OEM thinks that it would be better in design to move around stuff, and make things better for the user, and ends up doing exactly the opposite, which brings in undesired hatred towards themselves.
Custom ROMs stay as close as possible to the original AOSP design guidelines and barely move around stuff much making things easier for the users. Usability is thus not affected much (in the best case, becomes easier; and in the worst, still better than OEMs).
Due to Custom ROMs being bloat-free, they're pretty fast; faster than Stock ROMs in almost all cases, this being proven in benchmarks.
If you put your trust in benchmark scores you might as well say that dancing naked outside for five minutes improves performance.
sidenote: Let us not forget that Samsung tried to cheat its way through benchmarks, and eventually gave up the attempts with Android 4.4.4.
The fluidity of the ROM during usage matters to the user, and Custom ROMs beat proprietary firmwares hands down in this regard.
Borrowing a couple of points from the above point, this mostly focuses on the user interface, custom OEM skins, and its theme-ability. Users love to theme their devices, to their will.
In the heart of android lies the freedom to customize
Custom widgets, launchers, etc are just shallow dives in the depths of ~~this Atlantic~~ Android. Later versions of Android saw the rise of custom notifications, the increase in popularity of custom lockscreens, and custom lockscreen widgets; but what really took the users for a deep-sea dive was the OEMs implementation of themes. Providing support for the users to entirely (or partially) replace their own proprietary OEM skin with user-made skins took customization of Android to a whole new level. HTC saw the rise of this with custom Sense themes, Ringtone packs, etc. Xiaomi used this as an opportunity to expand their monopoly in the Chinese Market, with free/paid themes, games, etc.
Among proprietary firmware, MiUi sports the best theme engine, allowing theme-rs to modify almost every aspect of the system, making everything theme-able. Sadly, only a few OEMs took customization seriously; but the good thing is that other OEMs are slowly catching up. Samsung's S6 is said to feature a powerful theme engine; who'd ever thought that TouchWiz would have a theme engine!?
Custom ROMs like CyanogenMod and derivatives have had their own theme engine, known as the CM Theme Engine, which allow much theme ability since ICS. ChameleonOS (known as ChaOS) had an un-beatable theme engine (at a par with MiUi's theme engine, I might add), until CyanogenMod revamped its theme-engine thus leading to a whole new era of themes for Custom ROMs. The community saw some beautiful themes like Veu with the surfacing of the new theme engine.
The best part about custom ROMs is that allows users to enjoy the best of features out there; be it features like the Beats Audio Engine (by HTC), or Samsung's Multi Window (by Samsung, d'uh!), or even Active Display (of Motorola) in the same ROM. Do note that these features are not necessarily replicas of features found in proprietary firmwares, but open source implementations of the same (except Beats Audio Engine). Thus, want a feature on your phone? Just find a custom ROM that offers you the same. Want more features? Thanks to most custom ROMs being open-source, you can go ahead and build a custom ROM with all the features that you like.
There are two different types of features that you are most likely to look for. One being the features included in the ROM, like Active Display, Multi Window, etc; and another, the features included in the kernel, like Sweep2Wake, DoubleTap2Wake, Gesture Support, custom Thermal Engines, custom LCD KCAL Color Control drivers, etc. Thus, there's nothing to stop you from getting the feature you want, working on your device 🙂
Implementation of Multi-Window in Samsung and Custom ROMs (a comparison)
4. Battery Life
This is a double-edged sword. User reports suggest that custom ROMs can provide a better battery life than Stock firmware depending upon your choice of custom ROM and kernel, while in other cases, it can prove otherwise and be detrimental towards your battery life.
Custom ROMs provide security patches faster than OEM's OTA updates. As an example, OmniROM saw its kernels being patched for CVE-2014-0196, the notorious code-execution flaw that was undetected since 2009; and within a couple of days; all the devices were patched. With regular security updates, we can see that most kernel vulnerabilities which can be exploited by certain 'malware apps' can be fixed earlier, so that the user can go to sleep at peace. This involves the more recent CVE-2015-3636 (pingpong root) which is already en route to fixing on many devices with custom ROMs.
sidenote: You'll never know about these custom 'malware apps' that lurk around in the interwebs which use custom root exploits to gain access to your private data, like rage in the cage which , which is why you should always sideload apks from verified sources.
All of this finally leads to the numerous zero reason for custom ROMs.
6. After-market updates
Most OEMs are driven by a money-making marketing strategy, and rightly so, and do not focus on devices and rarely provide updates for the same. 'Flagship devices' escape this fate, and get updates for a couple of years till after their release, but the same cannot be said for other devices. Some devices do not get updates to the next android version even though it may be completely supported. Thus, the only way to get the next version of android working on your phone? Custom ROMs. That's how I got introduced into the world of custom ROMs. Fed up with waiting for HTC to release an update for my older phone, I remember google leading me to XDA-Developers, and me never looking back ever since. This is perhaps the case for most users. Even Nexus owners switch to custom ROMs for faster updates (since this year saw many different OEMs providing OTAs for Lollipop before OTAs were finally released for Nexus devices) and more features. Many devices abandoned by OEMs at as early as GingerBread, now have fully functional Lollipop, and if that doesn't convince you the power of what a few dedicated developers and Custom ROMs can do, I don't know what will.
Custom ROMs are here to stay. Increasing popularity saw OEMs pairing up with Custom ROMs for shipping with their devices, CyanogenMod and Yureka; and the newly recruited OxygenOS team and Oppo. Even OEMs are realizing the truth and slowly turning towards the inevitable, and I foresee a day where if not all, most OEMs will be shipping with custom ROMs and can't wait for it.