We're all waiting for Google to finally release the open-source code for Android 3.0.1 (Honeycomb), but if we're to believe Bloomberg (and usually you should), it's not going to happen in the "foreseeable future" -- and possibly never. I'll pause and allow the nerd-rage to subside for a moment, because I'm feeling it too -- hard. When we've all composed ourselves a bit, join me after the break. [Bloomberg Businessweek]
The normal release cycle dissected
Let's go over the usual process of Android development cycles, using the original SuperPhone (sorry Phil) --the Nexus One -- as an example.
Sometime in the fall of 2009 (if not sooner), HTC and Google got together and engineered the hardware we call the Nexus One. We don't know exactly when the Android developers started writing Android 2.1 (Eclair), but it was probably in an advanced testing stage when the hardware was decided upon and development begun. Google provided this software to HTC for in-house testing, and HTC provided hardware to Google for the same. As bugs were found, or enhancements were thought up, the Android developers made these changes and forwarded the software along to the testers. Google and others call this "dogfooding," most companies call it R&D.
Once things reach a fairly stable state, this software is shared with other hardware vendors and partners. Motorola, Samsung, and other lesser-known partners like Nuance all have access to the source code while it's still in development. Unfortunately, you and I don't, but there's not much we can do about that. In fact, I won't even complain (too much) about it because Google's release cycle is too rapid (and the user base too big) to be fooling with community-driven patches, no matter how well done and innovative they may be. The important thing is that the people who are building phones all had access to Android 2.1 while they were building their products, and they should. All is well so far.
Come that special day in January 2010, and Google announces the Nexus One as a product available for sale to consumers. Once the first Nexus One is sold, the Linux kernel source must be made available as a condition of its software license -- the GPL.
Android itself is covered under the Apache 2.0 license. It's a more liberal license, and choosing it makes sense when you realize that companies like Motorola or Samsung can't just give away some of their code. The reasons why and the "legality" of not releasing the full source code for Apache 2.0 projects is argued to death daily by neckbeards and hippies, so I'm not going to get into it. But let it be said that it happens. People use Apache 2.0-licensed code to build software and do not release the source code. For the Nexus One (and all other releases so far) Google hasn't done this -- they publish the code at release or shortly thereafter.
So we have the phone, we have the new version of Android, and we have the source code. CyanogenMod and other custom ROMs soon follow, everyone is happy, and work begins on the next version.
Now is where things take a turn for the worse. Andy Rubin teased us with the Xoom, Vic Gundotra teased us with the Honeycomb OS, and we all wanted. We badly wanted. When the release day for the Xoom came around, Google released the patched Linux kernel source and development began. We were happy for a while, because we had custom kernels to play with, but everyone with a Xoom wanted the Android 3.0 source so "real work" can begin. We all started to complain a little, but when we heard that Android 3.0.1 was coming, we were fine because we knew that Google would wait and publish the 3.0.1 AOSP (Android Open Source Project) code along with the update. No sense doing it twice, right? Right?
The new Honeycomb way
Now fast forward back to today -- March 24, 2011. If what Bloomberg is reporting is correct, and my money says it is, we're not getting our source code any time soon, and maybe never. Google's reasoning behind this is that they don't want smaller development teams ruining the Honeycomb experience. Here's a quote from the Bloomberg article:
It's the throngs of smaller hardware makers and software developers that will now have to wait for the software. The delay will probably be several months. "To make our schedule to ship the tablet, we made some design tradeoffs," says Andy Rubin, vice-president for engineering at Google and head of its Android group. "We didn't want to think about what it would take for the same software to run on phones. It would have required a lot of additional resources and extended our schedule beyond what we thought was reasonable. So we took a shortcut."
Rubin says that if Google were to open-source the Honeycomb code now, as it has with other versions of Android at similar periods in their development, it couldn't prevent developers from putting the software on phones "and creating a really bad user experience. We have no idea if it will even work on phones."
While it's easy to blame the huge run of Android Christmas craplets for this one, I think it goes a bit deeper and also targets individual developers, who would (and could) put Honeycomb on our current crop of Android phones. Google has decided that the biggest and best draw for many of us is a good reason to hold back on the code -- they don't want us to hack it onto devices it wasn't designed for.
That pisses me off, and the realization that I can't do anything about it only makes it worse. What good is the unlocked bootloader on the Xoom if you can't build custom ROMs for the damn thing? Andy Rubin goes on to tell Bloomberg "Android is an open-source project. We have not changed our strategy." You could have fooled me, Andy.
It gets worse. Bloomberg says Google executives have told manufacturing partners that Google will not release the source code, and instead the next open-source version of Android will be the "I" version. This in essence kills all third-party development for tablets running Honeycomb. No easy way to add things that Google left out, unless you're Samsung or LG. That sucks, because I like some of the work that comes from people like rodigezstyle or eViL D: much better than I like the work that comes from LG or Samsung, and I'm not alone. And Google in its infinite wisdom has decided that I won't be getting it.
I love Android because of its openness, not because it offers me a bug-free experience that I can't get elsewhere. With that in mind, I have decided I won't be getting any of the new Honeycomb tablets. There are other well-designed, closed source tablets out there, made by companies who never claimed to be open, and I'll look to them if I find a need for a tablet.
-- A heartbroken Android evangelist