Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Google confirms Android 4.0 ICS is open source (thinq.co.uk)
93 points by twapi on Oct 20, 2011 | hide | past | favorite | 79 comments


Android is Open Source in that Google dumps the source code into the open periodically. It's not developed in the open.

Honeycomb's source was and never will be open.

This is way farther on the 'open' side of the spectrum than any other major mobile OS.

Is this, along with Android's open app marketplace, ability to install arbitrary third party software, and installability on any compatible device enough to warrant Google's marketing as 'open'?

I say yes.


> Honeycomb's source was and never will be open.

Honeycomb will be in the git repo since it is what ICS was developed from. The question is if it will be specifically tagged.


Do we have a term to distinguish between the two different models of open source? The two models being the "development in public" model (Chrome, Firefox, Rails, etc) and the "release finished code" model (Android, most GPL components of closed source software, etc).


Cathedral and Bazaar works here


I'm not quite sure. Chromium (the open-source end of Chrome) is very much a cathedral in the sense of product direction, but is developed in the open. I can't come up with something that has the opposite pairing though (it'd be kind of strange).

I'm all in favor of some pithy term for "source released under an open license but not developed in full view of the public."


How about "write-closed" vs. "write-open"? Or more simply, "read-only open source".


Fork-only might be more appropriate, since you're quite free to write to your copy.


Shared Source is nice, or half-open source.

Or, "we take all the benefits, free workforce and goodwill of free software while retaining all control and money".


The first thing I thought of was "Shared Source", the licensing program for Windows source code.


Most 'cathedral' products are developed at least somewhat in the open, and often do take external contributions.


There's peer production vs. firm production. More recently, the term organic open source has caught on in some circles.

http://en.wikipedia.org/wiki/Commons-based_peer_production


Chrome is in between. Most of the browser is developed in public, but large V8 features tend to be developed in secret (Crankshaft, in particular).


> The two models being the "development in public" model (Chrome, Firefox, Rails, etc) and the "release finished code" model (Android, most GPL components of closed source software, etc).

There is a spectrum here, not two distinct models of open source.

Projects like Python, Firefox, Linux (kernel), etc. are open source and developed in an open community manner. Decisions are made in the open, long-term plans are well-known, and anyone can participate.

Projects like Chromium are less open, some development is behind closed doors, the project is controlled by a single corporation, the decision making process is not transparent, etc.

Near the edge of the other side are projects like Android, which are basically developed in a closed way, then "dumped over the fence" when finished (which makes them open source at that stage).


I liked the term Shared Source for what Google are doing, though I was informed that Microsoft have already coined that for the stuff where they make the code public for review but not use.


periodically-dumped-source software? Hopefully someone can come up with something catchy.


Sincere / insincere.


Google's recalcitrance appears to stem from two issues: one is that Honeycomb is specifically designed for large-screen devices and Google is concerned that, if released, it would find its way onto unsuitable form factors; the other, hinted at by Google employees in the past, is that much of the code is a kludge unsuitable for publication.

I'm not sure why Google caught so much slack for keeping 3.0 closed source. I found these to be great reasons and instead of dealing with a bunch of HoneyComb/Android SUCKS reviews when someone put honeycomb on a small screen device google just weathered it out and released something with some quality.


That goes against the principle of open-source. The principle is that by releasing code to the public you will get contributions from others (an extra set of eyes) that will make the project overall better.

But to accept this principle to have to also accept that some people will take your code and use it in ways that you don't approve. The hope/belief is that the good will float to the top. If you don't accept this premise then you don't really have an open-source project.

I can't figure out why Android open sources its code, ever. They don't seem to care about contributions from the community, and they obviously don't want people using their code in ways they disapprove of. It seems that the major reason for open sourcing their code must be something else. What I keep coming back to is that it somehow protects them (in most cases) of patent violations.

I've asked this in the past: what is Andy Rubin's open-source credentials? What open-source projects has he been involved in during his long and successful career?


> They don't seem to care about contributions from the community

Google accepts a lot of patches from the community. Many of the major custom ROMs regularly submit patches. Things aren't perfect at the moment since all this infrastructure was hosted at kernel.org and is still down, so I can't link you directly to examples of public patch submissions and code review, unfortunately. But I can tell you they used Gerrit for that code review.



That's correct. I should have mentioned that. Do you know if the gerrit code review website is back? I haven't been able to find a working URL for it.


FTA: There are a few limitations to be aware of: - Our priority has been getting the main source code mirrors back online, so for the moment gitweb source browsing and Gerrit Code Review are still unavailable.


Because the name is "Android Open Source Project".

It's totally fine to develop closed source software! The problem is that if you market something that's actually closed as "open", you're being disingenuous.

Apple did the same thing with Darwin, but to their credit they started backing off on the "open source" marketing once it became clear that they were heading in that direction.


The Darwin source is still being released if you want it (following the periodic code dump model), it just doesn't get much attention. For most people, it doesn't really offer a compelling case over Linux or its *BSD cousins.


They got lambasted for not releasing Honeycomb because "open" is one of their largest marketing platforms and the reason many people use Android. I'm glad they're going to release ICS source at some point, but can anyone be sure they'll continue to publish code for future versions? That kind of uncertainty diminishes their claims of "open" greatly in my mind.

Also, a tiny nit about the headline - it's not open source until they actually release it. Who knows when that will be.


Fwiw, many is a very relative term there. Android phones are definitely mainstream. I'd say of all the people I know that have an android phone, less than 10% even know what "open source" means.


It is relative, but many people bought Android phones because their techie brother-in-law raved about it. He raved about it because it was "open".

I have little doubt this was a major cause for Android crossing the chasm, so it does seem a bit disingenuous to only be "kind of" open.


My girlfriend has an Android phone. Her reasons are threefold (in order of importance); 1) It's cheap. 2) It's relatively small (Wildfire S is smaller that the iPhone). 3) She uses only Google services (Gmail etc.) so it makes sense to use Android. She is what I believe to be a typical user and the fact that the OS is "open" is irrelevant to her. No-one else influenced her choice and I think this is true of the majority of the phone-buying public; the silent majority that actually matter (we "technically minded" [geeks and nerds!] really don't). Genuinely, the openness debate only has any relevance in places like this, and even then it's arguably not really relevant.


There are thousands of reasons to love or hate android. One thing i like is the development going on in Cyanogenmod and MIUI Android. It's relevant to me.

Those things wont help android 'win' against the iphone, but it will be relevant in other markets, like the MIUI phone, wasnt that around 200$?


The kind of open that they do is definitely less good than I would have hoped (I would love to be able to submit patches for the bugs I regularly encounter on my N1, say).

But trust me, of all the people I know who have android phones here in "Middle America" (off the top of my head without thinking too hard let's say more than 10), none of them bought them because of a techie brother in law raved about it being so cool because it was open. They all bought them because they wanted a smart phone and it was the one they were sold by the telco marketing. Period. (Okay, I'm up to more than twenty coming to mind just while thinking at the same time as typing, and still, none of them bought them because of the openness at all).

So yeah. While it's really marketing-speak to say that android is open in the sense that we all traditionally think of it, to google (and much more importantly to all the telco sales people) it means exactly squat as a selling point.

Which is why only people on HN (and Richard Stallman) get upset about it :)


