Android can't escape the Pandora's Box of openness
A debate has been raging in the tech press of late on the "forkability" of Android.
As far as I can tell, it started with a modest proposal from The Guardian's Charles Arthur who suggested Microsoft could be well served by abandoning Windows Phone and forking Android. Peter Bright of Ars Technica responded with a thoughtful essay on why Android's not forkable -- at least not in a way that easily benefits Microsoft.
Wherever you fall in this debate, my view is that if it's open source code, it's by its nature forkable, no matter how hard Google may try to prevent forks. The real question is will somebody challenge Google's control over the project?
And that's the danger for Google. Once they've opened up the Pandora's Box of openness they really can't go back. They created an open project to grow quickly and provide a mobile platform for Google services. From that perspective, it's probably worked better than they ever could have imagined.
But being open, Google faces a similar issue that Oracle has run into around MySQL. It's all well and good for a large corporate entity to try and control an open source project, but you can't really stop forking if that's someone's intention once it's out there. People wary of Oracle's control over MySQL created MariaDB, and many (including Google) are dumping MySQL for it because it's similar enough without Oracle having its tentacles in it.
Google faces a similar problem with Android. Amazon certainly wasn't afraid to fork it and Google could begin to see more attempts to attack its control over the project by creating forks.
One of the advantages of Android I hear from friends is the ability to root it -- they love the flexiblity to mess around with the platform and customize it to their own ends. Rooting isn't the same as forking, where an entity creates an entirely separate fork of the source code and modifies it on an ongoing basis, but it does give outsiders (in this case, users) a great deal of control over the phone, including the base-level operating system.
Mark Smith, a retired hardware engineer and avid Android user defined rooting for me this way: "Rooting is just enabling the user to get operator privileges so they can customize the system-level software, kind of like changing a user from standard user to system administrator in Windows," he explained.
Once rooted, the user can change stuff that the carrier might have locked down, like uninstalling the bloatware programs the carrier preinstalled on the phone.
John Cook, a Wisconsin technical writer and long-time Android user says forking and rooting often work together. "I think rooting and forking go hand-in-hand but are distinct. There are forked phones that aren't rooted and there are rooted phones that aren't forked. However, the most popular non-stock variants are both rooted and forked," Cook explained.
In fact, Cook tells me he has rooted his own phone and loaded it with a custom ROM. "I have an HTC One running Sense 5.5. It's a fork from pure Android OS. In addition, it's further forked by Verizon compared to the AT&T fork," Cook told me.
But Smith explained once rooted, you can customize it even further, even if it wasn't Google's intention for you to do that. If you give some people the keys to the kingdom, you know they are going to to open the door.
"Of course with root you can get in and customize the system even further, but that is supposed to be the point of Android -- that it is an open source operating system. Anyone can download the source code and modify it," Smith told me.
But as Steven J. Vaughan-Nichols, a freelance technology journalist who has been covering open source for years puts it, forking may only be practical for large entities like Amazon. That's because a OS is as much about the apps as the system itself -- a lesson Microsoft and Blackberry have surely learned the hard way.
Google made a big splash almost a year ago with its Google Glass Internet-connected eyewear. Now the search giant is ready to broaden its assault on the wearable computing market by releasing a software development kit for developers to create Android-based software for wearables.