Home

Share this Story

Understanding the Difference Between AOSP and the Open Handset Alliance [Opinion]

Over the past few years there has been grumbling among some that Google needs to stop calling Android open source. The argument is a simple one: Google can call Android open source as long as it doesn’t place any requirements on its OEMs to use Android. This article will unpack some of the misconceptions about what it means to say that Android is open source and deal with the two major instances where Google has been accused of violating its own principles concerning Android. 

First and foremost, what does it mean to say that Android is open source? That means that Android is available for anyone and everyone to download and use however they please. If a manufacturer wants to put Android on a piece of hardware, they are free to do so without having to pay a dime. Anyone can download Android and do whatever they want with it. The source code for Android is published so anyone can use Android in any way they like.

Google released Android as an open source platform because Google believes that being open enables all sorts of innovations that you often don’t see on closed platforms. Being open means that Android isn’t limited for use only on devices that Google blesses. Unlike iOS, which only runs on the iPhone, iPod Touch, and iPad, Android runs on all sorts of form factors from phones to tablets to multimedia devices to robots.

While Android is open source and available for everyone to use, the Google Play store and Google apps (Gmail, Google Calendar, Chrome, etc.) are only available to Google’s partners in the Open Handset Alliance (OHA) that are certified by the Android Compatibility Program (ACP). It is free for anyone to join the alliance, but in doing so the company must agree to not fork Android and instead strive to avoid fragmentation of the Android platform. What this means is that a manufacturer like Acer cannot release a device that runs a non-compatible version of Android. If Acer wants to release a device with a non-compatible version of Android they can, but they’ll have to leave the OHA and lose access to Google’s ecosystem.

Restricting access to Google’s apps and ecosystem does not mean that Android is no longer open source. Anyone can download and use Android however they want, but to be a part of Google’s larger ecosystem, manufacturers have to play by Google’s rules. This is important: there is a difference between Android and Google’s apps; the former is open source, the latter is closed source. Android and Google’s apps are mutually exclusive – Google will let anyone use Android, but not just anyone can use Google’s apps or have access to their ecosystem.

The first time that Google appeared to be overstepping its bounds in terms of Android being open sourced was with Motorola’s attempted use of Skyhook in 2010. If you don’t remember, Skyhook Wireless is a location services company that uses WiFi positioning instead of GPS to give mobile devices location data. Motorola was planning on using Skyhook instead of Google’s location services in the Droid X back in 2010, but Google refused to certify the device with Skyhook’s location services. Google’s reasoning for refusing certification is that the way that Skyhook integrates its data with Google’s would contaminate Google’s location data. Because location data is critical to Android’s success (just ask Apple how their new Maps app has affected their reputation), Google refused to certify the Droid X. Was Google in the wrong for doing this? I’m not an expert in location services, but if there was a possibility that Skyhook’s data could have interfered with Google’s (which Google claims was the case) then I think Google was in the right.

The second major instance occurred just a few weeks ago when Acer announced that they would be releasing a device running Aliyun, but then quickly canceled the press event after Google spoke up. According to Google, Aliyun is a fork of Android, so Acer cannot release a device running the operating system and still be a part of the Open Handset Alliance. While this move was panned by critics who accused Google of betraying their open source principles, the reality of the situation is that Acer made a choice. At any point Acer can leave the OHA and make devices running Android without Google’s ecosystem or forks of Android. Google isn’t forcing Acer to do anything. Acer made the decision to be a part of the OHA and keep Android free from fragmentation. Acer is free to pull an Amazon and create their own ecosystem if they want to.