hinted at by Google employees in the past, is that much of the code is a kludge unsuitable for publication.

They could have used some help from the opensource community to clean up the kludge....but they don't take pushes from anyone not Google.


This just isn't true. I know for a fact JBQ has reviewed patches (and gotten relevant engineers to review things) that have made it into AOSP. The Android team does pre-push code review using Gerrit, and they often lack the personnel to review every change that comes in. As a result, patches sometimes (perhaps often?) wither on the vine before anyone can code review them.

Also: many potential contributors are scared off by the contributor license agreement required by AOSP. Patch contributions without the CLA can't even be reviewed.

As for not releasing honeycomb, look at releasing the kludged code from their perspective. They probably didn't want phones released from HC that wasn't ready for phone use, thus giving them a bad name when awful "Android Honeycomb Phones" hit the market.


to be precise, contributing means giving your copyright away to Google. It means all you're doing belongs to Google, not to the community, or yourself.

Oddly it puts people off from contributing patches. Oddly!

I'm all for freely contributing to projects, but I will never assign my copyright to a corporation. A not-for-profit at least, but corporation, come on.


There's a HUGE difference between copyright assignment (required by FSF!) and a license agreement (Google, Apache, Mozilla, many others). The former means you are giving away ownership to your IP, which is what you describe. The latter only means that the project can relicense or similar (which is very important if there's a bug in a license, for example). You retain copyright to any contributions made under a CLA.

It's a big difference. I don't see anything wrong with CLAs, and there are (according to some more versed in IP than I) some really good reasons to never accept patches without CLAs, especially when you're a potential high-profile lawsuit target.


