Some more info is available at http://danosipov.com/?p=572
The sad state of WebView is the biggest cause of difficulty writing cross platform HTML5/JS apps, even more so than device hardware fragmentation.
To provide a example, if someone asks me "how does Cydia compare to Installer", I say that it is based on an industry standard packaging system (as opposed to a one-off proprietary one), has package dependencies, a fast local search feature, installs by default with useful repositories, and is open source. It is not useful to say "Cydia is inspired by Installer but shares no common code".
Its a really great project - I'll be trying it out with my own apps.
The other part of this story seems to be that if you move to this as your "api" then you can move the underlying OS tech to something else as well. (away from Linux to something perhaps smaller for a budget phone.) Should be easier than it was for Microsoft to move everyone to the WinAPI and off DOS.
In one fell swoop they can resolve fragmentation, keep everyone up to date on functionality/APIs, bypass OEM/carrier update issues (be it carrier QA, OEM lack of interest, or just crapware). Most importantly google can keep any OEM's (ie samsung) in check and prevent them branching away from android.
The downsides: what happens when google break an entire range of phones/functionality with an update? Are they going to QA every android product in existence?
Will older models slow down and become unusable as the baseline resource requirements increase? (I'm looking at you IOS7)...
Android Community's original description of Play Services as "In a nutshell, Google Play services allows app developers to integrate other Google services, like Google Plus, into their apps" is still accurate today.
I found the Google memos from the Java trial absolutely fascinating… I imagine the story (going back a couple of years) on this would make great literature.
The reason I think the Google system is worse is that theoretically any application can achieve this level of control. So while I might trust Google, it seems all too easy to trick users into installing a different process which can take complete control of their phone. With iOS, only Apple is capable of this level of control, thus decreasing the attack vectors.
EDIT: Admittedly it's highly unlikely that Google would ever let such an application into the Play Store, thus limiting its distribution potential.
It does cut into the openness of Android though. Unless Amazon bends to Google's way of doing things a little bit their platform will stay even further behind, for instance.
It would be nice that if an OEM commits to limiting their modifications to, say, at worst, some privileged apps, that there would be a workflow from Google's OS development to the SoC makers' chipset support engineering, to the OEMs so that new versions could be continuously integrated and therefore delivered to each product shortly after release. That plus some kind of community support model for EOL'ed products would harness openness in the cause of timely updates and long-term support.
App Ops aren't in android 4.3 though. it's not a released feature, it's just a development experiment that never got fully disabled prior to release.
If Google could make licensing transparent and accessible to 3rd tier OEMs, that would improve the customer experience at the low end.
A lot of security updates can be pushed out for the apps and Play Services. However, the underlying OS still needs regular, frequent updates to stay secure, and that's just not happening for the vast majority of Android devices. Who needs 0-day exploits when you have millions of Android devices out there that are vulnerable to exploits that are one, two, or even three years old!?
Great. So, if it was difficult to trust your phone/tablet/tv before it is now impossible. I'm looking more forward to Ubuntu and FirefoxOS than ever before - I want to be able to control what software runs on my devices!
This does help defragment Android from a Google (developed) app perspective.
However, it doesn't do anything for 3rd-party developers. It doesn't do anything for regular consumers who wish to upgrade their 2.3.3 phones or 4.1 phones to the latest version of Android. So Google has a long way to go before they really defragment Android.
Some software improvements and new libraries will be available, and that's a plus for users. But this is still a far distance from REAL OS updates. I'd worry this disincentives OEMs to do real updates.
That 5 year old phone may have the latest Play Services, but what good is that if that leaves only 10 kilobytes of RAM for your app?
However, you're right about the user part. It will help the users slightly, better apps with latest API's will come along, but the users still won't get the latest features of the OS unless the phone is upgraded to the latest version.
Not to mention that if OEMs completely leave Android, they lose the app ecosystem. Having already launched an Android app store was a big boost to for the Kindle Fire. Not many other companies can pull that off though.
From what I understand, this means developpers will be able to rely on android "services" being updated more often and more consistently available.
However, what about things like using new UI components ? For this, you still need the latest OS version, right ? If that's the case, then maybe this would mean users caring even LESS about updating their OS, and thus an even worst situation.
i suppose Google thought about it, so there's probably something false in my statement, could anyone confirm ?
- Apple's store especially needs to be killed fast for innovation to thrive, Apple is turning out to be the new Microsoft, Tim Cook should fear the wrath of developers
- and Google needs to be reminded that it's business could swiftly vanish if it isn't pro-developer and pro-consumer, a 30 percent cut for what amounts to hosting a file is way too much.
Those last two are pretty big, if you ask me.
Contrast this with iOS upgrade path or what webOS had been doing. Seamless (for the most part) and a great UX.
Google is able to do this; see Chrome. What is strange is why they did not adopt the same strategy for Android as for Chrome.
Unlike Apple, where the iOS landscape is 100% consistent (minus physical hardware variations) Android is a mess. Before going to town on Google for "closing" the operating system, let's at least look at the problem they are trying to solve and how this attempt - I'm not saying it's correct, or good - addresses those issues.
Google's been updating core parts of the system like this from day one. The Android Market/Play Store, Maps, Youtube and many other things have received massive updates and been pushed out to millions of people. However, the dominant storyline at the time was that "Android devices don't get upgrades, because fragmentation".
Then suddenly, for no obvious reason, the tech bloggers all noticed at once that this was happening (possibly because they had started actually using Android?) and it was portrayed as sudden U-turn by Google. A weapon in their "war" against Samsung (don't get me started on that one).
But since Play Services has system level access I am wondering if they could've technically been able to stuff the fstrim daemon along with the app updates. All it does is wakes up on idle and issues trim ioctls - Linux kernel proper has had TRIM support for a while.
And I think this affected more than Nexus devices, HTC One gets mentioned in the app description.
Edit: downvotes don't change the truth of the observation. Android is no longer meaningfully open, other than a years old core of basic functions. Just like OSX and Darwin.
The problem is that your observation isn't true. Here are some of the under-the-hood changes in just the most recent releases of Android:
-OpenGL ES 3.0
-Bluetooth low energy/Bluetooth AVRCP
-new DRM framework
-various other optimizations and APIs
You don't need Google's closed services to have a working and meaningful platform. You also still benefit from the large developer mindshare and identical APIs compared to Google's Android.
You don't have the added benefit of the content discovery & delivery platform Google provides, nor of any of the closed Google API's. Depending on your use case, that may make it "meaninglessly open", but I would definitely argue that this isn't a universal statement.
I also have multiple Android devices that don't have access to Google Play (a set-top box and a system-on-a-stick) and I really don't mind that they don't have access to Play.
In my opinion the following software is much more open than Android:
Linux, Apache, FreeBSD, OpenBSD, GCC, clang, and generally most open source products developed by the community.
In my opinion the following software is less open than Android:
C#, OSX, iOS, and generally most software developed by major corporations.
The real keys are that your Android device is locked down, fixing it voids your warranty, and development does not take place in the open, rather every few months a major patch is released and there is no way for the community to contribute to the project in any meaningful way.
As it should. There's nothing in open source that requires a warranty. Here's a snippet from the MIT license, generally considered open:
"THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT."
And from the GPL, also open:
"THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW."
When manufacturers go out of their way to lock down a device, I agree that's a jerk move. But I also don't think it's reasonable to expect them to agree to replace your device if it bricks after you've hacked the firmware. Obviously, the device may be bricked for reasons entirely unrelated to whatever you've hacked, but I don't begrudge manufacturers for drawing a line in the sand and not wanting to expend resources beyond it.
IBM somehow figured out how to do it on an IBM 5150 back in the early 80s and my Raspberry Pi supports it on ARM systems.
I'm happy to use my iPhone which doesn't allow firmware mods under warranty, however, I've never heard Apple talk about the iPhone being an open platform. Google's stance on the openness of Android strikes me as disingenuous.
Yeah, that one never gets boring.
Oh, you mean the _hardware_ is locked down? Guess what, I can't install Ubuntu on an Iphone either. I guess that makes Ubuntu non-open then?
open source licenses generally don't provide warranty because they don't have to and devs, providing free stuff, certainly do not want to bother with warranties.
Just compare how much an insurance costs that covers damages caused by yourself (being negligent) as opposed to those covering only damages caused by hardware/software defects.
That's not an issue about Android though, it's an issue with manufacturers.You are free to release an Android device that is not locked down.
Of course a more cynical mind can see a reason in planned obsolescence - if you stop updating a device after an year you will buy your next sooner.
It seems to be an issue with 'Android' as no one, including Google, makes an Android phone on which you can install a modified version of Android without voiding the warranty.
Of course when you do that, the current level of openness is not just "no longer meaningful", it's bordering on parody.
Google has all the right to change the openness of it's software, but generally should be truthfull in their marketing. I haven't lately found them promoting Android for being open source, so all we need to be aware of is that Android, iOS, WP, BB are not open and are of course made to create profit for their companies from their users.
Back in the days, people argued that free software will not survive if they keep being idealistic. Instead, people argued that free software should market more, and compromise more with proprietary software. Well, here is the result.
That is not 'free to do whatever you want'.
The GPL speaks for itself. You are free to modify GPL-licensed software and distribute your modified version with the caveat that you make the source code available. Thus you are in fact free to do whatever you want to the software. The restriction is on the distribution of the software, not the modification you make.
Why does that one restriction cause so much distress?
There are still a lot of new features being introduced to the core Android APIs, with fragmentation issues being mitigated by a provided support library  which essentially backports the newer APIs to older versions of Android (some new features are only in the support library).
Android as it's sold in most consumer devices obviously isn't entirely open, but Google still seem to be attempting to strike a balance between supporting the open-source platform on the other, and building up a suite of closed userland features on the other. You might disagree with their judgement on where the balance is, but I think it's unfair to say it's being developed as a completely closed product.
Yup. People bashed Microsoft about this for years because everything was so tied together, there was even an agreement to unbundle it as part of a European Anti-Trust case. As developers, we are ALWAYS talking about decoupling systems, making things easier to manage and exchanging data using APIs. Don't see what the problem is with this, and if it means Google is able to get security patches out quicker rather than relying on manufacturers, then this is a win-win situation.
I wonder if Apple will ever get the Microsoft treatment
The downside is the new APIs are showing up in the closed-source Google Play services, and not in the open source Android project.
The only thing there that is not explicitly tied to Google itself is the new location stuff. The rest is game, maps and Google+. I could totally see an argument that the location stuff (geo-fencing and such) would be more appropriate in AOSP, but that's about it. I'm going to keep my pitchfork holstered until I see a real pattern. Well, probably not even then since I don't see closed-source as a personal affront, but you get my drift.
I doubt it. The manufacturers would revolt at that point, and potentially fork the entire platform.
Open source fanatics are impossible to satisfy, they will always find a reason why the flavor of open source that a company or an organization picked is not the "real" open source, but the simple truth is that I can load up the source of Android in any IDE and start debugging into Android's system libraries any time I need it.
Good luck getting this from Apple.
I think the parent is correct in that Google is now moving the value added components of their Operating System (as opposed to the more "core" elements of the OS, into closed source and fully under Google's control. It's a rational move, and I applaud them for their cleverness.
"Darwin is now only available as source code, except for the ARM variant, which has not been released in any form separately from iOS."
Symbian? OpenMoko? The upcoming SailfishOS, Tizen, Firefox OS, and Ubuntu phone? Oh, you meant in the U.S., I guess. (Yes, I know that all the above have either already largely failed or have sketchy futures. That's an entirely different kettle of fish.)
> Open source fanatics are impossible to satisfy
All I want is the ability to make arbitrary changes to the software running on my phone. Why is that so hard?
What mainstream OS makes this easier than Android?
Considering the closed source bits of Android have no equivalent in Firefox OS I would say it's equally open source as Firefox OS.
Btw, the Linux kernel is the only GPL piece of code in Android. However closed Android is or will become, the kernel will still be provided because of the virulent license. Arguing Android is open because they ship the kernel that allows FirefoxOS and Ubuntu to boot on some devices is wrong because they are legally bound to ship this kernel, it's not an act of good will (but doesn't mean they wouldn't do it out of good will).
http://opensource.apple.com/release/ios-61/ (and a lot is shared with OS X, such as the xnu kernel)
If it matters: to be fair, Android was around before Google's involvement and they purchased the source + hired the developer (1), and the Linux core of Android also wasn't developed by Google, IIRC.
(1) they probably did more work on Android than Apple did on CUPS, but that's a gradual difference.
And you try and tell the young people of today that ..... they won't believe you.
And most technologically astute people (young or old) know that OSX relies extensively on UNIX software of which CUPS is just one part.
"It was bad because it was a new operating system." -- it was already bad in the pre-OSX Mac era (mostly due to low marketshare).
"And it wasn't just printers but everything. Drivers, applications, utilities. They all took years to move to OSX." -- for applications and most other things Apple had migration alternatives (Carbon APIs for pre-OSX Mac apps, the Classic environment for emulation of pre-OSX and even Rosetta for emulating PowerPC on Intel).
For the case of printers, they really just dropped whatever they had and went with the Linux solution.
As a developer, one of the things that was more appealing to me about Android was that Android seemed to be a more level playing field. But this approach tilts things substantially in favor of Google.
In particular, this solves fragmentation for Google, and maybe for Google trusted partners, but it doesn't seem to do so for any other Android developers.
I don't think anybody's saying the Play app should be open source. But if I were making my living from Android apps, I'd worry that Android improvements would be few and far between. Both the technical and business incentives push to improving Play Services, not the base OS.
I'd much prefer a reality where the play service and app is open, and which upstream source you trust is defined by which certificates you trust, and nothing else. That'd make it trivial to set up trusted sources for a company, for example.
So, I would like to run Free software on my devices. Thankfully the kernel is still Free software, so there's still hope we can have open distributions going forward. It seems a shame to double the work to achieve that goal, so I think it makes sense for the software to be opened up.
You didn't answer the question--what makes you believe you are entitled to free software from a company that employs thousands of people to write it?
However, the pony in this analogy is the device, not the software. The software is more like the saddle -- and Google are selling ponies with their own custom designed saddle, making it hard to ride it any other way than bareback if you don't use Google's saddle - so that they can sell adwords printed on the saddle, and take a cut from everyone that sells Google compatible stirrups.
At any rate, I didn't say I was entitled to it, just that I couldn't see any reason to keep it closed. I do see many reasons to keep it open.
There's certainly a lot of work put into making the stuff work -- but opening up the code won't make it stop working for Google. And I really doubt there's much fancy in there - mostly just grunt work to implement some straightforward ideas. I fail to see how opening that up under something like the GPL or AGPL, preventing someone to (legally) take the code and "run away" with it -- will lower the value of the Android system.
Now that Google has to worry about de-Google'd Android products, they need to keep more of their work for themselves.
That's the antithesis of open.
Further, what's to stop other vendors doing this, possibly without users knowledge? How many users will click "allow" on a permissions box that gives the vendor a huge amount of permissions like this just so that they can use the latest MyTwitFace?
Of course the user has to accept your huge list of permissions first.
Play Services must be playing by the same rules as everyone else or it just wouldn't work on as many devices as it does.
Android has always been, and still is meaningfully open. Google apps are closed source and proprietary. You don't have to use Google services and Google apps.
Almost every single Android app in the Play Store (including the Play Store itself) has always been closed source and proprietary. Nothing really changed. Apps that are related to core functionality are open source and free software. Stock dialer, stock browser etc. are all such examples.
Over time, more features are added OS, drivers, apps. That doesn't really change the overall picture much. Amazon and Chinese companies like Xiaomi are pretty successful using the core Android OS for their devices.
Also, the "1000s of top quality" apps don't exist. Where are they? Most aren't designed for a touch interface so they'd have to be redesigned. Wait, they'd have to be redesigned to give an experience that we already have? How is that not a waste of time? Having seen Ubuntu OS.. It's garbage. "real linux" for the sake of being able to say it isn't worth it if the platform is slower, takes more battery life, and has less apps. Yes, you can improve on those three things, but you'd be putting in so much effort to replicate an OS that is already open source.
A fork of Android is a much better idea than starting from scratch. Look where Maemo, Meego, and Tizen went. Look at where Ubuntu OS will go.
>License Must Not Restrict Other Software
>The license must not place restrictions on other software that is distributed along with the licensed software. For example, the license must not insist that all other programs distributed on the same medium must be open-source software.
Not only does Open Source not imply everything on the platform should be Open Source, it's explicitly against its definition. Google Play services does does not affect the base android operating system. It is given root permissions on the Google backed distributions of the Android Operating System.
It's perfectly fine to complain about Google giving itself a root level backdoor into their official distro. If a less trusted company were to do the same thing, there would be a perfectly validated uproar. But don't change the definition of open source to bolster your argument. In your edit you say "Android is no longer meaningfully open". That's fine, but don't say that it isn't open source, or that it's closed source. That's blatantly by definition false, and the open source community takes their definitions seriously for a reason.
Be a man and get into the argument if you really believe what you are saying. Otherwise keep blowing yourself to fool yourself into thinking that it is the same thing.
If I was a betting man, I would go long on Google.
(See my question here: http://www.quora.com/Why-did-Google-make-Android-open-source )
This is so utterly and complete wrong, and is the sort of ultra-polarized, hysterical comment that does not belong on HN. I suspect that the single and only reason it isn't dim gray is the appeal-to-sympathy "you downvote the truth!" noise that manipulates the weak-willed.
Just to be clear, Google has always had closed source, proprietary Google bits (gmail, maps, etc. Originally they even built these as a big binary blob in the platform image, and it was "fixing fragmentation" when they moved them to separate apps), and the open source Android bits. Everything you heard about Android 4.3 is in the open source bits ("years old core of basic functions" -- what obnoxious, noisy prattle).
I do think that you're probably correct with the meat of what you're saying, but there's no question that at best half of your comment is relevant to the actual discussion and the other half describes itself at least as well as it describes the comment it purports to.
My suggestion: your vitriol should be proportional to the strength of the evidence you present rather than to the strength of your feeling.
While technically your comment isn't an ad hominem since you attribute all these terrible things to the comment rather than the person, I can completely see why it rang a lot of the same bells as an ad hominem argument would for some people.
>Android is no longer meaningfully open, other than a years old core of basic functions.
This is wrong, and things I think are wrong don't belong on HN. I suspect you weren't voted down because of the (logically fallacious) appeal to consequences.
Just to be clear, Google has always had closed source, proprietary Google bits (gmail, maps, etc. Originally they even built these as a big binary blob in the platform image, and it was "fixing fragmentation" when they moved them to separate apps), and the open source Android bits. Everything you heard about Android 4.3 is in the open source bits.
People have created their own definitions for these things on no basis. There's a reason why there are so many terms in the open source world. There's Open Source. There's Free software. There's Free and Open Source software. They all mean different things, and the reason we nerds have so many definitions is precisely to avoid these kinds of misconception and false expectations. Ironically they've become complicated enough that everyone else ignores their definitions.
Not sure what's new here.. Play always came with strings attached. OEMs can choose Play or use AOSP and roll their own Play analogue like Meizu or Xiaomi or Amazon.
B&N decided they wanted to "mainstream" their Android in terms of enabling it to be a "Google-logo" device. Probably a good choice if you haven't got the scale of Amazon's ecosystem.
One of our apps rely on GPS, and the manufacturers that bought that app from us could only make it work after installing Play Services, and they could not figure a way to make it work without Play Services.
It is possible to have access to basic location data from a built-in GPS receiver in AOSP, so the system is not completely dependent on Google Play Services.
But access to e.g. Google's giant wifi-to-location database isn't part of that API. And it's a good service, and something that is hard to replicate and thus a competetive advantage.
But to speak to the upthread parent: it has nothing to do with "drivers". The HAL interface for GPS data is part of AOSP.
It's a service that Google will not let manufacturers replace even if they want to. Horribly anti-competetive. http://www.mobileburn.com/news.jsp?Id=14923
So if you want Google Play and everything else Google in your device, you have to take Google's location services, too. That may not be unreasonable.
It's Google's extra, proprietary services that are, well, proprietary. And that's hardly notable IMHO. There are lots of players in this space, it just happens that Google has done it better and is using that (among other features obviously) to drive sales of its "Play Services" product to OEMs.
Non-free software is non-free. If you care about that stuff, you wouldn't use it anyway.
Google aren't competing in the "Wifi to location" space on merit. They're competing on "we won't let you use our platform if you use a competitor in this space". They're becoming the 1990's Microsoft. This is exactly the shit people talk about when they say Android isn't open anymore.
Are you seriously arguing that that is somehow equivalent to Microsoft using their monopoly position in the market (something Google doesn't even have) force OEMs into bundling their own web browser (the single most important app of the past two decades)? No. Just no.
I'm sorry, but people who want wifi-to-location data in their Android apps or devices can get it. That's simply not anticompetetive in any sane use of the term.
Your last sentence, telling, pivots your argument pretty wildly from "anticompetetive" to "not open". And yes: if you want to complain about Play Services being proprietary software, non-open, non-collaborative and ultimately freedom-denying, I tend to agree. But the idea of this being somehow an antitrust issue is ridiculous.
Did the lawsuit finish?
(Is there one?)