Android - What is the difference between AOSP and AOKP?

AOSP (Android Open-Source Project) is the project with the open-source parts of Android. It's used as a base by anyone who wants to build or customize an Android ROM. Although new Android features are developed in secret inside Google, when a new Android version is released, all the code changes to the open-source parts get merged into AOSP soon afterwards. ("Soon" is a relative term: sometimes it's not very soon at all.) Conversely, Google receives and incorporates changes submitted to AOSP (such as to fix bugs) from outside, but sometimes with a delay (because they have to create a release branch of the source long before the next release).

AOSP doesn't include the closed-source components: mainly, that's hardware drivers, and Google's special apps that only ship with certified devices (Google Play, Google Now, etc).

AOKP is one particular custom-rom project. Like other custom ROMs, it's based on AOSP, but adds extra features. The maintainers also need to find (possibly closed-source) drivers for all the hardware on a device in order to support that device.

Generally, most people use the term stock ROM to mean the manufacturer's ROM that came with their device (possibly including any OTA updates). As t0mm13b points out, this ROM almost certainly wasn't built from AOSP: the source will be based on AOSP (or Google's internal sources, if the manufacturer is big enough to have access to them), but it will include any drivers for that device, as well as the manufacturer's customizations such as Samsung's TouchWiz or HTC's Sense.

If you're interested in the discussion of what exactly constitutes a "stock ROM", you might like to read the comments on this answer from last year. TL;DR: authors of custom ROMs don't all use the term to mean the same thing.


When referring to AOSP - you are referring to the original source - Android Open Source Project direct from Google, that is the base stock ROM that manufacturers and ROM modders use as a base. Many ROM makers fork the AOSP source for their version, to name but a few:

  • Lineageos
  • Cyanogenmod
  • Cafogen
  • Replicant
  • Codeaurora
  • AOKP
  • Touchwiz

Having an AOSP stock ROM is not an easy feat to achieve for devices outside of Google's supporting devices such as Nexus, Motorola. It is a simple and clean ROM with no extras in it such as power-widgets in the notification bar. Thing is, a lot of people seem to imply that any version of a ROM is based on stock ROM, truth be told, it is not, it has enhancements and extras that Stock ROM does not have! :)

The term stock ROM is bandied about a lot to an extent it can be misleading, stock ROM is AOSP full-stop! Manufacturers love to imply that their ROM is stock when it clearly is not, Touchwiz from Samsung is one culprit - and people who use Samsung devices, refer to that as stock!

AOKP, as per the OP's question, is similar to CyanogenMod - with extras that may not be found in Cyanogenmod! Android Open Kang Project, Kang being the keyword, meaning a copy-of, or unofficial, when a ROM modder says, "this project is kanged from CM", meaning, its built unofficially for the device in question, even if the device is supported!

For the case of CyanogenMod, some modders replicate the source to their machine, build it, and distribute it for the supporting device, out of perhaps due to impatience, that distribution is called a "Kang", in the view point of CyanogenMod. If it was built officially by the build-bots employed by CM, it's labelled "official".