What’s the difference between AOSP based ROMs & Lineage based ROMs?


As you know by now, AOSP is the most stock (factory) version of the Android OS, just as the makers of Android built it, without any additional modifications or features. Lineage OS, on the other hand, is a ‘modified’ AOSP ROM. You might have seen that some ROMs use AOSP as the base, while others use Lineage as the base. So what’s the primary difference between AOSP based ROMs and Lineage based ROMs?

AOSP, or Android, is served by Google, which is why, there is a set of Google apps (GApps) pre-bundled with AOSP ROMs; apps like Google Play Services, Play Store, Chrome, the Google App, etc. These apps are an integral part of the Android ecosystem, and are mandatory to be included in all certified Android devices. Back in the days, stock apps on AOSP (or vanilla Android) were just independent apps, and not a part of the GApps suite (if you remember, those were called ‘Phone’, ‘Calendar’, ‘Browser’, etc., instead of ‘Google Phone’, ‘Google Calendar’, and ‘Chrome’), but with time Google has added a set of proprietary apps and services even into AOSP. Even if you decide not to flash GApps on top of your AOSP-based ROM, there still are Google apps and services pre-installed into the system.

This is where Lineage is different. The Lineage base doesn’t include any Google stuff, and instead uses community-developed alternatives to keep the ROM free from Google apps and services. Basically, it is AOSP minus GApps. Therefore, any ROM built on top of Lineage doesn’t include the GApps, and it is made optional for the users if they wish to flash them separately.

There’s also a technical side. AOSP, because it is very barebone, would need hardware-specific patches (like from CAF for Snapdragon CPU based phones) to even be able to boot, which makes it relatively difficult to build. Lineage, on the other hand, has these patches already built and included into the base, which makes it a lot easier for a ROM developer to just compile and release the ROM. This is why you’ll come across more ROMs that use Lineage as a base and not AOSP.

To conclude, AOSP is the more barebone base, with only what the makers of Android put in it, because of which it is limited in terms of features, options, and even the number of devices it can run on. Lineage is a more feature-packed, advanced fork of AOSP with much more features, options, third-party drivers & necessary patches built in, and Google apps and services extracted out, making it the better choice for developers and end users alike. Again, for the very last time, in the form of a simple maths equation, AOSP + third-party drivers and patches + additional features and options – Google apps & services = LineageOS.

That’s all. Thanks for reading, now go flash!

  • Thank you! The explanation (above) answered most of my first level questions “clearly”. The second level details I would expect can start from this question: “How does Lineage OS handles proprietary user space drivers for which Qualcomm or Mediatek may not share the source code?”

    • Qualcomm does share the entirety of its source code over at CAF, including the kernel, hardware libs, and custom drivers that aren’t included in the native Android framework. MediaTek doesn’t. If, however, they decide not to share these codes, developers either have to find a way to extract those codes from the device itself, or find some kinda workaround.

      Regarding user drivers, those can be custom-developed or skipped altogether. It depends on the developers. Lineage OS sources them from CAF.

    • We were working on a detailed list of all the custom ROMs out there, but since we’re probably shifting this website to another domain, that list would go live on the new site. However, AOKP, AEX, Carbon, Copperhead, Dirty Unicorns, DotOS, Havoc, MIUI, Mokee are some popular ones that are built on AOSP.