Hacker News new | past | comments | ask | show | jobs | submit login
Google releases full Android 4.0.1 source code, includes Honeycomb too (groups.google.com)
481 points by patrickaljord on Nov 14, 2011 | hide | past | favorite | 114 comments

In the past, I've spent a fair bit of time criticizing Google for calling Android "open source", but not releasing the source. Now that it appears that they are actually doing it, let me be the first to say that this is great.

Well done, Google.

What people criticized about them was the delay of an open source release to sustain their business strategy (commoditize their products' complements via open source but keep a integrated experience by proprietary early-access agreements - see also http://www.joelonsoftware.com/articles/StrategyLetterV.html ).

This release doesn't change Google's strategy nor the fact that they will continue to release Android's source code in the future with a significant delay compared to early-access partners. There's no reason to congratulate them now nor complain louder some months from now, they'll continue to do what makes sense for them from a business standpoint. The only news are the yet-to-be-discovered jewels in the just-released source code.

  > This release doesn't change Google's strategy nor the 
  > fact that they will continue to release Android's source 
  > code in the future with a significant delay compared to 
  > early-access partners.
As of today there is not a single phone on the market that runs Android 4.0. Besides, open-source does not mean open-development. They have every right to release the code to whomever they want, whenever they want. And because they release the source to most (as of now, 3/4) major releases, that absolutely counts as "open source."

Besides, open-source does not mean open-development.

Google has done a lot to confuse this by referring to everything as just "open". They were still calling Android open even when it didn't meet Andy Rubin's own tweeted 'definition of open'.

"open" is an overloaded term that doesn't mean anything nowadays. "open source" on the other hand has a clear definition and Android definitely fits that definition.

Even yesterday, when Android 3/4 was not available as open-source, Android 2.2 and 2.3 which are the most deployed versions were definitely available as open-source.

And this is relevant, because that's the power of open-source. If you're unhappy with how Google is managing the project you do have the right to fork it. Amazon did just that. Xorg also came into existence that way, amongst other projects.

And yes, it takes resources and you've got to make it popular somehow and that ain't easy and I also fear that Google may close future versions of Android completely, but is it mature enough for a fork to be possible and to survive? Hell yes. Can the parent (Google) attack forks based on patents? No, because the Apache license protects you from that scenario (it's a little ironic that a pro-commercial license is safer than GPL v.2)

Which is why I consider Android to be a lot more "open" than the other 2 alternatives floating around, iOS and WinMo. That's my own definition anyway, which is why I began by highlighting the meaninglessness of the word.

The GPL v.2 was written in a time when it was rare that patents were wielded as weapons.

Yeah, it's too bad that people won't just migrate to GPLv3. The GPLv3 codified the FSF's working practice of allowing continued use if the offender comes into compliance. Following the letter of the GPLv2 is much more severe. Fortunately, I don't think anyone's ever really insisted on enforcing GPLv2's termination clauses and Linus and most other major GPLv2 projects seem inclined to follow the FSF's model. I don't think FSF will cause trouble--but lawyer-led asshole behavior seems to be on the rise.

Some people criticized AOSP because they believe the delayed release is unfair (a reasonable criticism). Other people (sheep) criticized them because they actually believed Google was never going to release more source or because needed an arguing point against the OS.

Actually until Google releases the source you can never be sure if they're going to release it.

They release this time.. you and I can only hope that they keep doing it in the future. It wouldn't be all that surprising if it would go closed source (except for key partners) at some point (and except for the GPL content).

Specially when any company could just rip the source, make it nicer looking and release their own version of Android and close the source on that... oh look it has a name, it's called MIUI!

Imagine if many cheap Chinese manufacturers release decent phones with it, that cost 3x cheaper than the rest, and no Google stuff inside, no control, yada yada. Well, personally I'd get one :-)

     It wouldn't be all that surprising if it would 
     go closed source
As with anything in life, there are forces that prevent them from doing that. Also, the whole point of open-source is the right to "fork" which trumps all other freedoms you might have.

Xorg came into existence because of disagreements with the XFree86 license, while XFree86 died ... http://en.wikipedia.org/wiki/X.Org_Server#History

     Specially when any company could just rip the source
Few companies can do that because few companies have the resources to do it. Nokia is a monster amongst phone makers and they weren't able to make their own OS, even when their own survival depended on it. These companies using Android depend on base Android to remain open-source, they made an investment in Android because it was supposed to be an open standard, which is why Google must also play nice, otherwise they risk forks. And in case you haven't noticed, Amazon just forked Android, so it's not unheard of.

You see, forks from small players cannot survive because they'll lack the advantages of the main branch (especially the Marketplace). On the other hand, Google must play nice because a fork coming from an alliance between several of these players can kill the main branch.

    Imagine if many cheap Chinese manufacturers release 
    decent phones with it, that cost 3x cheaper than 
    the rest
Considering that most phone manufacturers are assembling their phones in China, what would prevent them from also releasing cheap phones?

Also, most people don't want cheap. Most people want reliable and affordable, which is why iPhones and Galaxy S2 are selling quite well, even though there are cheaper alternatives on the market, even from trusted brands. Consumers don't want the cheapest products, instead they want the best value/price ratio (as long as they can afford it). Making an analogy with cars, there's always going to be a big market for Audi, BMW and Mercedes. Some people even prefer to buy second-hand cars from these brands, instead of a cheaper but out-of-the-factory alternative. That says a lot.

> Also, the whole point of open-source is the right to "fork" which trumps all other freedoms you might have.

No. That is the whole point of free software. The point of open source is just that the source code is made freely available.

I'd like to understand why Google didn't use a copyleft licence.

Phone makers were afraid of copyleft for various reasons, mostly irrational. Also, copyleft probably wouldn't help Google's goal of getting as many Android devices in the market as possible.

A viral license actually could have been a much more effective carrot/stick tool for Google vs. their current situation (early source access, carrier contracts, etc.). Play ball with us (Market, etc.), and we'll give you a full closed-source license. Otherwise, we expect to see full source of your modifications made available per the GPL.

No, what the OP and I have criticized them for is not releasing the code for 4. If you are unable to understand this, that is your problem. Google have done good. What you are talking about is another issue, and an important one, but it does not change the fact that WE HAVE CRITICIZED them for exactly what the OP said.

ahem if you check mobile dev history you will find Nokia did the same thing with open source Symbian, etc..

No viable successful open source mobile OS gives equal access to public and OEM partners to a private tree

Well, if Nokia boasted about Symbian's openness, they were in the position to be criticized too. It's mostly a PR problem.

"No viable successful open source mobile OS gives equal access to public and OEM partners to a private tree"

This is a true statement but you've set the bar pretty low there with 4 qualifiers.

And look how well that turned out for Nokia.

Oh, wait...

You know that Honeycomb was the only distribution for which Google did not release the source, right?

So... call me crazy, but I think it's wrong to praise a project which claims to be open-source for, um, actually releasing source. And honestly, the fact that we've come to this indicates just how completely Google has failed at being an open-source citizen.

"And honestly, the fact that we've come to this indicates just how completely Google has failed at being an open-source citizen."

If you can download the source, distribute it, modify it, collaborate, and install the modified version easily on your device; then it's a quantum leap forward from any other mass-market mobile device.

In my opinion, that's huge. Right now, google is offering you the ability to actually know what your phone is doing (a huge issue when it comes to government or corporate surveillance), and puts everyone on a level playing field when it comes to writing applications and improvements, and it will likely speed up the convergence of networks so that everything is data (thus eliminating the separate billing for voice and SMS).

Eventually there will be more open, collaborative development. But let's have some patience -- PC's took a long time to be liberated (even now, many people think linux is "not ready for the desktop" and it has a small share). What google is doing is bringing linux to everyone on a new platform and already getting real market share. That's no small achievement.

And honestly, the fact that we've come to this indicates just how completely Google has failed at being an open-source citizen.

Actually it just indicates the large number of analysts/trolls who were confidently proclaiming that Google would never release Android source again.

The code we are talking about is under an Apache 2.0 licence, they didn't have to release anything.

"open-source citizen" is in the eye of the beholder, if you are a die hard FOSS advocate then yes, they have failed. If you are happy with code being released when it is deemed ready (of course readiness in this case might have been influenced by marketing factors) then they have been quite successful.

Yeah, I see your point. But I think it would be lame for me to make fun of them for a year (or however long Honeycomb has existed in closed-source form) and then not at least acknowledge that they did finally release the source. I said "well done," but maybe "at least you're in compliance with the GPL" would be more appropriate.

"Well done, you've put in the bare minimum amount of effort required to still get away with the open-source moniker" is not particularly flattering...

You are correct. That is approximately my feeling about the situation, but, like giving a dog a treat when it behaves well, I think it's good to praise companies for behaving adequately because I think it increases the chances that they will keep doing it.

You hear that, diBona? Keep releasing the code!

They've always been in compliance with the GPL; the Honeycomb kernel sources were always available.

I hadn't heard that. Is that verifiable by any means at this point?

It still doesn't justify the "open source" moniker, but it's still good.

The kernel source was at http://android.git.kernel.org/ but that server was subsequently destroyed in an unrelated incident and at this point you'd need a time machine to verify that it was really there and hasn't just been backdated, but yeah, it was available.

I suppose they could have backdated google groups, but here is JBQ's announcement of the 3.2 GPL's parts being released in July. http://groups.google.com/group/android-building/msg/6410b447...

And here's a thread discussing building the 3.1 GPL'd code in May. http://groups.google.com/group/android-building/browse_threa...

Thanks for the links; they're convincing. I'm surprised that Google hasn't made their GPL compliance here more prominent. It's something I've heard criticized, but it sounds like the criticisms are illegitimate.

Right, no coincidence a year's backlog of updates comes out on the same day Amazon ships their tablet. Good luck to Amazon with merge.

Of course it isn't coincidence. It's not like there's a major shopping season (when people often buy new electronics) that might be influencing both Google's and Amazon's schedules or anything.

Interesting point, especially considering Google specifically said the source would not be available until the Galaxy Nexus was out.

>year's backlog

This is inaccurate, they have been releasing patches and updates for other versions of the platform over the last year.

They did skip Honeycomb, which fits your Amazon theory, mind you, from the reviews I have read the Fire would not benefit greatly from ICS as they Frankensteined the Android experience.

The Galaxy Nexus is hitting stores in the UK on the 17th so the release is only a few days early. It wouldn't surprise me to find out that they got done a little early and decided to "push the button" anyway.

Just received an email from clove.co.uk stating that the UK release (at least for the SIM unlocked version) was pushed back to the 23rd.

It won't be any more difficult for Amazon than it will be for any other OEM; phones are merging in from 2.3 as well. And that's making the assumption Amazon actually cares about being in sync with AOSP.

I never had any doubt that they would.

I doubt they released the 3G stack part though.

Unless I can't make a 3G equivalent to wireshark I'll have a hard time calling the platform open.

I don't know of any phones being sold that have open source basebands.

I can say with some confidence that an open source baseband will never happen. The carriers won't allow it, and there is good (technical) justification for that. Basically, it is easy to mess up some "tiny" detail of the standard, and disrupt the local network for all nearby users. The compliance testing needed for any phone is huge and expensive.

That doesn't change my point : none of them are completely open source.

They've open sourced every version but Honeycomb and had reasons for doing so.

The only stated reason I've heard is "the code is ugly," which was found to be... unconvincing here on HN. Are you aware of another reason, specifically one which would be convincing?

It had everything to do with fragmentation. Honeycomb (by Googles admission) was a stop-gap to get something out for tablets. They chose not to release the source as they wanted to limit the number of devices shipping with honeycomb in favor of a more compatible (and developer friendly) version in ICS.

How is that related to fragmentation?

If you are writing an app for phones you don't have to target honeycomb at all, that is reduced fragmentation.

Ah, I assumed enjo was saying it as a negative.

The stated reason wasn't that the code was ugly, it's that it didn't translate to phones at all; Honeycomb was only ever really good for tablets. There was concern that manufacturers/homebrewers would put it on phones and that doing so would make android look like shit.

By that logic they should have never released the source code for any of Android, since Android is shit on desktop PCs.

Which would be true if everyone was clambering to run Android on their PCs.

[dead] comment by cdibona: "Please don't sync yet, it's currently in a mixed state. The 'repo for-all git push' is still running and will take some time to complete, so if you sync now you'll get some parts with Gingerbread and some parts with ICS."

(If you accidentally post something twice, be careful about deleting one. The other one may be automatically killed, but you don't see it when your posts are killed.)

It looks like it happened because he posted the same thing twice in different threads, not because he deleted it.

That's correct. It wasn't clear which one was going to end up on the front page and I was covering the bases.

Stand by :-)

Why is Chris DiBona's comment in this thread dead? What he said is "from the horse's mouth", i.e. Google Open Source.

Comment: http://news.ycombinator.com/item?id=3235947

Profile: http://news.ycombinator.com/user?id=cdibona

Personal site (includes mention of his job): http://www.dibona.com/

P.S. Chris, you have http://dibona.com in your HN profile, but it just redirects.

>Why is Chris DiBona's comment in this thread dead?

He posted the same text in 2 comments (in two different threads). Probably the second of the 2 was a victim of an automatic dup detector/killer.

Interesting. I wasn't aware that HN checks comments across threads. Makes sense.

I guess I'll start salting my dupe comments :-)

You can salt them by including a link to the previous comment you made :)

Related: how's Apple's "open" FaceTime specification coming along? Still waiting on just the specification here. Not even code.


(Edit: You'll downvote me, but not the troll? WTF?)

One word (or few word) posts like "Troll", "Fanboy", "This", or "LOL" are frowned on at Hacker News because they don't add anything to the discussion.

There are two links to this post on the front page right now. This one, https://groups.google.com/forum/#!topic/android-building/T4X... , loads fine on my computer and comes up in the "new" Google visual design. It completely fails on my phone (Android 2.3), displaying "Loading..." for a while and then bumping me to the front page of Google Groups with a little message saying I am now logged in (I tried several times). The other link, https://groups.google.com/group/android-building/msg/c0e01b4... , just works, everywhere, but shows the old Groups interface.

This is a really sad state of affairs. If Google can't guarantee that their fancy new Javascript-dependent links won't work everywhere, they should not be used as permalinks.

I really don't care about any arguments people might want to make about the visual redesign, or how to properly implement #! paths, or the extra effort involved in generating resilient URLs, or Google paying special attention to how the Android browser handles pages, or what evil things my phone company might be doing my my data stream, and how that's not their fault, or whatever. Permalinks should work. Everywhere. Period.

Not _quite_ full source code --- some proprietary graphics drivers are supplied in binary-only form. It won't matter much for most uses of the source code, but purists will be displeased.


That is probably not in Google's hands to change. It's the same with the vendor-supplied GPU drivers in desktop Linux as well.

I guess that the netowrk modules that handle GSM and 3G packets are out of the open source code also. That is disappointing too.

Google releases every source code except Honeycomb. I think the code was really ugly, released urgently to support tablets. I cant blame Google, we who works with software in big companies know how pressure and strict timelines can be a pain, but I am glad that things are back on track.

I agree that pressure and strict timelines can be a pain, but compliance with the GPL is not optional.

Only Android's modifications to the Linux kernel and a few other tools are under GPL. Most stuff is Apache 2.0.

That's what Google used to tell us, but according to the guys of gpl-violations.org, this has always been a flat-out lie. Those "few other tools under GPL" are quite a lot and in no way negligible.

They released the GPL parts.

I hadn't heard that. Is that verifiable at this point by some means?

They've made posts in the android-building Google group when making GPL code drops. Here is the most recent, corresponding to GPL portions of Android 3.2.1.


That's good and convincing. I stand corrected.

while I found the opportunity that many commenting and interested in this topic, let me ask a question. Can one upgrade any android phone by himself? (I do not own one), or one need to wait for the carrier and or manufacturer need to do it?

If your phone is rooted, or rootable, there's a bunch of devs over @ XDA-developers forum that create custom ROMs for most Android phones.

The most famous of these is CyanogenMod, which works across most Android phones out.

Once they port it to your phone you can flash the ROM and run ICS on your phone!

Thanks for the reply. Using the keywords like "custom ROM", "rooting" you mentioned in your reply I am also able to google for more.

Now the only thing missing is a winning strategy for desktops/laptops. :-)

Seems like Chrome OS should be folded into Android and many people would be comfortable using it at home. Same apps could run and sync on all devices.

Unfortunately the two systems are very different and largely incompatible.

Merging them would not be impossible, but it's not easy.

I don't know about that. Certainly there are large differences under the hood, but isn't Chrome OS just supposed to run browser apps really well? I don't think that's a very hard compatibility measure for Android to match.

The entire point of Chrome OS is that it's only the browser. Saying you want Chrome OS merged with Android is the same as saying you just want a Chrome APK. Chrome OS's key tenets of security and simplicity are simply not compatible with traditional operating systems.

Google seems to be trying to position itself as the Microsoft of the post-PC world. I doubt ChromeOS, as an operating system designed for the now-defunct netbook, plays much of a role in that strategy.

> I doubt ChromeOS, as an operating system designed for the now-defunct netbook

Actually, ChromeOS isn't just for netbooks. It's for a world where everything you want to do on your computer is available via a web service. Netbooks happen to be suitable for ChromeOS now because the web services available today generally don't require much heavy lifting client-side. Especially if NaCl/PNaCl takes off (who knows?) that very well may change soon.

That's why ChromeOS as designed is, in my opinion, actually unlikely to become defunct anytime soon: I personally suspect the percentage of consumers for which ChromeOS's capabilities are sufficient will continue to rise over the next few years.

Why don't they just tag all of Honeycomb?

If the reason is that there's no combination of project commits that can create a building Honeycomb, they should just admit to it and explain why.

The current approach seems like a weird attempt to snow something over - I understand that Honeycomb was a rushed, trashy Android release, and that there's some pride involved, but supposedly all of the rushed, trashy code is in the tree now, and hence there's no going back. The first thing everyone on xda-developers is going to do is go hunting for bad Honeycomb code anyway.

I don't know that it was so much "bad" code as they didn't want other groups to try and put Honeycomb on devices that it did not work on (i.e. phones). This would hurt the brand and fill the tech blogs with "Honeycomb is unstable and buggy!" when it really didn't belong on those devices in the first place.

There's a new release now that is stable for all kinds of devices, is it worth it to concern ourselves with what exactly is or isn't Honeycomb? I don't think they were trying to snow something over, I think this was their plan. Release Honeycomb after ICS since device manufacturers will use ICS anyway since it's new.

I've heard so many complaints from developers about the delayed source release, however I've never known Google to withhold source code for Android.

Could the slight delay in release simply be due to legal issues such as scrubbing patent issues and verification that OSS code isn't infringing?

They're probably talking specifically about Honeycomb, which started showing up in devices in Feb. 2011 according to Wikipedia, but only now is being open-sourced. So that does seem to have been withheld.

Not that missing that deserves the downvoting you're getting though.

Honest question from a maybe-future Android dev: is it notably more challenging to develop for Android during periods when the source is not yet public? For example, is a lot of platform doc written from the POV of someone who expects you'll just peep the code when questions arise?

Update: +1 to everyone thinking 'man, I bitch about google sometimes, but this kind of thing is totally legit and awesome'

I do Android dev full time and it's pretty rare to actually need to look at the source. The only time is when encountering a strange bug that you suspect is caused by the underlying implementation.

Google has generally been good about releasing emulator images prior to releases, though usually it's only a few weeks. Luckily, it takes time for Android versions to achieve large market share, so any bugs can be squashed before it's a big problem.

Sometimes when I'm in a bad mood, the API and online doc are not cutting it - I start wondering why it doesn't work the way I'd expect it to, and from there I have multiple options, from StackOverflow to Google Groups to ordering a book on Amazon.com, and this is the true productivity killer because of, you know, the internet.

The definitive and fastest answer will always come from reading and understanding the source code, as I don't have to hope that someone had the same problem I'm having and someone else had an answer, or that someone will reply to my question before I give up. Eclair, Froyo and Gingerbread sources were enough for 99% of my needs though, but there was always this shadow of doubt for Honeycomb-specific features...

For the most part, having the latest source readily available will greatly reduce the amount of open browser tabs, and for that I'm thankful :)

is it notably more challenging to develop for Android during periods when the source is not yet public?

Not really. It's occasionally convenient to have the source, but it's not at all required and the documentation doesn't assume that you do.

I'm not sure why any developer would need access to source code with such a well documented SDK.

Lots of hackers would like the source so they can poach the some code, make a few enhancements then make a quick buck though...

So, the Android website is packed full of information about how to clone the Android repository and build it from scratch, but I just want to browse it online. Is there some official "gitweb" site or something that I can poke at?

Android sources get mirrored to https://github.com/android/, which allows browsing of the code. The latest release is probably not be there yet, though.

For example, source of the MMS conversation list:


-- update: Another great place to browse the source, with working links to other classes, multiple versions etc, is grepcode:


github.com/android seems be a mirror of kernel.org, which isn't where Android is hosted any more...

Used to be; they haven't got their gitweb back online yet though. They're still in the middle of moving all their infrastructure internally after the kernel.org breach.

I'v never seen so many people BITCHING about getting free code. No less an entire OS that runs on hundreds of devices. Maaahhhh you didn't release it fast enough. Stop whining!!

Meanwhile at Daring Fireball

crickets http://www.youtube.com/watch?v=K8E_zMLCRNg

I criticized google for holding back honeycomb, now it's finally releasing the code again. Great! Thanks Google.

That source tree is huge. Over 6GB of data and it takes several hours to sync on my machine (not done yet).

'bout time !

Well done Google!

Only the Honeycomb GPL modules are available. The entire platform source is not available. see here: http://source.android.com/source/build-numbers.html

I think that link is just outdated, it doesn't mention ICS at all.

The link for this submission says:

"This release includes the full history of the Android source code tree, which naturally includes all the source code for the Honeycomb releases. However, since Honeycomb was a little incomplete, we want everyone to focus on Ice Cream Sandwich. So, we haven't created any tags that correspond to the Honeycomb releases (even though the changes are present in the history.)"

Is it possible that specific page of documentation has just not been updated yet? The linked thread has Jean-Baptiste Queru stating:

> This release includes the full history of the Android source code tree, which naturally includes all the source code for the Honeycomb releases.

From Jean-Baptiste Queru's announcement


I gather that the "complete" Honeycomb source is available as part of the git history, but without tags.

Many thanks to http://gpl-violations.org/! Without their pressure this would have taken considerably longer. (Or wouldn't have happened at all?)

To the person who downvoted this comment: Could you explain what's wrong with it?

From what i can see there is no pressure being put on Google from gpl-violations.org (presumably because the haven't made any violations).

Plenty of heat being put on manufacturers with Android devices but that is hardly Google's fault or related to the ICS release.

GPL'ed code has been already released by Google, what was released now is under Apache license.

Probably because it was always the intent to release the ICS source code, and gpl-violations didn't factor into the decision whatsoever. (I didn't downvote your comment though.)


Flash has nothing to do with Google's reasons for not open sourcing Honeycomb.

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