Google Open
I’m increasingly irritated by the way Google uses the word open. When I think of open I think of Linux and FreeBSD, but that’s just one sense of open—the open source, or if you prefer, “free software” sense.
There are also open standards, like TCP/IP, ASCII and USB: published, openly available specs that aren’t controlled by a single company. Unlike free software, open standards aren’t necessarily royalty-free; the open refers to the lack of central control and the idea that anyone can license it as long as they meet the basic requirements—nobody can keep a competitive advantage over you by blocking you from using an open standard.
And there’s open platforms. I’ve seen other people call this “open experience”; basically, it means that the platform isn’t designed to limit you to approved uses and applications. It’s the difference between a laptop and a console. And the difference between an Android phone and an iPhone. Sort of.
Clearly Android has always been more open—in both source and platform senses—than iOS. Other than the bits that exist as part of Apple’s open source projects, you can’t get iOS source code at all. As an individual consumer you can’t load software onto an iOS device other than through the App Store. It’s impossible to replace or even hook into iOS system components without “jailbreaking” the device.
But Android isn’t Linux Open. It’s Google Open. Let me explain.
We all really know that for the vast majority of computer users, the important part of “free software” is the “free as in beer” part, because they can’t use the source code. Whether they’re using Microsoft Word or OpenOffice, they rely on the development team to fix bugs and add new features. In theory every Android user has the freedom to rewrite their mobile phone’s operating system. Well, in theory every car owner has the freedom to forge his own piston block, but in practice, not so much.
Even so, with desktop Linux—or a mobile Linux derivative like MeeGo—if you really want to forge your own piston block, you can. Dell and HP and Nokia aren’t going to go out of their way to make it difficult for you. But Android isn’t Linux Open. It’s Google Open. Android’s openness is primarily aimed at the manufacturers and carriers. Unless you have a Nexus phone, you aren’t getting stock Android. You’re getting a customized build, and more often than not it’s a customized build that’s locked down to some degree. Android uses the Apache License, under which it’s perfectly permissible to make closed-source proprietary enhancements and derivatives.
So far, the response from Android fans has been, more or less, so what? Fair enough but let’s be honest. “Rooting” sounds much friendlier and more—hmm—open than “jailbreaking,” but it’s essentially the same thing. If you’re rooting your Android phone, you are doing so because you want to do something that your phone manufacturer has deliberately tried to make difficult. You’re running an external program that hacks it, just like an iPhone jailbreak. And you’re voiding your warranty, just like an iPhone jailbreak.
While this may not be an elephant in the room, it’s at least a hippo, isn’t it? Why do you need to run an unofficial hack to do this in the first place? Why isn’t there an “enable root user” download on an official Google web site?* I’m not asking this facetiously. If you want to put your own custom build of MeeGo on a compatible device, it’s very easy to do it, and at no point are you required to trust your device’s security to someone who spells his name with zeros. If the first step of taking advantage of your phone’s “openness” is “run this unofficial hack to open it up,” then we might as well slap the iPhone’s butt and call it open, too.
But wait, that’s not fair! A jailbroken iPhone still doesn’t have the source for the operating system! You still can’t forge your own engine block! Mmm hmm. You know where this is going, of course—right to Google’s announcement that they’re not going to open the doors to the Honeycomb Hideout yet, and the source code for Android 3.0 will remain theirs for the time being. Because if they released it, people would try to put it on phones, and the experience would be bad. They don’t want people to have bad experiences.
This is a perfectly defensible rationale—but it’s way out of whack with what open source normally means. I follow a few open source projects, including Django and Ubuntu Linux. They don’t want people to have bad experiences, either. That’s why these projects have what we on our planet call “official releases” and a “development trunk.” And again, look at MeeGo: not just stable “official” releases but daily binary builds available, along with the source code repository.
While I’m seeing some discontent in the Android Army’s ranks, I’m seeing more than a few partisans rise to the defense: Yes, they say, it’s great that Google is going to keep the source private for a while. Look, that doesn’t mean it’s not open. Okay. Going by the letter of the license, you win: it’s open! Sure, you’ll either have to hope your manufacturer eventually releases an official update for your “old” hardware—just the way us closed phone users do things—or you’ll have to wait for Google to release the source and a hacker to package it up in an unofficial build that will hopefully work on the phone you rooted to get around the manufacturer’s lockdown. But otherwise, really open!
So, y’know, just one more question. Do the umbrellas the true believers keep putting up when this stuff keeps being rained on them actually open, or do they only Google open?
(* Update, 3/29: I am told in comments that the Nexus phones do have an official root-unlock tool, and that interestingly, Sony Ericsson—remember them?—will have an official way to do this as well. This only fractionally alleviates my grump, but it’s good information.)