Despite what the critics say, Android is still and always has been open source. The key to understanding the hubbub is to understand the difference between Android and Google’s apps. Most of the misunderstanding about whether or not Android is actually open source seems to stem from the idea that Google wants to control Android more than they’re letting on. While I wish that were the case, the evidence indicates that Google is happy to keep Android open for anyone to use. Even though one could make a very compelling case that OEM skins have detrimental impact on Android compatibility, Google has done nothing to date to stop OEMs from customizing how Android looks and behaves while still having access to Google’s ecosystem of apps and content. Open has nothing to do with when updates are released or the terms to use Google’s closed source services and apps. Until Google stops releasing source code for Android, the argument that it is “clopen” or that Google restricts who can use it is just plain wrong.

  • staticx57

    Am I the only one disappointed there is no Nexus One in that family portrait?

    • JoshGroff

      Since the Xoom is there, why not the OG Droid as well?

  • http://www.blognerdegeek.com/ Renan Willian

    Excellent article!

  • ajavgeek

    excellent explanation and even better comments. Abhari Ahe Ron…

  • JWellington

    That’s not what Open Source is at all. To Software Engineers–people who actually create this stuff for a living–it means that you can contribute Source Code to the Project and affect the direction of the Project to some extent. Google does not take code contributions for Android. They develop Android entirely in-house and then push their updates to everyone else. This is why it takes manufacturers so long to get updates out; It takes a lot of time to update your codebase for a new Software Platform.

    Open source doesn’t only mean ‘git pull’, it also means ‘git commit’!

    • http://ronoffringa.wordpress.com Ron Offringa

      Actually Google allows and encourages contributions to the source code. The reason you don’t see many OEMs adding code is because they save their ideas for their custom skins. Despite that, OEMs and individuals can and do submit changes. http://source.android.com/source/licenses.html

      • JWellington

        You’re totally right :-) I was wrong. Thank you for that. I suppose I am used to the concept of a trunk. I am sure Google needs to have a heavy vetting process for submitting code.

  • http://www.facebook.com/alexandros.stylianou.7 Alexandros Stylianou

    Excellent piece.

    Also kudos to Google for helping to create a piece of software that anyone can take and use freely. Something that Apple and Microsoft would never have done.

  • agenius

    An excellent article, nice work

  • KOBALT

    Apparently, it looks as if an Apple douche came through the thread and ticked a downvote to almost every reply. Even the non-relevant ones. Well played, Apple douche.

    • jaxxmjd

      Apparently, they believe that every downrank will help prop up Apple’s over-inflated stock price.

      • AppleDroid7

        Apparently, it looks like as if a Android douche thinks that only and Apple fan is the only people capable of pushing the downvote button. Even took the time to comment about it though it is unrelated to the article. Well played, Android douche.

        • JoshGroff

          *an Android* *an Apple* *person* *I even* *even though*

          You’re welcome.

  • Adam Epstein

    What about when they didn’t release the honeycomb source until ICS came out?

    • Tom Ball

      That was due to honeycomb being rushed out and basically just thrown together. It was just all around bad.

      • Artistan

        Sorta like the Vista of Android?

        • Tyler Chappell

          Pretty much.

        • JoshGroff

          Shame on you, Vista was much worse than honeycomb.

    • http://ronoffringa.wordpress.com Ron Offringa

      I almost mentioned that, but since they eventually released it I didn’t think it was worth explaining.

  • jaxxmjd

    Doth mine eyes deceive me? Is it possible that Ron actually wrote an article that does not condemn Google or Android??

    • http://ronoffringa.wordpress.com Ron Offringa

      I don’t think I’ve condemned Google or Android, just challenged them to be better. There’s a difference in my mind.

      • JoshGroff

        It all depends on how you look at it. Every OS has its shortcomings, and sometimes they need to be pointed out for things to change.

  • Jordan

    People question how open Android is because of the Google Apps integration. Sure, Android can be run on any device as its source code is out there for use. However, the Android devices that are talked about on any regular basis are the “clopen” items. To be an Android device that we talk about regularly, a company basically has to commit to Google in order to get their necessary closed-source apps. Without access to Google’s apps, a truly “open” version of Android cannot succeed on a commercial basis.

    • http://ronoffringa.wordpress.com Ron Offringa

      Unless it’s the Kindle Fire…

      • Tom Ball

        Exactly. Android itself is 100% open. If you want gapps then you’ve gotta play by Google’s rules. Any manufacturer could create their own suite of apps. Most just choose not to.

        • Jordan

          Yep. That’s completely true. Android at its core (minus gapps) is open, but what we consider Android is “clopen”.

          To be considered Android by any news media, you need G Apps. Notice that Amazon is described as using “Android” – they heavily skinned it and customized it to the point that Android has been hijacked to fit their needs.

          G Apps are not open source, hence the “clopen” term.

      • Jordan

        True, true. Forgot about that one. But many would call the Kindle Fire “Android” because Amazon has replaced so much of it. My points still stand.

        Would you consider the Kindle Fire and Galaxy S III to be advancing Android as a whole or advancing their own sects of Android (Kindle: Amazon Android, S III: Google Android)? Amazon’s Android is spoken of as being so different from Google’s Android (and by that I mean everything, stock and skinned).

        That’s why Android is “clopen”. You’re not really considered true Android by people unless you use Google’s apps.

        • http://ronoffringa.wordpress.com Ron Offringa

          How people use open sourced software doesn’t affect whether or not it is open sourced. Even if people don’t consider Android to be “real” Android if it doesn’t have Google apps (would regular consumers really be able to tell the difference?), that doesn’t change whether or not Android is open.

          • Jordan

            Yes, it does. It’s disenginous to say that Android is open when to be successful with it you basically have to go with closed source software. Android as a foundation gets you to a certain point but you need the marketplace to have any sort of traction in either media presence or user acceptance.

            That’s why it’s “clopen”

          • http://ronoffringa.wordpress.com Ron Offringa

            I don’t know how else to say it. Being open and being able to use the software in a commercially successful way are two different things. Is Ubuntu not open source because it doesn’t have commercial success? Being open sourced and being successful in the market are two very different things.

  • Bryon

    I’m all for Android being open source, but it should be a bit less open, or maybe just a bit more regulated or controlled by Google. They just need to regulate the Play Store more to improve the overall quality and security of apps. They need to place some basic rules on OEMs that at least lightly regulate their UIs they create, not to control the look of it, but to ensure that the UI isn’t affecting the speed and usability. There’s probably more things they should regulate to a point, but I can’t think of anything.

    • JB

      It’d be great for Google to help the OEMs with the carriers. Integrated carrier-branded versions of apps already built into Android can really mess up the android experience. I “disabled” all of mine thanks to ICS and then find out that my contacts menu doesn’t work because ATT locked it to redirect to their app. Apple would never tolerate that and neither should Google.

  • danofiveo

    Nicely stated.

    Another argument I’ve heard, though is Android is not open source because it’s not publicly available until very late in the release cycle. On a limited basis, this has been remedied by giving manufacturers access earlier in the process as announced at the last Google I/O Conference.

    I think their reasoning boils down to controlling quality of contributions and keeping new features reasonably secret until they are ready to announce them. It’s a delicate balance, which I think they have managed well.

  • lpdroid

    So what happens when you use CM on touchpad? It is not an android device and yet folks load Google apps on it after flashing…

    • http://ronoffringa.wordpress.com Ron Offringa

      You might remember that CM used to come with Google Apps, but Google issues a cease and desist because the apps are not open source. The apps are closed source, but they can be backed up and reinstalled on a device. When people flash Google Apps onto a device, they’re basically installing backed up versions of Google’s apps.

      • Tom Ball

        Exactly. That’s why almost all ROMs have gapps as a separate download.

    • jeesung

      warez

  • Ruel Smith

    I’m not sure about just how Open Source Android is. To be Open Source, it means the source code is publicly available to anyone. It’s free for people to add to the code, share the code, reuse the code, etc., as long as the original author of the code maintains his/her copyright, and is given proper credit as to who actually wrote the code and owns it. There are varying licenses around Open Source. Apache, GPL 2 & 3, BSD, etc. Each of them have their own interpretation of how the source code can be used, shared, and manipulated. Often, it means that changes must be given upstream and made publicly available, but not in all cases.

    • http://ronoffringa.wordpress.com Ron Offringa

      AOSP uses Apache Software License 2.0.

      • Justin W

        I originally thought they were under GPLv2, but then I read a little more on their dev.android page and found this info. Apparently, some Linux kernels used may be under GPLv2, while most of Android is under Apache 2.0. Good to know!

  • Mike Petty

    The other thing that they get hit for is that it’s a closed development model. so, you get these huge “drops” once or twice a year, and then everyone scrambles to update, make sure things work, etc. It’s why you get such big lags between release and all the OEMs supporting it, getting CM/AOKP updates, etc.

    That said, I don’t think that going to a full open development model would necessarily work — you’d end up with all types of crazy unstable android builds out there, and all of the thunder about new features would be gone at release time.

    • http://ronoffringa.wordpress.com Ron Offringa

      Google cites the reasons you gave in your second paragraph to respond to the idea that it should bean open development model. I think the way they do it is the best model.

      • Justin W

        I agree with you, but I also see the benefits of a closed model. Wouldn’t it be possible for Google to use a more closed-source model, while still retaining the flexibility? In my mind, this would help prevent all of the fragmentation that we’ve seen with different skins and products that don’t receive updates in a timely manner (or at all). Unfortunately, that would go against Linux’s open-source model though.

        • http://ronoffringa.wordpress.com Ron Offringa

          Oh, I definitely think Google can and should use a closed source model, but I think the way they’re doing it now is the best way to do open source.

          • Justin Swanson

            I think that they need to open the development cycle to the members of the OHA. That way the OEMs (especially Nexus OEMs) can get a head start on updates. This would also allow for phones that re being released within the 2-3 month window after a new update is released to ship with the new update, instead of having to wait an additional 2-3 months after release to get the update (See: SGS3)

    • CapnShiner

      Don’t forget that Google somewhat recently announced a program that will allow certain OEMs to get earlier access to the code. Any OEM that opts in will be able to reduce that lag.

      • Justin W

        But how much effect is it really having? I know that Moto’s first JB build for the RAZR M is out, but is that due to the PDK that was announced in July, or is that because they are now part of Google?

        • Justin Swanson

          He is referencing the new Nexus program. I don’t think we’ve seen it in action yet… Hopefully this fall when the next line of Nexus Devices are released.

          • Justin W

            The OP of this reply thread was, yes, but CapnShiner was referring to the PDK or whatever they called it in July.

  • DainLaguna

    excellent article, as always ron. gracias

  • FknTwizted

    Well written blog, hopefully people will read it and truly understand the premise of the differences between what Amazon is I think going to do and what Acer did.

  • lalala

    Perhaps somewhat unrelated, but speaking of fragmentation: Why is it really necessary to port ROMs for different models? It would be so awesome if my cell worked in the same way as my computer: always running the latest OS release, be it windows or linux or something else, and not needing to wait (and hope) for someone to release an (oftentimes unofficial) update for my specific model. If everyone was able to easily grab the latest stock android version, Google’s fragmentation problems would be more or less extinct, and there would be no need for OHA. Guess there’s some kind of hardware limitation?

    • http://ronoffringa.wordpress.com Ron Offringa

      Yep, it’s hardware. Each phone has different processors, GPUs, etc. You might remember an article I posted a little while back that discussed a side project by a Google engineer to port AOSP to the Sony Experia S. that project is designed to experiment with the idea of being able to port Android to any piece of hardware with little to no effort.

      • lalala

        Thanks for the explanations guys. Would be so cool if something like this came to fruition!

    • Abgar Musayelyan

      i think google is headed in the same general direction.
      their multiple nexus program is evidence of this.
      if you release ASOP to work on several drivers, it can in theory work on a variety of devices without modification. this is how windows does it, this is how linux does it, this is how apple.. oh .. never mind about the last part.

      • FSFer

        The manufacturers would need to open source the drivers foot this to really take off.

        • Abgar Musayelyan

          we’re definitly a ways off from it happening. for android to be implemented in the same fashion as linux it would need to have open source drivers for all chipsets, cameras, radios etc.. this would probably put the os size at well over a gig.. and with well, 8 gig devices launching at the end of 2012, i dont see this happening soon.

          but like you said. the current problem is the closed drivers.
          imagine for a moment that every year from now on; we have a tegra nexus, a snapdragon nexus, a TI nexus etc.. the driver library would compound from year to year to massive amounts of devices supported in AOSP. we can all dream, cant we?

          • Justin W

            I like where that’s going. It would be really nice to have multiple nexii with multiple different processors. It would definitely help us port AOSP for those devices that don’t have it installed as factory images.

    • CapnShiner

      AS mentioned previously, it’s because of the differences in hardware. Unlike a PC, a phone or tablet has every part integrated. A PC can have any number of monitors, keyboards, mice, chipsets, CPUs, RAM, sound cards, graphics cards, hard drives, optical drives, etc. installed in or connected to it. PC operating systems are designed for that modular approach. They are designed for a PC architecture, like x86, x64, or now ARM. Other than that, the rest of the hardware is supported through software drivers. Windows and Linux both have generic drivers for lots of common devices built-in, making them compatible with most desktop systems.

      Android is different. As far as I know, it was designed to run on the ARM platform but I think someone eventually added support for x86. Other than that, I don’t think the core OS includes drivers for other hardware. OEMs determine which components are used in their devices and, unless you have some Ben-Heck-level modding skills I don’t think you can change those components. The manufacturer only has to include drivers for the specific components it uses and that is unique for each device. All of the specific drivers and tweaks to the OS that tailor it for a specific device are built into the ROM. That is why ROMs have to be ported.

      If anyone made a ROM with support for all the possible hardware there could be, it would be too big and slow to run properly. Anyone can easily grab the latest stock Android version. That’s what AOSP is. That is what makes Android open source. That is how popular ROMs like CyanogenMOD and AOKP got started. In order to make them work, they have to be tweaked for each specific device. The reason anyone can get one of these ROMs installed on their device is because someone in the community took the time to port it to that device. It is not a quick or easy thing to do they generally don’t get paid to do it, so we should all be very appreciative toward those devs.

      It would be great if every device could run any ROM or get the latest version of Android as soon as it is released, but that is just a dream.

  • flippingthecoins

    But there should be a rule that states “All OEM should support the devices for at least 18 months or so”. I think that would reduce fragmentation.

    • Jeff Tycz

      there is but they have not done anything to enforce it

      • https://www.facebook.com/aaron.williams.125 Champion1229

        I honestly hope Google pulls the whole pop-quiz on its OEMs. What I mean is for them to just one day come out and say to manufacturers,”if you didn’t update your devices released on or after xx day to x.x version of android then we will not allow you to be our partner in making a nexus device (or something like that).

    • JB

      I think it’d be better if Google would restrict the number of devices they would certify per manufacturer per year. This would make it easier for the OEMs to support their devices (because they’d have fewer devices to support) and would decrease the “fragmentation” in the market place. OEMs would be forced to use the old flagship devices as next year’s entry level model which would create a better user experience on the low-end android devices.

  • Abgar Musayelyan

    awesome article. i love it when you guys post stuff like this.
    keep em coming ron!

  • Finire

    Really amazing breakdown! I love having an actual explanation of the differences.

  • http://www.facebook.com/Christopher.Raymond.Brown Chris Brown

    Thanks for the explanation!