CyanogenMod Installer Application Removed from Play Store
cyanogenmod.org
cyanogenmod.org
Also the process wasn't foolproof even for people capable of dealing with technical issues[2].
It isn't polished enough to go in the play store IMO. I don't know WTF the cyanogenmod team was thinking, non-technical people messing with CM will just lead to negative press.
1: http://www.reddit.com/r/nexus4/comments/1qkfaw/cannot_uninst...
2: http://www.reddit.com/r/nexus4/comments/1qi5lw/official_cyan...
The best I can tell, this is like all of those teenagers installing Napster, Kazaa, or whatever on grandma's PC. Feds show up and "OMG, fines!? I didn't know! I'm computer dumb. I paid $10/month for all nsync!"
I love what CM is doing, but if lay persons and even "experts" are getting burnt, who is responsible? Who gets blamed? Google? Because that's the first place consumers are going to go or to distributors or manufacturers who are going to also going to defer to Google.
An app that bricks even <1% of the devices just doesn't belong in the app store where it gets exposure to lots of non technical users.
Why doesn't CyanogenMod replace or repair bricked devices, when their software caused that problem in the first place?
Why should Google or the device manufacturer pay for it?
Users installing it outside the market though as it was always installed have no more right to Cyanogen giving them a new device than Debian or the Linux Foundation would if you destroy your PC installing Debian Linux.
https://github.com/CyanogenMod/android_packages_apps_CMAccou...
I have no idea what the percentage of people having problems is, but it certainly happened to more than one person...
In fact, the ability to install something outside of the Play store framework seems like one good test for whether someone is ready to make the jump.
CyanogenMod definitely doesn't belong in PlayStore. Having an app like that on Play Store enables many non techies to try it out without understanding repercussions. Who do you think these people will call?
Here is the order:
1. Carrier (Walk in Store)
2. Play Store Support Number (Surprise Surprise Google actually provides phone support)
3. ????
When problems creep up on a product like this, the user will get shafted badly in the end. Google will refuse to help (cue complaints about Google allowing potentially destructive apps in Play store) as they don't support either the software or the phone, the manufacturer will also wash their hands off it, CM does not provide support for this from what I understand.
I have been using Android phones since 2010 (rarely on a stock ROM) and even now flashing anything is done with a prayer on my lips. There are just too many things that can go wrong with the way it is done right now.
I concur with justin66. The necessary skills to deal with something going awry would seem to be good criteria for searching out Cyanogenmod for themselves and making the jump rather than casually clicking on "install" in the play store.
One downside of CM raising money is that they will have to go for high impact initiatives as a must-have than as a welcome side-effect of the stellar work that they have already been doing. Guess they will eventually go the route of CM phones or phones that come with CM pre-installed. The money they raised does not make sense for building a purely software offering.
Aaaaand this is why making root and roms easy access is a terrible idea. I miss the days where knowledge of at least adb and fastboot were required.
It's not politically correct to say, but it's true.
What are they doing with those statistics? What could they do with them in the future? What could they be forced to do with them?
If it's so harmless, why isn't it opt-in?
> Every single website in the world does it
Obviously not. Websites don't have access to hardware the way CM does.
If you would quit trolling for one moment, you could easily find your answer[1][2]. It's no more likely they will get away with sneaking something in than any other Linux Distro would as there are many eyes, including myself, looking at their source as a hobby. There are also those that dislike Cyanogen and would love to see them slip that monitor their source constantly. That is a good thing, and serves a purpose, unless it's a false alarm that "cries wolf" and gets repeated so much, everyone just ignores it when there's finally a real issue. Think about that please when you keep dragging up this current non-issue.
They also give a preview of what they are collecting when you go to the "opt out" screen on your device and the source is on Github. If you're super paranoid, compile your Cyanogen yourself minus the stats instead of relying on what they give prebuilt.
http://www.cyanogenmod.org/blog/cmstats-what-it-is-and-why-y...
And now, the question nobody will answer: Why isn't it opt-in?
E.g. Rom managers such as this one. https://play.google.com/store/apps/details?id=com.koushikdut...
> I don't know WTF the cyanogenmod team was thinking, non-technical people messing with CM will just lead to negative press.
I know atleast three people who tried to install Linux and formatted their Windows partition in the process. So you mean Linux CDs and DVDs should never have been bundled with magazines?
I don't think there's any danger of grandma seeking out CM and going through the process to install it. CM has over 8M installs, having a handful of bricking incidents is nothing at that scale.
Hopefully this has nothing to do with CM making its own handsets http://www.rethink-wireless.com/2013/09/20/cyanogen-aims-cre...
Firstly, a PC != mobile phone.
This isn't a bloody OpenMoko phone - this is a working consumer device that's sold to you as a "dumb" device. It's like buying a television or DVD player, flashing some weird third-party firmware, then taking it back and saying, gee, it just stopped working...
Or flashing your car's ECU chip.
The manufacturer is certainly not expected to fix your mistake. They might for goodwill, but they have no obligation to.
Yes, there is certainly a danger in the proverbial grandma flashing her phone (why do we always pick on grandma's? I mean, geez, Hopper Grace was a grandma wasn't she? Lol).
I've seen countless phones soft-bricked by bad flashes. It's like upgrading your BIOS - if you get unlucky, or the power goes, you're SOL.
Google's just being responsible. The whole point of Android is that you can sideload ADB's easily.
Think of it as a entry test - if you can't load a non-PlayStore ADB onto your handset, you have absolutely no business installing a custom ROM.
Put it this way - you ask me how to flash your car's ECU.
I say, well, firstly, you need to pop open the bonnet and read me some numbers. And then you said to me, "Gee, how do I do that? I've never popped a bonnet open".
My next thought would probably be, "Err, are you really sure you want to flash your car's ECU?".
Cheers, Victor
And those users are surely not expecting that they are going to pay themselves, since they installed the software from the official Google Play store.
What CM does (doesn't matter if intentionally or not) is externalizing the cost for support to Google and the device manufacturers, since they themselves are not willing to replace or repair devices that have been bricked by their own software.
That particular ROM Manager requires having root and an unlocked bootloader prior to use while the CM installer does not. That alone is a big difference, since it implies someone should be aware slightly of what they're doing if they have gotten past the unlocking/rooting stage.
I was excited when CM first announced their plans but I had assumed that, if they were going to release a product aimed at the average consumer, they would first ensure it was suitable for use by the average consumer. If those two Reddit threads are anything to go by, they didn't. That is a massive and potentially fatal mistake on CM's part.
Before they launched the new installer, the traditional CM user needed to have a minimum level of technical chops to even attempt to get CM onto their device. That meant that, if something went wrong, they had a chance of saving themselves. By contrast, the average consumer is non-technical and if your product is aimed at non-technical users, you need to make fucking sure that it's literally idiot-proof because Murphy's Law applies.
Code doesn't exist in a vacuum. It forms just one part of a broader system that can include other code, hardware, network connectivity and people, any of which can behave in unexpected and irrational ways.
At the risk of generalising slightly, developers tend to (a) think that things are going to work the way they expect them to, (b) expect people to behave rationally, and (c) assume that they don't have to worry about dependencies that are outside their control.
Reality is that (a) things often don't work as you expect them to, (b) people (especially non-technical ones) don't always behave rationally, and, (c) if you are relying on something outside your control to work properly, you better make sure that the code you write is capable of handling errors, failures and exceptions.
I constantly hear developers using the words "should" when talking about issues. The user should make sure that the battery is fully charged before starting the install. $3rd_party_dependency should work as advertised. The user shouldn't pull out the USB cable in the middle of an install.
Assume that things aren't going to work as they should, even if you can't imagine why they wouldn't. Why would the USB connection be interrupted in the middle of an install? Who the fuck cares why?! The user might be an idiot. They might clumsily knock the phone off the table. They might have a two-year old child who wants to play with daddy's phone. It doesn't fucking matter why or how it could happen, just assume that it might and figure out how to deal with it if it does!
In fact, assume that your product is destined to be used by someone who is going to do their darnedest to fuck it up. I used to answser the tech support line for an ISP back in the '90s and the one key thing I learnt from that experience is that users will do the most stupid things imaginable.
Any time you use the word "should", it's a fuck-up waiting to happen! Exception-handling, exception-handling, exception-handling! Not just in code but in the processes and procedures that surround the product that contains your code. Test it to death and then test it some more. Get your non-technical friends to try using it and watch them. Any time they need help or prompting, take note and change your product accordingly.
This is why empathy is such an important quality in product managers. Empathy is what gives one the ability to put oneself in another's shoes. Imagine I'm a housewife whose technical prowess extends to putting on the dishwasher. Imagine I'm a college student who fancies himself as the next Mark Zuckerberg and thinks that coding is writing HTML and CSS. Imagine I'm an impatient high-school senior who wants to differentiate himself somehow from all his friends who also have Android phones. If you're releasing a product via the Play Store, it needs to cater to all those potential users and more.
CM need to get on top of this. There's a massive difference between an obscure piece of software aimed at geeks or hobbyists, and an Installer aimed at the mass market. Even the rumour that the installer is bricking phones could do serious damage to CM as a brand (not to mention put them at risk of litigation - how much do you want to bet that some shark isn't already thinking about a class action lawsuit?). Just look at how much focus and effort Elon Musk puts into rebutting any suggestion that Tesla cars are prone to fires. He knows that confidence is crucial when you're marketing to consumers.
CM need to adopt the same mindset.
After reaching out to the Play team, their feedback was that though application itself is harmless, and not actually in violation of their Terms of Service,...
> Update: Removed reference to stating the app was not in violation of TOS – this was a mischaracterization of Google’s statement.
And you are right, it's not 90s-Microsoft, it's worse. I'd say it's reasonable to believe that vast majority of average users _never_ acquire software outside of the walled gardens of Mirosoft, Google, and Apple's app stores. There sure are benefits to these walled gardens, but the loss of freedom to corporate whim should be a very serious concern to everyone here.
There is a basic freedom lost when you allow yourself (the entire software market) to be subject to arbitrary corporate control especially when there is inadequate competition. It's clear that the terms are there only to serve the corporate interests and can change at any time if corporate interests change (hello G+ & YouTube)
Google doesn't want people to hold it liable for potential bricking of devices and took it off its store. What's the issue here?
That's a pretty basic task for any Android user. In fact, if you can't do that, then you probably have no business whatsoever installing a customer ROM.
Think of it as a basic intelligence test - you want to change your car's air filter - first step is to pop open the bonnet. If you can't do that, then you probably want to seriously consider, gee, should I just get a mechanic to do this?
This isn't like some test to pass before changing your oil. It's like requiring Ford's permission to install some fuzzy dice or a custom seat cover.
This is wrong.
Allowing this is built in to Android and it's a user togglable setting.
Verizon explicitly mentions sideloading and how to enable it:
http://mobile.vzw.com/LocationAgent
For Android devices, please confirm the device's Location Services
setting GPS and Verizon Location Services (if present) are set to
on and the device's Settings > Security > Unknown sources is checked.
http://cache.vzw.com/multimedia/mim/mot_droid_razr_hd/razrHD...
PDF Page 15: To let your smartphone install apps that are not from
Google Play, tap Apps >Settings >Security & Screen Lock
and check Unknown sources
Ditto AT&T:https://www.wireless.att.com/businesscenter/en_US/pdf/att-to... PDF Page 3:
In order to install these apps, you must ensure the 'Unknown Sources'
box is checked [...] Follow the instructions on your phone to enable
this feature and continue with AT&T Toggle installation.
http://www.att.com/esupport/article.jsp?sid=KB410684&cv=820 Before you begin, you'll need to set your Android smartphone
to allow downloads from non-Market sources by selecting Unknown sources
in the Settings menu on your device.
Ditto Sprint:http://eguides.sprint.com/support/eguides/htcone/content/htc...
Go to Settings > Security, and then select the Unknown sources
option to allow the download and installation of the tool
through your Web browser.
http://eguides.sprint.com/support/eguides/sprintvital/conten... If you want to install apps from sources other than the Google
Play Store app, you must allow the installation of apps from
unknown sources first.I've honestly never seen it before, and I'm curious what manufacturer would actually do this nowadays.
[1] http://www.sleetherz.com/2011/05/att-users-now-you-can-insta...
There have been reports of users bricking their devices using the app (check the various support forums) they then try to swap them only to find out they have voided the warranty. Google is asking CyanogenMod to properly inform users about those risks.
Yet inevitably some on the comments here are cringe worthy
Now the reason being given for this removal is that it needs root(a lot of apps in the Play Store require root on Android, including ROM managers) and that it may brick a few devices, while ignoring the fact that for many who are stuck without security updates because of OEMs and carriers actually benefit from CM. Also wonder if this news was strategically timed before Thanksgiving when most people are on vacation traveling or busy with family.
This in no way is meant to prevent users from voiding their warranty, users can still side load the application or they can use more traditional ways of installing a custom ROM. I'm not sure why this decision is ruffling feathers. CyanogenMod has over a million installs to date, and is still thriving. The installer made things a little less complicated, but removing it from the Play Store won't really slow them down.
Prior to today, a community-developed fork of Google's open-source operating system could be installed by using an app from Google's own app store (which sometimes bricked the phone).
After today, a community-developed fork of Google's open-source operating system can be installed by downloading the installer from the CM website.
This somehow makes Google like 90's Microsoft?
How many operating systems or web browsers did Microsoft open-source?
How many forks of their software did Microsoft tolerate?
Calling Google "90's Microsoft" is like calling Obama a socialist: it shows an utter lack of perspective of what a real socialist looks like. (If you want to see a real socialist, read about Kshama Sawant who was just elected to the Seattle City Council and wants to collectivize Amazon.com and Boeing).
I wouldn't even bother responding to stuff like this, but it's getting upvoted on HN which is depressing.
So you think that a user should be able install an OS that bricks their phone and still have the phone still covered by warranty?
How does that make sense?
Is this people's expectation of Google, that if they don't give you whatever you want (at their own expense) then they are like 90s Microsoft?
Yes
>How does that make sense?
It makes sense the same way that installing Linux and/or wiping Windows doesn't void a PCs warranty.
Should users be allowed to install any programs including keylogging malware on Windows computers? Shouldn't Microsoft protect them by locking it down so that only approved apps from their app store can be installed? Like mobile app stores?
If PCs in the 1980's could be destroyed simply by improperly installing an OS, you bet manufacturers would void warranty for software misuse.
NOTE: no sarcasm here, I'm genuinely interested on why android phones can be software bricked and can't have a boot loader like anything else.
You need to take another look at user grade warranties for PCs. Many of them are void if the users installs a different OS. Especially if they break the HPA partition where the OS reinstall stuff is kept.
Have you ever actually tried getting warranty support for a Windows PC you installed Linux on? The last time I tried even just mentioning the word "Linux" was enough to get many support departments to drop you like a hot potato. In my experience, the minimum bar for support is keeping around a Windows partition and any diagnostic/recovery partitions they have, whether or not you want them otherwise. If you're unlucky, you'll have to blow away your Linux install even if it's completely irrelevant to the issue at hand.
Modded Windows PCs are easier to deal with because you can usually erase all traces of Linux/other OSes if you need to for support (no eFuses and similar nonsense), but the on-the-ground support policies aren't all that different from modded phones.
Yes - but why don't you think what you said through a bit...
I flash my motherboard with a custom BIOS image I've hex-edited together.
Now, it won't boot correctly.
Yes, it's reversible - I can probably figure out a way to flash the original image back on.
However, the motherboard manufacturer is hardly going to tolerate me taking it back going, you need to fix this. That's hardly reasonable.
They're going to be...err...you did something stupid and unsupported. You fix it. They might give me advice, but the onus is certainly not on them.
Or say I flash my car's ECU to give me another 5 HP of output. Then my car stops starting up reliably. I can't exactly take it back to Honda and say, fix it. They'll be like, we sold you a working car - you did something out of spec, and overrode the ECU software - we aren't fixing it.
Yes, it's reversible - I can flash the right ECU image back on and it will start up correctly - but the onus isn't on them to hand hold me through that process.
Cheers, Victor
I have.
>I flash my motherboard with a custom BIOS image I've hex-edited together.
Congratulations.
>Now, it won't boot correctly.
woops
>Yes, it's reversible - I can probably figure out a way to flash the original image back on.
In most cases. It is possible to brick some hardware, but easily-brickable hardware is probably not something that OEM's should ship; that's just asking for trouble.
>However, the motherboard manufacturer is hardly going to tolerate me taking it back going, you need to fix this. That's hardly reasonable.
They might if they like selling things. AMD tolerated and even encouraged overclocking, finding that it won them more sales than problems that it may have created.
>They're going to be...err...you did something stupid and unsupported. You fix it. They might give me advice, but the onus is certainly not on them.
Well, yes and no. They ought to either publish a spec that would tell you how to fix it, or let you ship it to them and re-flash it for a reasonable fee. People do send motherboards back all the time claiming that it "broke" or was "DOA" when they may know full well what broke it. Right or wrong, a company will have to do a postmortem engineering analysis on a part to prove it was tampered with, and they will need to be able to prove tampering if they don't want bad press from consumers. I'm not saying that makes lying right, but that is probably the reality for a lot of cases.
>Or say I flash my car's ECU to give me another 5 HP of output. Then my car stops starting up reliably.
>I can't exactly take it back to Honda and say, fix it. They'll be like, we sold you a working car - you did something out of spec, and overrode the ECU software - we aren't fixing it.
Again, the consumer can say "I didn't do anything, I'll sue you. I'll tell the local TV station." Now the dealer has to risk a lawsuit, bad press, in which case they will need a professional engineering analysis; or the Dealer could just re-flash the firmware. I'm not sure how it is handled these days, but the customer can create a lot of doubt about the origin of the problem, and make it difficult for the dealer/carmaker to prove malfeasance on the customer's part.
>Yes, it's reversible - I can flash the right ECU image back on and it will start up correctly - but the onus isn't on them to hand hold me through that process.
If markets worked the way I was taught they ought to, then customers would never tolerate that. Then you could expect to take your car to the dealer, and for a reasonable fee they'd re-flash your ECU firmware or whatever, and then try to sell you some new floor-mats and an oil change. Unfortunately in many cases you're right; you can expect to be treated like a chump at the car dealership's service dep't. which is why "Right to Repair" laws are important. I think it is interesting now that Toyota has tried the "Cosmic Ray Defense" for exploding firmware how a car-maker (especially Toyota) might react to a customer with a bricked ECU who offers no explanation as to why his ECU is bricked.
>Cheers, Victor
Cheers indeed, and happy Thanksgiving, unless you are Native American, in which case, my apologies. (If you're not in the US be thankful Columbus didn't find your country instead.)
Because software shouldn't brick the phone. It should ALWAYS be possible to download and restore the pre-installed operating system and factory settings (it definitely was on my last android phone - an xperia - which I 'bricked' multiple times trying to get cyanogen to work).
This really does remind me of the bundle/don't bundle internet explorer wars. "Oh, but you can just download netscape if you really want it!"
It's not software, it's a damn operating system.
Say there's a Toro site for add-ins (flashing lights or whatever, I have no idea how you'd mod a mower...lol).
And some of those add-ins will void your mower, and potentially break your machine. It's certainly within their prerogative to say "We won't host them. But you can just go to <some website> and get it from them instead". In fact, doesn't Google make a search engine? Surely, it's not hard to just Google for Cyanogenmod and find their hompage? In fact, if you can't do that, then probably shouldn't be flashing a ROM...
If you had a board and wanted to start porting android to it today everything you need to make it happen is there and out with permissive licensing too. What more to do you want out of a software project?
No true Scotsman is a logical fallacy that you should avoid. Saying there is someone out there that is worse actually does nothing to address the original point.
Let me demonstrate, "You think Romney was conservative? Look at X tea party member that wants to own slaves." Do you see how that doesn't do anything to refute that Romney is conservative?
Oh, you say he isn't gay? No true homosexual Scotsman, it seems.
Perhaps, but this is not No True Scotsman.
No True Scotsman involves ignoring a counterexample to a general/universal claim.
For example, if I said "No Republican would vote to increase the deficit" and you countered by saying "actually, George W. Bush is a Republican and did in fact vote to increase the deficit," and I responded by saying, "well, no TRUE Republican would vote to increase the deficit," that would be No True Scotsman. Because I'm ignoring the fact that my broad, sweeping rule has a clear counterexample.
Those elements are not here in this case. I did not make a broad sweeping claim, instead I made a specific one (Obama is not a socialist). Ergo, it is not No True Scotsman.
> Let me demonstrate, "You think Romney was conservative? Look at X tea party member that wants to own slaves." Do you see how that doesn't do anything to refute that Romney is conservative?
"Liberal" and "conservative" describes a spectrum of political belief. If some tea party members have much more extreme views than Romney, then yes, it would demonstrate that Romney is less conservative than more extremely conservative people, but does not refute that he is right-of-center.
You should have stopped there. Removing Cyanogenmod may not be it, but the rest of your post just opens it up for pointing out how Google is just like Microsoft.
> How many operating systems or web browsers did Microsoft open-source?
Red herring. Selling software and Operating Systems is Microsoft's core business, and you expect them to give it away? How much software that is the core of Google's business has Google given away? I see nothing of the search, advertising and distributed systems infrastructure being open sourced.
> How many forks of their software did Microsoft tolerate?
Hah, why don't we ask Acer that? The moment there's any leverage at all, Google will use it to squash forks. Conversely, has Microsoft ever tried to stop WINE or ReactOS? (Honest question, actually, I don't know.)
Now let's ask some more relevant questions:
1. How many times has Google been investigated and fined by the FTC and DOJ for illegal business practices?
2. How many times has Google been investigated by US and EU government agencies for privacy breaches?
3. How many times has Google been investigated for anti-competitive behavior in the US and the EU?
4. How many times has Google been accused (and sued) by smaller companies for unfair business practices?
5. How many times has Google been accused of intentionally providing poor support for a competitor's product?
6. How many times has Google been sued for infringing somebody else's IP?
7. Has Google been sued by Sun for "hijacking" Java?
8. Has Microsoft been made to pay damages for abusing standards-essential patents?
9. Has Microsoft been sued for colluding in anti-poaching agreements?
Some things Google has escaped (e.g. antitrust in the US), and some don't apply to Microsoft (abusing FRAND patents, anti-poaching collusion, illegal pharma ads), but most apply to both: investigations, settlements and fines in the US and EU for anticompetitive conduct, privacy breaches and illegal business practices; accusations of crippling competitors' products (Netscape etc. for Microsoft, competing service providers like Yelp, YouTube/Maps on Windows Phone for Google); accusations of stealing IP and unfair business practices (e.g. Apple's UI lawsuit and i4i for Microsoft, Author's Guild and SkyHook for Google); and so on.
Anecdotally, having been privy to some negotiations with Google in two separate companies, they very much throw their weight around.
> I wouldn't even bother responding to stuff like this, but it's getting upvoted on HN which is depressing.
As much as you'd not like to admit it as an employee -- and it may not be apparent to the rank and file from inside -- there are very clear parallels in how both companies behave. Google is certainly throwing their weight around these days, which is precisely why Microsoft was hated in the 90s.
Not really. There's nothing intrinsically wrong with "throwing your weight around," as you put it. For example, that's exactly what IBM was doing when they decimated SCO's absurd lawsuit.
Microsoft was hated because they aggressively pushed out competitors in dishonest ways, because they intentionally made it difficult to interoperate with their software through proprietary protocols and file formats, and because they attacked open source.
Some of your questions directly illustrate why "throwing your weight around" can be a good thing. Did Sun/Oracle accuse Google of "stealing" Java? Yes, but do you really want to live in a world where people can copyright APIs, thereby giving creators of popular APIs a large amount of control over everyone else? I surely don't (and I say this as someone who has dedicated literally years of my life into designing APIs) but Oracle and Microsoft would like that world.
I don't "expect" Microsoft to give away anything, but the fact that their business model depends on tightly controlling it makes them an inherently less open source-friendly company than Google.
To me that sounds a lot like "throwing their weight around" :-) As my post hoped to show, Google simply does it in different ways.
Well... if you believe Yelp, the SkyHook lawsuit and various antitrust complaints in the US and EU, "pushing out competitors in dishonest ways" is something Google is doing as well. And we all know how interoperable YouTube is with Windows Phone devices. And we saw how Google pressured OEMs into not supporting competing software (cf SkyHook, Acer).
So maybe not that different after all.
> Some of your questions directly illustrate why "throwing your weight around" can be a good thing.
No doubt Microsoft supporters will say the same thing about Microsoft's antics :-)
> Did Sun/Oracle accuse Google of "stealing" Java? Yes, but do you really want to live in a world where people can copyright APIs, thereby giving creators of popular APIs a large amount of control over everyone else?
Well, that's the purpose of IP, isn't it? If you create something popular that others find very useful, you deserve enough control to ensure proper compensation.
Otherwise you get what Google did to Sun. Sun sank millions in developing -- and billions in marketing -- Java to make it the dominant development language that it is and to create, out of nothing, a huge Java-savvy workforce. Google, to bring developers to their new platform, simply hijacked the ecosystem with nothing in return to Sun (now Oracle). Of course, Sun was very careless in its control of Java, but I think Google derived immense benefit from Sun's investment and is being extremely selfish in insisting on not respecting their rights.
> I surely don't (and I say this as someone who has dedicated literally years of my life into designing APIs) but Oracle and Microsoft would like that world.
I too have devoted years of my life designing APIs. I see little distinction in the creative effort that goes into either code or API, and I think both deserve equal protection.
In fact, personally, I see Google's world as worse than Oracle/Microsoft's world. Google's arguments in the Oracle case, taken to their logical conclusion, literally remove support for all copyright protection for software. Part of their argument is that APIs are not copyrightable because they're "functional". You know what else is functional? All the code in the world!
But then, Google's software remains locked away in data centers, away from the world's eyes, further protected by trade secret. Of course, it sees no value in other types of protection, only liabilities.
Me, I'd rather live in a world where valuable works cannot be taken without permission, especially since a lot of my work is exposed to the world. I've open sourced a lot of stuff too, but which of my work can be taken freely should always be my decision.
> I don't "expect" Microsoft to give away anything, but the fact that their business model depends on tightly controlling it makes them an inherently less open source-friendly company than Google.
There's nothing intrinsically wrong with being a "less open source-friendly company" either.
I am by no means still a fan of Google anymore, but credit has to be given where credit is due. They are still pulling the Microsoft schtick with Google+, but pulling CM isn't it in the slightest.
Mobile app analytics is huge, including by Google themselves.
Why isn't it opt-in?
Think about it from a less technical perspective: I can install an app from the official Google Play store that voids my warranty.
They can't have that on their public facing store. Google wants users to install apps, they don't want them to be afraid of voiding their warranty.
It's interesting to see how things played out over the last few years.
Google has been moving towards a more controlled environment, from something that was initially billed as open.
Apple started completely locked down with a strong customer focus, and has cautiously been making their policies more developer friendly.
I personally prefer Apple's approach, as it was always about the end user — but as a developer I was sometimes envious of Google's lenient policy. Google's assertion of control now makes me more interested in developing for their platform.
If an app tells you to throw your phone in the air — and I was both the phone hardware manufacturer and app store curator — I wouldn't allow it on my store either. It's going to increase customer complaints.
[1] https://play.google.com/store/apps/details?id=com.carrotpop....
(I don't actually disagree with your point, just thought it was funny)
I definitely agree with what that one Reddit comment says - if you can't sideload it then you shouldn't flash your ROM.
Like when Apple said that all Apps needed to be originally written in their crappy language, and that you could not cross-compile to it?
That had literally nothing to do with the end user, and everything to do with trying to enforce a monopoly.
The policy was changed and ultimately never enforced, but I always viewed it as a way to ensure that developers kept up-to-date.
And after having a client deliver us an Adobe Air app to "fix", I am so glad it didn't become a popular way to develop iOS apps.
Most of Apple's decisions are about the end user, often to the detriment of the developer. Mandatory app review, Apple deals entirely with customers, unified in-app purchase interface.
By the way, when that policy was put in place Apple had no "monopoly" to "enforce". So it simply makes no sense for you to say that.
It had everything to do with maintaining control over their platform. Cross-compilation was not encouraged because it almost always means that the frameworks which cross compile maintain feature parity with older versions of the platform SDK. It means that end users don't see apps taking advantage of new features and frameworks.
Look at where Apple is now and tell me that was a bad decision — developers scramble to update their apps to incorporate the newest OS features, this leads to huge competition in design and polish amongst the best apps on the App Store. Ultimately the decision benefited customers and developers.
The policy was overturned largely because games became unexpectedly popular. And games don't need to use the latest OS features to deliver a quality experience. The rising popularity of Unity 3D also drove the decision. (You will recall that when the policy was publicised, there were hundreds of Unity developed games on the App Store. None were pulled and the policy was instead changed.)
The unified in-app purchase has benefits, but it also comes with strings attached. The 30% rake means that either users pay for the markup or developers must eat that overhead. By locking application developers out of rolling their own in-house solutions, consumers suffer. That decision may benefit consumers by presenting a unified interface, but it has everything to do with making Apple more money. If Apple really had it's users in mind, they could have simply created an API that provides the unified interface but allows developers to hook in their own back end processing. Better yet, allow in-app purchases that don't have the 30% markup. This will never happen because at the end of the day Apple is looking out for themselves, not the users of their devices.
If developers rolled their own and there was a proliferation of mis-matched payment methods throughout the App Store (based on whatever each developer thought got them the most money), then I doubt consumers would be spending as much as they do today. Even Google Play requires developers selling digital goods to use Google's in-app purchase API (of which they get a 30% cut).
The decision helped Apple as much as it helped customers — happy customers pay more money and pay again. So it is in Apple's interest to be as pro-consumer as possible in order to make the most money.
The 30% fee is the same as what Google takes. At the time it was introduced, it was substantially less than other publishers (I heard numbers in the 50-70% range).
Even then, Apple does a lot of work for their 30%. For example, they handle your international tax contributions (Google Play does not), they handle customer returns (Google Play does not).
As a developer that has sold directly and through in-app purchase, I have never felt that the 30% was much of an ask. If you sell on Steam you'll pay around the same cut, almost all other App Stores have standardised on 30% since the App Store.
Amazon (to take the most notorious of many examples) doesn't need Apple's help to build consumer confidence and trust. In fact, including Apple in Amazon's transactions makes them more complicated and less trustworthy (consider what could happen if there's a hiccup in associating your Kindle account and your Apple ID). And the 30% cut isn't anywhere near a level playing field for them, since they compete with the one company that doesn't pay it (and have similar costs for acquiring the digital content they sell).
You also misunderstand Google Play's policy on digital in-app purchases. Google doesn't require all in-app purchases to go through their IAP system, just the ones that unlock application functionality (so you can't evade the 30% cut of app purchases by rolling your own IAP). This is qualitatively different from Apple's policies as a simple glance at the iOS vs Android Kindle, Nook, Kobo, Amazon MP3 (and on and on) apps will demonstrate.
Finally, I'll add that Apple handling returns isn't necessarily a benefit. It means iOS developers can't offer more generous return policies than the standard one, something many have used to good effect on Android.
Amazon should then be allowed to increase their prices on iOS to compensate for the difference. I would happily pay a little extra per-purchase to keep all my purchases under one account, using one interface, and would be happy to take advantage of Touch ID authenticated purchases across stores.
I still do not like the idea of purchasing on iOS outside my Apple ID. It is quite outside my comfort zone to purchase within an app using a different UI, trusting my details with a different provider, and so on.
Regarding handling returns: one of the main complaints I have heard from Android developers is the influx of emails they have from customers asking for refunds, and having to process those refunds. While I agree that it could be used as a promotional opportunity, many developers view it as an unnecessary burden.
Please explain to me how Apple effectively blocking users of Amazon apps from having the in-app stores (ebooks, mp3s, etc.) they have on Android is in the user's interest. When you're done with that, do the same for Apple's effectively blocking in-app links to Amazon's web stores. From where I'm sitting, that's all about protecting Apple's interests their competing stores, interests of their users be damned.
Of course, the 30% cut that Apple wanted to take most likely had something to do with it, but there is a good reason to forbid developers from implementing their own in-app purchases.
Superficially, this sounds even worse, but this is exactly the situation on Android. I've never heard of an Android user being confused by it, so I suspect this behavior far more intuitive than you think. On the other side of the ledger, I've heard of more than a few users (including tech-savvy ones who were previously familiar with the relevant history) being confused about not being able to buy books in the iOS Kindle app.
Separately, you didn't address Apple's prohibition of links to the relevant web store / website through which the store can be reached. At that point the purchase isn't even in-app (and the relevant purchase flow is exactly the same except that the user has to remember how to get to the website on their own), so...
That word, monopoly. I don't think it means what you think it means.
What they were trying to enforce was a common programming language for all apps that they could improve in tandem with the OS, so they wouldn't be held hostage in the future to be backwards compatible to some popular runtime (like Flash once threatened to be for the Web).
P.S And "crappy language", really? As far as pragmatic languages lean on resources for native coding go, Objective-C is up there with the best of them. Not to mention the breadth and the maturity of the Cocoa libs.
Not as much as you think. Mono is a niche product too.
>and Java not used outside of Android? ROFL
He said "Java on mobile". Perhaps try to understand what you read before rolling on the floor?
Java mobile (or "end user" apps in general) are Android, some crapplets, and that is mainly.
If it weren't for development tools for Java devs (Eclipse, NetBeans, etc) and some internal enterprise monstrocities people are forced to use, there wouldn't be any Java desktop adoption either.
But that doesn't say the whole story.
Objective-C started as a small language, with a commercial compiler by Brad Cox and no backing by any major vendor. Since then it has only gone from strength to strength.
Before Apple, it was used by NeXT. The first major first-person-shooter (Doom) was done by Carmack on a NeXT in C and Objective-C. The first web broswer was written in Objective-C, by Tim Berner's Lee. Both have praised the environment and language.
Then, there was the OpenStep initiative, between NeXT and SUN, again using an Objective-C API, which, have it been seen to fruition, it would have given us a great UNIX desktop/workstation environment, like a cross between NeXT and Solaris, a decade before OS X and modern Gnome/KDE.
Then there's also the GNUStep project, a third party implementation of that OpenStep/NeXT idea, that also maintains an Objective-C compiler.
There are even ...Javascript ports of Objective-C ( http://www.cappuccino-project.org/ ).
And now of course, Objective-C is adopted by Apple after acquiring NeXT. They sure didn't feel it's a bad language and they have to move on -- instead they bet the whole company's development plans (and third party devs) on the language, and it paid off.
It's one of the most mature and development environments. And I've never seen anyone that programs in it (as opposed to "tried it for a week") badmouth it -- quite the contrary.
I also like how there are mutually incompatible object types (the C types vs the ObjC types) that you have to MakeLongAndRidiculousCallsToConvertAcross.
Going through the basic stuff on the "learn this language" sites was painful.
ObjC is the most programmer-hostile language I've ever seen that wasn't designed with that in mind.
It was a dick move, and thank goodness they got called out for it.
And yes, it was to try to enforce a monopoly.
This app has bricked the devices of less technical users and left them without a warranty, Google's obligations is to prevent that.
In my memories of Google's introduction of the Android Market, they seemed to play-up the "no review period" as an advantage over the App Store. I think there has been some mixed messaging from Google over the years — they extol openness and developer freedoms, but clearly enforce terms of service where it counts.
Perhaps it's not hypocritical, but at times it feels like there are two Googles.
The clause about no forking with the SDK is probably going to rear its head in anger soon.
It's not at all surprising that this application was removed would you expect to see an install Ubuntu application in the Mac or Windows app stores?
I've been an Apple hater all my life, but this, Google, this is epic bullshit.
Isn't that a sad thing to be?
And for most people mostly stemming out of reverse hipsterism, nonetheless...
And a handheld mobile OS with unprecedented capabilities people would be dreaming of just a decade ago -- that I can code for by spending like $100, including the ability to release my apps to half a billion with credit cards at the ready.
Perhaps if you're young enough to only remember the "everything must be FOSS" times, and not the times we paid $100-$300 for a proprietary compiler this seems very restrictive.
> that I can code for by spending like $100
Odd that you think that's freedom, because I can put my own apps on my own phone for actual free. I can put other people's apps on my own phone without signing up for an app store and without a third party's permission. I can send my apps to anyone I want and charge them via my own payment processor if I want.
I agree we now have a "handheld mobile OS with unprecedented capabilities" and that iOS and the App Store were incredibly innovative a few years ago. But the problem is not whether or not I am allowed to develop an app, the problem is whether or not I am allowed to use my device on my terms. I couldn't even add a caller blacklist on iOS.
Also let's say I without any argument accept the idea that the past was less free. That still doesn't make what Apple are doing now free in any shape or form, that's just a flat-out logical fallacy. If you have to appeal to a worse past to explain how you are relatively free you have basically conceded the argument.
I found quite the opposite. Nothing quite beats their prices.
Here's an easy example: when the iPad came out at $499, the first competing touch tablets come out at $749 (and of course were crap compared to it too). It took competitors years to reach and go below iPad level prices.
You also have to know what you're getting and compare like for like. You cannot compare a machine on the medium or lower end of the market with one on the upper end. Hi-end offerings from Dell, Sony etc, are the same (or usually more) expensive as Apple's offering, when you match features. And you still don't get them all.
Was trying to get a PC laptop to match a Retina MPB the other day. I added the configuration options to match it and got it as far as $1700 for the PC laptop on the vendor website. It also had a VGA port as standard, that the MBP doesn't have. Seems like a bargain compared to the MBP I targeted that's $2599, right?
Only the PC didn't have hidpi screen, had half the memory (8 vs 16GB), had a 750 HD and not a 512 SSD.
Those differences easily match or surpass the $900 difference.
What it also didn't have that isn't easily measured, but matters a lot?
-- it wasn't as light (I carry my laptop a lot). -- it wasn't as battery effiecient (I use my laptop outside a lot).
Heck, I'd pay the $900 even just for the twice as much battery life. When you add the with SSD vs HD, hidpi vs plain monitor and weight, it's a no-brainer.
And there's other, minor stuff that adds up: it didn't have as a solid construction, it didn't have a magsafe-like power connector (tripping on a wire means the laptop goes down -- and I've had that happen in the past), it didn't have a multitouch-glass trackpad, it didn't have an illuminated keyboard, it's thicker, etc etc.
Oh, and it didn't come with OS X (and for free!). I had to make do with the crappy Windows 8. Just that would be worth more than the $900 difference to me.
Anyway, it would have been great to know which models you were exactly comparing, because I don't believe what you say about the PC being that bad.
Also, there are some features in the MBP that don't make sense in a PC. For instance, retina display. GOOD LUCK with that resolution in a 15" display using anything other than OSX. Or the battery life. Of course a MacBook is going to have a longer battery life. They have iron-fisted control over everything, from the software to the hardware. It would be hilarious if with such dictatorial control they didn't have good battery life.
For example, were you to improve the Android stock messaging app they are completely within their rights to prevent you pushing it back into AOSP, and worse, if you make a breaking change and distribute as an "improved Android" you could be classed as a fork, which violates the T&C of the SDK. Google having this veto to artificially hold back Android prevents other players from producing interesting forks of it. Cyanogenmod will be perceived as a long term threat, and so they will progressively up the stakes in order to make life difficult, but they're starting with stuff which is easier to justify. Once they've started the fanboys will find it much harder to change their tune.
You can see what's been going on by their staff situation.
On the other end, I think that forks with breaking changes could lead to fragmentation, where some stuff works in a fork and doesn't in the other. Isn't that the definition of breaking change?
I'm not quite sure what you find so objectionable, or how relevant is you comment here.
"They advised us to voluntarily remove the application, or they would be forced to remove it administratively."
Which is like saying "He wasn't fired, he was just forced to resign".
That said, part of me is chuckling internally that CM got caught being unable to distribute their proprietary (windows-only!) "installer" solution through Google's proprietary distribution channel. There are open source paths to a solution here, and CM didn't even try...
You've got to remember google's position here - for the majority of phones sold, they aren't the manufacturer or the warranty provider. If they allow cyanogen in the play store and it creates a huge warranty headache for Samsung or Sony or any other OEM that includes the play store by default, it jeopardizes google's ability to distribute the Play Store.
The open spiel was pure marketing to gain market share. Now that they have it, they are locking things down to maintain control. Threatening decertification, requiring google play services, certification by a private party,...
Now that the open argument no longer works, people are defending it as pro consumer. Hogwash.
Edit: http://techcrunch.com/2013/09/18/cyanogen-mod-7m-benchmark/
Cyanogen has basically become a competitor to Google
Preface: I consider myself a fairly advanced power user on linux as a hobby, and I'm a computer technician/sysadmin [Windows] by day. I've had two Android phones over the past two years.
I have a Verizon Galaxy Nexus and was pissed that Verizon decided that phone was not to get 4.3 let alone Google decided no 4.4 for the Galaxy Nexus...(Each iteration of Android broke more things like speech to text.) Rather than wait for the never coming updates I started studying how to flash Cyanogenmod onto this. It looked a bit convoluted even compared to flashing firmware onto micro-contollers. Then the app hit the Play store and I figured I would give it a shot.
The app showed you what settings needed changed (like enable USB debugging) and how to do them, even to the point of opening the settings screens for you. A casual user would never even be able to find the settings again after that first opening. It would be akin to going straight to the Computer Management console in Windows or loading up fstab in Linux without telling a casual end user how to get there! My install process did not go smooth. The first thing it had wrong was the connection mode, said to use Camera Mode PTP instead of MTP. That is flat out wrong for this phone and it won't connect. Then during the bootloader/rooting process, which the installer fully automatically does for you(!) a critical USB driver failed to install and it locked the phone up. The soft power button does not respond here and luckily I was able to pull the battery to reset. If this was a Nexus 4 or 5...I would have been praying that once the battery died I could still power it up for a recharge; a very good possibility it would have been bricked. Now that the software is installed I have no Photosphere in the camera and I can no longer connect to my work exchange calendar. I also managed to lose a few stored contacts somehow. I knew to backup my pictures/docs/data but a typical user would not.
Now imagine a typical consumer has just purchased a Galaxy S4 on contract for $199. They flash CM onto it and now best case they call Verizon/ATT/Samsung wanting to know why feature X isn't working or why they lost the phone numbers of their friends/family – or worse their baby pictures/movies. Now that company either says 'Go fly a kite' or reflashes and they still have data loss. If the phone bricks they will be shocked to learn they will need to pony up $650 to replace it replace it!
Google should encourage aftermarket Android distributions. They serve the customers who want a truly open source Android and they serve the orphaned devices users.
It you RTFA, you see that the app has a very simple function and mostly serves to enable discovery of CyanogenMod. The actual installation requires a Windows PC.
One way is to use scary software like Cyanogenmod.
There is not other way.
Maybe Google and customers need to start pressuring carriers to stop loading phones with this awful software?
I intended to install CyanogenMod 10.1.3 which is based on Android Jelly Bean 4.2.2, on my nexus 4. I have not done so.
---
I also have the intention to install the stock Android Jelly Bean 4.3 on the same nexus 4; downgrading from Android KitKat 4.4.
I found that Android KitKat on Nexus 4 (and Nexus 5) now redirect tethering network traffic to the carrier login page, specifically T-Mobile USA. Strangely, I had no problems using the built-in tethering (Nexus 4 - Andorid KitKat combo) with AT&T network.
It really bothers me to find out that Google is taking away a feature specifically to appease T-Mobile. Pure Android experience no more.
This question is the closest, lets hope people click on it too: >Why flash CyanogenMod? >There are many reasons to consider for flashing your device. Check out our Why Mod? page for more info!
http://wiki.cyanogenmod.org/w/Why_Mod%3F
Then goes on to talk about moding (I guess CyanogenMod is a "mod", but it doesn't explicitly say so right off the bat) and goes on to talk about the cons and pros of modding, but doesn't actually tell you why I would want CyanogenMod until I scroll more than a page down to a bunch of similar screenshots.
So three links deep hidden in the bottom half of a wiki page is a (even complete?) feature set of CyanogenMod. Again cyanogenmod flat out fails to tell new users what they do and why I might want it on the main page. I wonder what the bounce rate on the main page is.
"Warning! This app can brick your device. Google is not responsible for its damages, and you may loose other warranties, too!"
Regarding kids, that would overlook the warning, they still have to download the PC software. So the procedure isn't significantly more simplified than going directly to the website.
Well, make CyanogenMod Installer Application open enough and put it onto F-droid.
Don't wan't to? Well, neither GOOG ...so much about openness PR.