If we're actually being precise, you grant them an irrevocable license to your code, which is not at all the same thing:

http://source.android.com/source/cla-individual.html

eg "Except for the license granted herein to the Project Leads and recipients of software distributed by the Project Leads, You reserve all right, title, and interest in and to Your Contributions."

> I'm all for freely contributing to projects, but I will never assign my copyright to a corporation. A not-for-profit at least, but corporation, come on.

The Mozilla committer's agreement, for instance, isn't that different in practice. You agree to specific licenses for your contribution (various shades of copyleft, MPL, GPL and LGPL) -- which amounts to anyone using that code being granted an irrevocable license -- but you retain copyright.

http://www.mozilla.org/hacking/committer/committers-agreemen...


>As for not releasing honeycomb, look at releasing the kludged code from their perspective. They probably didn't want phones released from HC that wasn't ready for phone use, thus giving them a bad name when awful "Android Honeycomb Phones" hit the market.

Wasn't Honeycomb supposed to be a tablet-only OS? In which case, Google could have removed all cellular voice functionality, stated in the readme and release notes that this is intended for non-cellular phone devices only, and released it to the wild. Heck, they also could have refused to grant any usage of the Android trademarks to any manufacturer that used 3.1 source in a phone.


They could have done that but chances are a few of the less reputable OEMs would have ported code from Froyo or GB to get the dialer working again. The open nature of it means there is no restriction that could not be unrestricted.

But in all honesty HC was a rush job (as was most of the hardware) to keep Android in the game against Apple. I'm really looking forward to it getting "there". With 2x the resources (CPU and RAM) of an iPad it should absolutely kill it, but when the applications hesitate for a split-second I really have to contemplate what the hell is going on?


>They could have done that but chances are a few of the less reputable OEMs would have ported code from Froyo or GB to get the dialer working again. The open nature of it means there is no restriction that could not be unrestricted.

Unfortunately, this is probably the biggest mistake that Google has made with Android. Google could have gone the route that the Mozilla foundation has with Firefox, where Mozilla does not allow modified Firefox source versions to use any of Mozilla's Firefox-related trademarks without their consent(http://www.mozilla.org/foundation/trademarks/policy.html). If one does wish to use the Firefox source in an official way, Mozilla has a "Powered by Mozilla" mark that they grant out for people that use the source.

Google did not put such a policy in place with Android, which really limits their power with respect to "rogue" OEMs. Since they aren't charging for use of the OS, it's It has also led to the current issue that a lot of people have with pre-installed crapware or UIs.

Ideally, I think that Google should have created a "Powered by Android" mark that they could grant to anyone that follows certain restrictions, like full comparability with the Android App store, the ability to root the phone, multitouch, etc. That would help them to protect their brand, especially in this case, because it would allow Google to enforce any potential issues like trying to shoehorn a 7" tablet UI/OS onto a 3.5" phone. Also, like Firefox, it would not stop guys like Cyanogen, because they could still use some other public mark.


They do have that, it's "with Google". Android phones that follow Google's platform guidelines can put a "with Google" logo on the device, otherwise they cannot.


The problem is that the marketing is all around "Android", but the enforcement is around "with Google". So vendors that ship garbage can still ride Android's marketing coattails (and dirty them).


Google defines "with Google" as(from http://www.google.com/phone/):

>'with Google' phones have been optimised for use of Google Mobile Services, providing easy access to Search, Voice Search, Google Talk, Google Maps, Gmail, Sync, YouTube and Android Market (where available).

And normal, non-branded phones are defined as:

>All phones in the Google Phone Gallery come with Android Market and Google Mobile Services such as Search, Google Maps and Gmail pre-installed.

What's the difference? There do not appear to be any real UX-related requirements, because Android 2.2 and 2.3 phones have the branding, some phones that use HTC sense have the branding(and others don't). Also, the Droid Incredible has the branding, but the Incredible 2 does not!


I'd also point out that basically all tool development is done in the open in AOSP. As you pointed out, it's usually just a matter of finding the people necessary to do code reviews.


Exactly. Honeycomb was something of a stopgap to catch up to iPad while Google went for its unified phone/tab ICS OS. Considering all the 1.6/2.1 tablets that were released this year that were just horrible, I can see why google went this route. The industry was fucking up tablets pretty badly and I can't imagine AOpen or Archos or whomever having access to a half-cooked Honeycomb source and pushing out yet another shitty product.

