Lest everyone think I’m a total Google Fanboy, I’d like to suggest a really, really simple tactic folks like Cyanogen can take to continue Android innovations while complying 100% with the licensing of Google’s “experience” apps.
The crux of the issue is that, without the proper license, it is illegal for Android ROM developers to distribute these apps as part of their ROMs. It’d also be illegal for someone like me to host them myself so that people can simply install them after installing a custom ROM. “Ok,” you might say. “Then how am I supposed to get these applications if it’s not legal for anyone to give them to me?”
Ah, but there’s the catch. There are organizations that are licensed to distribute them. T-Mobile, for instance, is probably the most widely-known, as all our phones will download updates containing the apps whenever a new Android release comes out. Usually there’s a bit of detective work involved, though, in determining the URL for these updates. But you know who else is licensed to distribute them, and makes them extremely easy to find/download? HTC.
What would need to happen is that the user could themselves download the relevant firmware update file from HTC’s website and save it on their SD card — which is perfectly legal. The user could then update to a Google-free firmware from someone like Cyanogen. If this Google-free firmware update happened to check for the existence of the official Google-app-including firmware image as part of its setup procedure, and extracted the Google bits out of it, everyone could have the best of both worlds.
The ROM developer would not be distributing the apps. The organization that is distributing the apps is licensed to do so. Everyone wins.
If you haven’t heard, there’s been a bit of a dust-up today between Google and its throngs of Android phone users. If you have heard, chances are you heard it post-spin, where Google is painted as being this horrible evil dictator, violating the ‘spirit of open source.’
That couldn’t be further from the truth. Here’s what’s actually going on.
Google’s Android phone platform is, in fact, an open source operating system. Any phone manufacturer who wants to license Android for use on their handsets can do so, completely free of charge — but there are a few caveats. Anyone deploying an Android device has to choose between a few different Android packages, including the “with Google” option, which allows the manufacturer to use Google’s good name to promote their device. However, the “with Google” package requires that you deploy all the software the way Google demands. No deleting GMail and including Hotmail instead, for instance.
If the manufacturer does want to remove GMail and include Hotmail, they can still totally do that — they just can’t use Google’s name to advertise their product. Oh, and they also can’t include some of Google’s popular apps.
While the operating system is open source, some of Google’s applications are not, and are rather restrictively licensed, giving Google a bit more control over how they are used. The idea is they don’t want someone’s crappy modified Android install soiling their good image.
Very soon after the first Android device’s release, clever hackers figured out a way to bypass the security T-Mobile included on it, allowing them to install custom installs of Android, based on newer, better code than what the devices were originally shipped with. Sure, that newer code would eventually be handed out to all devices, but many of us nerds are rather impatient, and would rather use it now. Crashes and all. So a sort of “community” of hackers was born, eventually culminating in several really popular Android distributions that included all sorts of really awesome functionality that was either not “prime-time”-ready — or was flat out barred from inclusion by the carrier. (In this case, T-Mobile.)
This has been going on for roughly a year now, and several people have risen and fallen as the de facto “ringleaders” in charge of assembling the components into updates that mere users can apply to their phones. Many of these updates happened to include all those applications that Google has specifically licensed to be only distributed by those that comply with their licensing demands, and today finally caught the ire of Google.
Google has sent a Cease & Desist letter to the maintainer of arguably the most popular of these Android distributions, citing his inclusion of applications to which he does not have the proper license for distribution as the activity that needs to be ceased. He’s no longer able to include GMail, Google Maps, etc., in his releases, which arguably makes his builds extremely undesirable for most users.
As you might expect, people understand this licensing issue, and completely realize that it’s not good to be in blatant violation of an application’s distribution license. Just kidding! In actuality, people are going “ape shit,” threatening to buy iPhones, yelling obscenities at Google, and being all-around poor sports about the whole thing.
“Google is violating the spirit of open source!” cry many.
Online petitions have been made. There’s an “app” in the Google Market which is currently the most popular Market download of the day, that essentially demands that Google re-license these apps so that people can continue to use them however they want. Facebook groups demanding the same thing are thriving. Twitter has gone nuts.
There’s a funny thing about the “spirit of open source,” though: many, if not most, open source projects are licensed in such a way that the code cannot be used in commercial applications without following the requirements of the license. It is never OK for someone to violate the license. When, as invariably happens, some company does violate the license, people go nuts. Likewise, nobody ever expects to be able to include someone else’s proprietary functionality in their open source app. Yet, in the “spirit of open source,” Google should just throw out their licensing altogether so that these whiny, entitled, whineyfaces can continue to use them on a distribution of Android that won’t, and cannot license them properly?
That’s a bunch of crap. Google is in a bit of an awkward position, having angered a significant amount of its Android user-base, but they are completely in the right here. Does it suck? Yes. But should Google be expected to give away everything for free just because people have been using it illegally for a year? I’ll leave answering that as an exercise for the reader.
(If you’d like to check your answer against the correct one, here it is: “No.”)
UPDATE: Some are suggesting that Google’s inclusion of proprietary apps in an open source environment is a bad thing. This may well be the case, but you knew about it before you bought an Android phone and/or started developing for the Android platform. You chose to accept that fact, and now you have to live with it. Google didn’t suddenly remove the apps from the source tree and ‘closed source’ them; they were closed source from the start.
UPDATE: Someone made this silly Hitler-meme-video, effectively illustrating the attitudes of these whinyfaces:
Like most of the stuff I’ve done on android, my most recent app, “Send RSS to Google Reader” came out of being frustrated that Google’s Mobile Browser wasn’t smart enough to detect RSS feeds, and also wasn’t smart enough to allow you to subscribe to them in Google Reader’s Mobile interface, except by doing some cut-and-paste gymnastics.
The first version required that you actually display an RSS feed (or find the link to it yourself), and then use the Android Browser’s “Share this page” functionality to pass the url on to Google Reader by way of my little app. This was incredibly cumbersome.
Now, thanks to some Yahoo Pipes magic behind the scene, you can be viewing any web page, hit the ‘Share this page’ menu item, select “Send RSS to Google Reader” and it will auto-detect any RSS feeds that happen to be part of the page. If there is just one, it sends it over to Google Reader Mobile where you can subscribe with a single click. If there are more than one, you are presented with a list of them, and can click any one of them to send it over to Google Reader Mobile.
I pretty frequently monitor what people are saying about Android on Twitter, and something I’ve seen recently is people lamenting the imminent death of Android now that Google’s apparently shifted their interest over to a newer, shinier platform that might directly take on the behemoths in more oft-used hardware platforms, namely ‘netbooks.’ I’ve got a few thoughts.
1) Android is not under any threat of extinction as a result of this. One of the common things people are saying is variations on the theme of “Android hasn’t had a chance to become successful, and now they’re replacing it.” That’s just silly.
Android is, by practically every metric, a rousing success for the little time that it’s been on the market. Worldwide, there’s like 3 different phones available running it, most available for fewer than 3 months to date. The oldest Android phone is like 6 months old. Already a variety of carriers have committed to 18 different Android devices on the market before the end of 2009.
Has there EVER been a year that 18 different handsets have been released running Blackberry, Windows Mobile, MacOSX, or ANY other ‘smartphone’ operating system? Even if you combine all those operating systems together?
The relative clunkiness of HTC’s first Android phone (the HTC Dream, which T-Mobile sells in the US as the ‘G1’) hasn’t stopped it from being amazingly successful, outselling any other T-Mobile device. (I know, faint praise…) The HTC Magic (or T-Mobile ‘myTouch 3G’) is poised to more directly compete with the likes of iPhone in form-factor, sexiness and speed, and it comes out in like a month. It’s already been successful on other carriers outside the US. Also, HTC’s been making waves with it’s new ‘Hero’ device, featuring a significantly sexier new ‘Sense’ UI [youtube] atop Android, and Sony Ericsson just released a peek at their new ‘Rachel’ UI [youtube], also running atop Android. Both of these UIs are eliciting squees of praise on Twitter, many people declaring that they’ll ditch their iPhone for them in a second. (Check out those linked videos, maybe you’ll see why.)
The Android world is just beginning to heat up, but it’s already pretty hard to say that it’s not a success, and that there aren’t people dying to get their hands on devices.
2) Google’s ChromeOS is designed to run (probably) exclusively web-based applications like GMail, Google Docs, Google Calendar, Google Voice, etc, all of which are significantly “heavy” applications, requiring lots of javascript and ajax to function nicely. ChromeOS is essentially a very targeted, slim, Linux distribution — Linux being widely known for it’s effective use on lower-end/legacy hardware. The Chrome browser is designed from the ground up to run these apps, so it will do quite well on netbooks and laptops.
ChromeOS probably won’t, however, find a happy home on any of today’s mobile phone devices. Even the fanciest, most expensive mobile phones are only able to to provide a mediocre web browsing experience, at best, and none of them are going to be able to effectively use Google’s javascript-and-ajax-heavy web apps. I know, because I’ve owned most of them.1
The preponderance of dedicated apps to read the content from popular sites like Digg, Reddit, MetaFilter, etc., in both Android and iPhone’s application stores, is testament to this. It’s simply faster to pull down a limited feed containing only the data and render it using a native applicaton than to try to let a web browser display the whole page. Even iPhone specific pages are often slower and more cumbersome to use than a native iPhone application dedicated to the same purpose. That’s just the way things are now.
3) In even the best case scenario, adoption of ChromeOS is going to be extremely slow, at least to start. I mean, how many people do you know that have even installed Google’s Chrome Browser, let alone an entire new operating system? I just don’t see the average Google user — fanboy or not — completely switching to a OS that only runs all the web apps they’re already happily using on Windows. It’s just not going to happen.
4) Where ChromeOS stands to make waves, however, is preloaded on hardware. Low-cost netbooks and laptops that are already installed, already configured, without having to include the cost of a windows license, or worry about viruses or any nonsense like that will benefit greatly from having Google’s name attached.
There’s been much talk of netbooks pre-loaded with Android, but at the current state of things, that’s just not really feasable. Most of the Android applications in existence are designed for use on small, touchscreen devices without keyboards. The web browser is a RELATIVELY capable browser for a MOBILE browser, but you’re not going to want to run Google Docs in it.
My netbook currently runs Linux, I’m using Chrome right now, and I do all my work in Google web apps. It works fantastically well. Except for one little thing:
5) The Linux version of the Chrome browser is a LONG-ways from ready for general use. It’s very fast, does many things very well, but can’t do most of the things you’d expect from a browser. You know, like bookmarks, printing, stuff like that. Looking at the state of things now, there’s simply no way they’re going to parlay the Linux version of Chrome into a full fledged operating system any time soon, let alone tackling the other things people are going to want to do, be it printing, scanning, etc.
Android is a full-fledged operating system RIGHTNOW, and there will likely be 20+ devices — not even limited to phones — on the market by the time ChromeOS even begins to be seen by the public. So don’t go abandoning your Android development any time soon; there will be plenty of need for your apps for a long while to come.
Today, after some tinkering, I accomplished something of which I’ve long dreamt: placing a Voice-Over-IP call, from a real phone number to a real phone number, from my Android phone, using only my 3G/EDGE data connection. No plan minutes involved.
Here’s a brief how-to (that’s not even dependent upon having an Android phone):
1) Get Google Voice. (This step is going to be kind of a buzzkill for most people, as Google is still in some sort of indeterminate closed beta with the Google Voice system. I’m not exactly sure how I ended up with access, so I don’t know what to tell you to do to get it too.)
3) In your Google Voice settings, add the ‘SIP’ address that Gizmo gives you to your Google Voice account, selecting ‘Gizmo’ as the type of number. (Detailed instructions.)
4) Install a Gizmo-compatible client on your phone. The folks at Gizmo have written clients for many popular phones. You can get one at http://gizmo5.com/pc/products/mobile/. If your phone supports ‘J2ME,’ then chances are they’ve got you covered.
(On Android, I installed ‘sipdroid,’ which isn’t a Gizmo-specific application, but one that can handle any Voice-Over-IP service. (You can find sipdroid in the Android Market, but that version only works via wi-fi. Get the full version which supports 3G/EDGE calling via their site.) Configure it using the info from the Gizmo support page.)
5) Use Google Voice’s web interface to tell it to call whatever number you want, selecting your Gizmo number as the one to ring when connecting. (Gizmo offers incoming calls for free; telling Google Voice to initiate a call and ring your Gizmo is technically an incoming call, even when you’re calling a friend.)
6) Tell the Gizmo client on your phone to answer the call. You’re now connected, and you’re not using any minutes.
A nice side-effect of this Gizmo compatibility is that you can run Gizmo clients on any computers you have around. When someone calls your Google Voice number, all the computers will ‘ring’ as well as your cellphone, so you can answer it from one of them instead. More minutes saved.