Instead we have gems like the Transformer, Galaxy Tab, Xoom, etc. Seems to me that google made the right move. Soon they'll all have access to ICS anyway. Lets see how badly these other companies fuck that up with their crapware, questionable UI changes, and cheesy hardware (I believe Archos or some other company is still selling resistive screens). Even if they do, we already have an established set of decent tablet products.


> hinted at by Google employees in the past, is that much of the code is a kludge unsuitable for publication.

Sounds like their were embarassed about the quality of their code.


It could also be that it takes a very large amount of time to check and verify what can be released as open source code. Reorganizing the code so that proprietary drivers and internal-only APIs are abstracted out can take a very very long time. Even if nothing has to change, the time spent checking for these things was probably better spent working on Ice Cream Sandwich.


They're fine reasons, I just think it's lame to tout how "open" they are when in practice, it's more like "open when we think it's a good idea".


According to this[1] data Honeycomb is <2% of used Android versions. With the versions that 98% of the devices run being open I'd say it's a bit more than just touting about it..

[1] http://developer.android.com/resources/dashboard/platform-ve...


> According to this[1] data Honeycomb is <2% of used Android versions.

Because it's a closed-source Android variant that only works on specific devices.


Why did they even bother, then? That info makes this whole thing less understandable to me, not more.

Edit: Actually, that's beside the point. I think the reason they made Honeycomb is because they thought a lot of people would buy Android tablets, because a lot of people were buying iPads. But they were wrong about that.

I'm just saying, if they did it this way one time, there's no guarantee they won't do it again. How "open" it is, is really subject to Google's whim.


Something has to figure out that a product "IS" not open source AS LONG AS THE SOURCE IS NOT RELEASED. So no, right now, ICS is NOT open-source.

It will be the day they release the source.

Being open-source is not a design attribute. It's a process.


"Although the Android 4.0 Ice Cream Sandwich software development kit has been released, the source code is not yet out."

I believe this is called "closed source." When I go to http://source.android.com/, the latest release is Android 2.3 ("Gingerbread").

Am I missing a repository somewhere, or is Google "happy claiming the kudos and moral high ground that comes with OSS without really delivering on it", as it's put later in this thread?

(Edited to be less inflammatory)


There's a difference between "making shit up" and pre-announcing.

It's not unreasonable for them to hold back the source code until the first phone implementing the phone (the Galaxy Nexus) is available next month.


It's not "unexpected" or "uncommon", maybe. I think it's entirely unreasonable for an entity calling itself an "open source project" to withhold code under development from the public. There's no project here. But it's still better than we got from Honeycomb (or Apple, or MS), so I guess beggars can't be choosers.


Two of the original open source projects, emacs and GCC, did this for many years. In fact, if you shared the source code of development versions, you were banned from the FTP server that contained it.


That may be true (not sure abuot the banning thing, I've never heard that story), but you're sort of missing the difference in spirit. Certainly the FSF in its early days was eager and active in recruiting new developers, and merging code from the community. Read all the early Gnus Bulletins for lots of examples.

If you wanted to see RMS's emacs source, all you had to do was ask and promise not to spread it around before he'd made a release. That policy may not have been a good idea in hindsight, but it certainly wasn't because of Stallman's desire to keep control over his "product".

Google, on the other hand, doesn't seem to be much in the habit of letting people see their code simply because they want to contribute.


I agree. I'm not wild about the "open" model they adopt - the code is (generally) open but the project certainly isn't and they do seem to play around with it to suit their commercial needs.

But given that Amazon have gone and lifted the Android code base and reused it without any endorsement or sanction from Google and largely not to Google's benefit, Google deserve some kudos for continuing to outsource Android at all.


Wait, what now?

If you release a project as open source having someone come along, repurpose it and use it is what you are hoping for. The entire idea is for people to use that source code that is now public to build new projects. You don't open source a project for the recognition. Why should it have to be sanctioned by Google? Why should it be endorsed by Google?

I can go out and download FreeBSD, strip all of the FreeBSD marks, and brand it bertBSD and I can do whatever the hell I want with it (following the license it is under). I don't need endorsement nor sanction from the FreeBSD foundation!


Well, to be fair: there are lots of reasons for releasing and using free software. Google's (as opposed to Android's) interests aren't necessarily served by someone else rebranding it. And a project generally is hurt by a fork. Having Amazon's even more walled-off fork of Android exist does nothing to help users of smartphones.

But your broad point is exactly right: we're all better served by working together on software instead of racing for parochial advantage by building on top of it without contributing to the whole. Open Source has lots of big advantages, but to do it "right", there are costs to be borne as well. The Linux community has on the whole found a pretty good balance between these concerns. The Android community has had some pretty bad missteps.


I agree there's a difference.

"Pre-announcing" suggests that the announcement will be followed by code release. In the case of 3.0, I think the first devices shipped back in May-- that's about 5 months ago. With that history, this seems more like "making shit up" to me.


75% of the versions of Android have been open and in all instances other than one when they've said so in advance and gave a reason.

The only instance where they've said that it would be open and wasn't (3.1) was a logical follow on from 3.0 not being opened - not ideal but hardly grounds to suggest that when they categorically state that they're opening it up and that someone has been working on doing that for six weeks they're "making shit up".


I should be clear: I don't mean to accuse Dan Morril of making shit up. The guy is probably speaking honestly.

But in the larger picture, Google has been calling Android open source from the beginning. They haven't released source for 3.0, 3.1, or 4.0. (Yes, the 4.0 devices haven't shipped yet, but if they're really shipping in a month, the code has been in QA for a while.) That's disingenuous, to me.


I agree that they were happy claiming the kudos and moral high ground that comes with OSS without really delivering on it but the reality is that the versions you list are running on an estimated 4 million devices (tablet sales to date) of the 550,000 being activated every day. Somewhere in the region of 98% of Android devices (all the phones currently available) are running an OSS OS.

And if you don't mean to accuse someone of making shit up the easiest thing to do is to not use the phrase "making shit up".


Your first sentence is basically what I think is happening, so I'll soften the language to be less abrasive. I don't think it's a fundamentally different claim-- they're saying it's open source while not releasing the source. It's dishonest.

Your stat about the 98% of Android devices is somewhat convincing. 3.0 and 4.0 aren't a fork for tablets though, are they? Future phones will use 3.0 and/or 4.0, right?


> 3.0 and 4.0 aren't a fork for tablets though, are they?

3.0 was essentially a fork for tablets. 4.0 is where they merged that fork back so it works on both phones and tablets, which is why they will be releasing the source of 4.0.

This says to me that Google felt that the user experience on phones is so important to them that they're ok with a closed source fork for tablets as a way to keep people from running Android 3.x code on phones and having a poorer user experience.


The headline is off. The linked announcement by Dan Morril said the source will be released after the devices are. So it should be future tense.

But neither is it closed source: there's been no release at all yet, so if you need a term, use "vaporware".


Given that they've demo-ed it at the launch of a handset and that there are videos of it running I think vaporware is both inaccurate and needlessly harsh.

It's an announcement of a future event. If we're calling this vaporware are you also referring to Windows 8 as vaporware?


There were videos of Duke Nukem Forever running before it was released, and until its release it was still considered vaporware.

To me it sounds like an accurate term to use. As for Windows 8, I am happily running the alpha they made available so no, Windows 8 is not vaporware.


I see your point about vaporware, but I think that term generally refers to software that will likely never ship. I don't think Google will fail to ship 4.0.

Right now, the source exists, and I can't get it. I think it's pretty straightforward to call that closed source.


> I think it's pretty straightforward to call that closed source

Straightforward and pedantic. Even the GPL allows a "reasonable" time for someone to yield the source upon request which as been widely interpreted as up to a month. If the source will be available in a reasonable time period then it's reasonable to call the general project itself an open source one.


If the code is unfit for others to read why is it being shipped in production devices?


Because the quality of the source code and the quality of the resultant binaries are two completely different things.


The source code is used to produce the "resultant binaries" so unless you have a very strange definition of "quality" the OP has a very valid question.


> a very strange definition of "quality"

Is it strange that, say, comments are stripped out of a binary? Or that the file names of the source files are not in there? These things are examples of aspects of quality that have no impact on the binary but make a big difference to the quality of the source.


because Google felt they had to release something to stop manufacturers shoehorning 2.2 into tablets and making thelm look bad.


Because the industry norm for consumer gadgets is short product cycles, with the production of terrible quality code that doesn't see much maintenance after the release. Most users won't notice.

Even a "quality" product like the iPhone was shipped with everything running as root and a mess in the filesystem (and that's for a platform that has been maintained since).


A fine question


Sounds to me like a complete open sourced code is going to come to a decision when Google acquires Mototola Mobility... Will that be then end or a tweaked version for external developers?



That is the source code for the open source stuff that Apple uses in their product, it is not the full OS itself.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: