CyanogenMOD rocks my old G-1

I spent some time today rooting and reflashing my old G-1 so it’s jumped from stock Android 1.6 to Android 2.2. CyanogenMod is a truly impressive piece of work, with both snazzy surface polish and a lot of nice little hackerly touches like including a root console in the standard apps panel and easy access to the recovery loader. I really feel like I have control of the device now.

Which is nice, but doesn’t have a lot of practical relevance yet. My main use for the G-1 is as a fallback in case my Nexus One gets lost or stolen. Still, there was some enjoyment in learning that, yes, I can do stuff like reflashing a phone without bricking it, and swapping around SIM cards without perpetrating some egregious blunder that wipes them. Alas, I’m still not very comfortable doing risky things with hardware – I retain some emotional reflexes from thirty years ago, when zorching anything computerlike meant you’d just incurred a five-figure bill and were in deep, deep shit.

As usual in such exercises, the hard part was interpreting the instructions. The hackers who wrote them were trying very hard to be clear, but the result was a thicket of poorly-organized details. I could follow the procedure, but I had to do it almost blind; there was nothing that gave me a high-level view of the process so that I could grasp clearly why each step was necessary and why they had to happen in the order they did. As a result, for troubleshooting I absolutely had to have live help on an IRC channel.

I wish someone would write a bird’s-eye view of the smart-phone modding process. It can’t be that complicated, and I know what’s involved in writing boot loaders for general-purpose computers. Shout to my readers: has anyone done this already, or do I need to put it on my over-full to-do list?

99 comments

  1. There are four basic steps involved:

    1) Downgrading your phone’s operating system to a revision that has a local root exploit.

    2) Using the root exploit to get root on your phone so you can write directly to the Flash device.

    3) Writing a custom recovery ROM to the flash and rebooting into it.

    4) Using the recovery loader to copy a kernel and root FS of your choice (in this case, the actual CyanogenMod). You may have to wipe the phone’s filesystem completely before doing this, as clobbering an old root FS with a new can yield strange unexpected behavior.

    I just softmodded my phone with Darchstar’s ROMs for the Hero, a port of Cyanogen (next rev of Cyanogen will integrate these changes). It makes Android not suck. :)

  2. The biggest annoyance for me personally is finding information on loading firmware on my phone.
    You have to dig through endless forum posts filled with excessive amounts of graphics and signatures. You might be looking at something 8 months old and not know if it’s still the correct way of doing something. Then you find a link buried on page 16 of 57 that says there’s an updated way. That link sends you to another endless set of posts…

    It’s like no one in the cell-phone hacking arena knows how to put up a simple web page that says “If you have a Nexus One, click here for the current instructions on how to hack it. If you have a G1, click here. Etc…”

    Then again, maybe my Google-fu is weak… ;)

    1. >It’s like no one in the cell-phone hacking arena knows how to put up a simple web page that says “If you have a Nexus One, click here for the current instructions on how to hack it. If you have a G1, click here. Etc…”

      You mean, like this? http://wiki.cyanogenmod.com/index.php?title=Main_Page

      I was able to follow the G-1 directions. I had live help, and they were confusing, but I did manage.

  3. My Samsung Captivate (ATT Galaxy S variant) is rooted and SIM-unlocked. I actually was thinking about trying to get an old G1 or similar so I could try updating the ROM on my Captivate to the European Galaxy S 2.2 ROMs that were out there, and not worry about it if I have my phone out of commission for a few days. I also wanted to play around with Cyanogen, as the Galaxy S is being added soon as a supported platform.

    I have a friend who’s using the latest Cyanogen on a G1 — Froyo makes the G1 usable.

  4. I never knew (how much) I loved hackers until I realized just recently that hacking = freedom, in the sense that no group of people no matter how great their collective intelligence, can foresee every best fit to every situation for the entire population. In a nutshell, that is the difference between capitalism (evolution) and socialism (devolution).

    Eric raises a deeper question. How should the minority best organize and communicate? Is it optimal in evolution to just do your small atomic part even if the collective result is incomprehensible enough that few grasp the insight? Is there some generative model we can apply to empower the minority with the truth that small things grow faster?

  5. @esr:

    I wish someone would write a bird’s-eye view of the smart-phone modding process. It can’t be that complicated, and I know what’s involved in writing boot loaders for general-purpose computers. Shout to my readers: has anyone done this already, or do I need to put it on my over-full to-do list?

    Alas, I haven’t done this. I have the same emotional reflexes you do about the potential for bricking the device. I will say that if you intend to do so, you need to learn the lessons of that the DD-WRT and other router custom firmware modding communities learned a long time ago: before you write anything, you need a lot of other people working with you in parallel. Different models, will of course, have somewhat differing procedures, and even within the same model there may be different revs that might require slightly different procedures.

    @Jeff Read:

    You may have to wipe the phone’s filesystem completely before doing this, as clobbering an old root FS with a new can yield strange unexpected behavior.

    Make that “you will have to wipe the phone’s filesystem completely” and then I’ll agree with you. :) You don’t want to take too many chances when modding an embedded device with a custom firmware due to the possiblity, however remote, of bricking the device.

  6. esr, welcome to the darkside. Now enjoy your wired and wireless tethering while rooted. Also enjoy the ability to over and underclock to get performance and battery life.

    1. >Now enjoy your wired and wireless tethering while rooted.

      I already had that on my unrooted Nexus One. Er, how does one inderclock?

  7. “Is there some generative model we can apply to empower the minority with the truth that small things grow faster?”

    The Starfish and The Spider is as good an introduction to benefits of decentralization (and I believe this is what we’re talking about here — whether it’s economic, social or political) as I’ve seen. Written in non-technical language with plenty of relevant examples.

  8. you can write your own app or buy SetCPU. Basically you can set up profile of various scenario on how you would like to clock your phone. In my case, I don’t figure I’ll be doing much of anything when the phone screen is off, so I deliberately set up a profile to use lower CPU speed. When I have full battery, with temperature low, I let the over clock go to it’s maximum.

  9. So, in your “free software” world, you have to risk bricking your phone just to update the OS? I updated my iPhone to the iOS 4.1 developer preview without incident.

  10. I’m not sure that you understand what’s going on here, Some Guy. Eric has taken control of his phone, and installed the software of his choice on it. You, on the other hand, are still Steve’s bitch. If an Android user wants to stay within the carrier’s universe, he can just wait for updates to be pushed out to his phone. But then, you’re still Verizon’s bitch, or AT&T’s bitch.

    1. >he can just wait for updates to be pushed out to his phone.

      In this case, I didn’t have that option. There aren’t going to be any more carrier updates for the G-1; it’s considered obsolescent and neither T-Mobile nor Google wants to incur the costs required.

  11. JB, thanks for the Starfish and Spider tip, and noting that I am part Cherokee (+European), had visited the Apache reservation in 1993 then traveled overland from El Paso into Mexico and Guatemala searching for myself, I have now pondered why did decentralization fail the Apaches at the end?

    Maybe it didn’t and they are just waiting for us to catch up on the slavery paradigm, as Eric did by decentralizing control over his device.

  12. > I really feel like I have control of the device now

    Try to educate yourself a bit on what is REMOVE_ASSET ans INSTALL_ASSET commands and why “your” phone desperately trying to constantly maintain connection to gtalk servers.
    You just might have second feeling coming ;-)

  13. >You, on the other hand, are still Steve’s bitch.

    Really, Russell: does this kind of infantile posturing serve you well in your daily life?

    I am an Apple customer, and I have chosen a product which does a fine job at the purposes for which I purchased it. If a better product were available, I’d have bought it, just as I did when I gave away my Sony-Ericsson K750i when I bought my first iPhone.

    If there were any Android products that were actually better than Apple’s offerings, I’d be a customer, but don’t kid yourself: they’re half-assed iPhone knock offs. Android is what you buy when you can’t afford a quality product.

  14. >If there were any Android products that were actually better than Apple’s offerings, I’d be a customer, but don’t kid yourself: they’re half-assed iPhone knock offs. Android is what you buy when you can’t afford a quality product.

    It depends on your priorities. I have an iPod Touch, and I have jailbroken it, and I have not installed any of the perhaps five major updates since I did, because the one time that I did I lost not only the jailbreak, but all the data on the filesystem that wasn’t part of one of Apple’s approved apps. Did I feel like spending money on a smartphone at this time, I would certainly buy an Android because I want control over the device, as opposed to a slick user interface and “Just Works” (as long as you do only what Jobs wants you to do). I do not criticize others’ decisions to buy Apple products and take the path of least resistance there; they are perfectly serviceable as appliances, but I want a pocket computer. Saying that Android is a ‘half-assed iPhone knock off’ because it isn’t quite as good at the UI (and opinions even there are divided) is missing the point.

  15. > I want a pocket computer.

    So do I, which I why I signed up for the developer program, and run my own code on my iPhone (and my iPad.) It’s pretty damned cheap for a great set of development tools.

  16. Some Guy, there is nothing wrong with your choice, until for example if one day Homeland Security forces Apple to put a tracker on your phone that has the capability to take over not only your phone but your entire life via the various financial and other data you have keyed into oxymoron “secure websites”. It is all about freedom and a slow creep in the loss of freedoms, that very few notice or care about until that Reichstag fire hits and those who weren’t prepared have no time to recapture the freedom they didn’t realize they had already lost. Maybe I am being a little dramatic in my example, perhaps it is just enough to say that Jobs is censoring which applications you can install on your phone, but if he can do that, where does it lead?

    “Those who would give up Essential Liberty to purchase a little Temporary Safety deserve neither Liberty nor Safety” from founding fathers.

  17. Actually we need slaves like Some Guy to push down the cost (economies-of-scale) of the hardware for us. Freedom lovers can appreciate the sheep as cannon fodder. (apologies for triple post)

  18. esr: what took you so long? I did updated my g1dp to froyo 2 months ago. Then I gave it to my brother when Chris sent me a N1.

    Ya know what? For many things, my iPhone 4 is still better, and I’d rather write apps in Objective-C than Java every time. That said, Android is more hacker-friendly. The OS is architected to extend.

    Russ, you’re just ignorant. How is that Nokia 880 working out?

  19. In the software world, we’ve spent decades arguing that freedom and prosperity go hand in hand. This is the “Open Source” justification for free software: a pragmatic position that we should have liberty not for its own sake, but because it produces better outcomes. This is also the argument behind open hardware platforms, behind open Internet standards, behind interoperability. Some bloody battles had to be fought with monopolists, but in the main the last 20 years have been a stunning success for openness.

    There have also been a minority who have made a more fundamental case for liberty, but it’s important to recognize that they have lost the debate. The engine that drives the most important Open Source projects is entirely based on a superficial utilitarianism – the Googles and IBMs of the world don’t contribute to Open Source because they love liberty, but because the financial return they get from doing so is greater than their investment.

    The fundamental distinction between openness and free-ness hasn’t been important so far, though, because ideology and utilitarian arguments were aligned. Now, things are changing. No-one can deny that Apple’s mobile device strategy has been a complete slam-dunk. The iPhone is the most profitable handset out there by far, and the iPad is shaping up to be huge. Apple’s long-term plan is breathtakingly ambitious – it’s making a play for complete dominance in the mobile market, with an integrated offering that controls everything from content to applications to the devices themselves. It’s therefore making a play for total control of the way most people will experience computation in the near future.

    Not even the most die-hard free-software hippie can deny that Apple’s success has been won on merit – their devices are simply, unmistakably better than the competition. Open platforms have been out-classed in almost every measurable dimension.

    So, we may be entering the next stage of the computer revolution with devices where every native application has to be approved by a single authority, where even programming languages and development tools are centrally controlled. Apple’s competitors and imitators are watching and taking notes, because far from being punished by the market for this, they have profited beyond the wildest dreams of avarice.

    And, in the end, market power is absolute.

  20. Ok, this thread has been godwined. Eric, blog about something else, please. Suggestion: puppies. At least, if someone tries to associate puppies to Nazi Germany, it’s at least fun to read.

  21. @Some Guy:

    So do I, which I why I signed up for the developer program, and run my own code on my iPhone (and my iPad.) It’s pretty damned cheap for a great set of development tools.

    OTOH, the Android SDK is free as in beer. And since Dalvik and the Android platform itself is open source, there’s nothing to stop anyone from developing their own development tools for Android, either. One could even write tools that compile Dalvik programs from any language one likes. Like, say Python. Hmmm…

  22. @Morgan: “And since Dalvik and the Android platform itself is open source, there’s nothing to stop anyone from developing their own development tools for Android, either.”

    Except perhaps Oracle.

  23. Morgan, Russ, and Jocelyn are in denial of the fact that total control of the platform is proving to be an advantage for iOS rather than a detriment. Freedom to do what you want with your computer-like device is a much harder sell than freedom from unnecessary hassle. Apple is winning developer and end-user mindshare because it sells the latter. More people may be buying Androids, but I’d bet long odds that more people want iPhones.

    Don’t get me wrong — I love my rooted Hero. But I’m in the vast, vast minority, along with Eric and a lot of other hacker-type people here. The reality is that despite not having a majority market share for most of that time, Apple has been setting the pace of the consumer microcomputer industry since the early eighties at least, as well as the standards for quality. And making fucktons of money at it too. (At least with Jobs around.) There’s a reason why it’s the only PC company with “fanboys”.

  24. > associate […] to Nazi Germany
    > pragmatic position that we should have liberty not for its own sake, but because it produces better outcomes
    > in the end, market power is absolute

    Minimum entropy is stable analogous to a bar stool elevating an elephant.

    However, uniform diversity is a suboptimal condition of minimum entropy.

    > don’t contribute to Open Source because they love liberty, but because the financial return they get from doing so

    ‘co-op’ + ‘t’ = ‘co-opt’

    Imo, the weakness of open source for now, is that no one has yet invented a way for people to contribute to multiple (even future) projects, i.e. that contributed code would be maximally granular, orthogonal, re-usable and searchable. This would facilitate more small fast growing ideas to spawn. Firefox was created by lopping off code from Mozilla/Netscape suite.

  25. @Adriano: maximize the tedium? Ctrl+F doesn’t work? Disjointness isn’t obvious? Btw, afaics analogies to minimum entropy catastrophes are relevant (not “godwined”) to that corporate support for Eric’s device died when the market mass did.

  26. > In this case, I didn’t have that option. There aren’t going to be any more carrier updates for the G-1; it’s considered obsolescent and neither T-Mobile nor Google wants to incur the costs required.

    Well, the g1 was determined
    To not have enough hardware to run 2.2 in unreasonable

  27. @Jocelyn: the onus is on you to be corteous, not on me to clarify. This is basic netiquette. And you’re comparing the extermination of millions to a goddamn smartphone. Seriously, get a grip.

  28. From a user’s perspective, “freedom to do what you want” means the ability to install apps that do what you want – and that do what you want the way you want. Both Android and iOS limit the user’s freedom, albeit in different ways. The iOS limits apps to those approved by Apple & Jobs – which cuts out many apps that do what users want. The android OS limits apps to those that do what hackers want, the way hackers want them done – which limits users to crumbs from the hackers’ feast.

    The chief problem with Android is that it’s unix-based, and unix is absolute poison to user-friendliness. (And no, the Mac is not a counter-example: The current Mac OS is coasting on the rep for user-friendliness gained from the pre-unix versions, and I expect its desktop/laptop share to drop over time to the 1% or less typical of other unix versions.)

    A winning smartphone OS (or Windows-killer desktop OS, for that matter) would be something that’s both open-source and that lacks the bone-deep user-hostility of unix. (I have a rant-in-progress on how ESR’s Art of Unix Programming could be subtitled “how to ensure that your programs are user-hostile.”) Preferably the OS would actively push programmers to do things in user-friendly ways. Ways that acknowledge that the typical non-programming user has a poor memory, has even less confidence in his memory than its poorness would warrant, and finds “programming” to be a serious cognitive effort. Even for such utterly trivial “programs” as “list directory and pipe output into a txt file” the natural thing for a non-programming user to do would be to take this as two steps, checking to make sure his bad memory hasn’t screwed up the “list directory” part before doing the “put into a txt file” part.

  29. The chief problem with Android is that it’s unix-based, and unix is absolute poison to user-friendliness. (And no, the Mac is not a counter-example: The current Mac OS is coasting on the rep for user-friendliness gained from the pre-unix versions, and I expect its desktop/laptop share to drop over time to the 1% or less typical of other unix versions.)

    Deep Lurker!! Put that Kool-Aid down and back away!! I think it’s gonna BLOW!!

  30. @Adriano:
    > the onus is on you to be corteous

    I was, courteous that is.

    > you’re comparing the extermination of millions to a goddamn smartphone

    I was comparing phenomena where 90+% of a population set agrees on one best way.

    @Deep Lurker
    > chief problem with Android is that it’s unix-based, and unix is absolute poison to user-friendliness

    There is no inherent reason it has to be this way. For example, running a web app in a browser on a unix system is just as friendly as running it on Windoze or OS X. Unix may not yet be well tuned to device limitations such as multitasking UI latency and battery life issues.

    The tidal wave of user friendly open source is coming. Jobs will leverage higher up the Bicycle of the Mind.

  31. @Jocelyn: you’re trying to be funny, and failing. You’re trying to be sarcastic, and failing. You’re quoting poorly, and succeeding. You’re hijacking the thread (with my help so far, yes) and succeeding. You’re making comparisons with deeply loaded examples, and trying to pass them off as completely reasonable. You might be right about your point, but your examples don’t help your cause.

  32. Unix’s user hostility is indeed bone deep, because Unix programmers deem usability an engineering detail to be added after the maximally flexible orthogonal core is in place, usually by a different team than the one who designed the core. That’s how clusterfucks like X11 happen, folks. No, usability has to be baked in and prioritized from the start. User-friendly systems prioritize user input over all other forms of processing. That requires special handling of user input devices in the kernel’s interrupt handler. Linux doesn’t do this. Not even modern Mac OS does it, and Windows certainly doesn’t. This was an ironclad law at Commodore in the 80s.

  33. > User-friendly systems prioritize user input over all other forms of processing. That requires special handling of user input devices in the kernel’s interrupt handler. Linux doesn’t do this. Not even modern Mac OS does it, and Windows certainly doesn’t. This was an ironclad law at Commodore in the 80s.

    Jeff wins the thread. I hate it when my PC / phone does not pay immediate to my direction, and I’m a Unix programmer.

    Yours,
    Tom

  34. Jeff is quite correct. User responsiveness is job #1. Android does a miserable job at that. ANDROID SUCKS BADLY AT HANDLING USER INPUT. Very badly. Like infinitely badly. It’s as if the people who wrote android NEVER ACTUALLY USED IT.

  35. > It’s as if the people who wrote android NEVER ACTUALLY USED IT.

    They all have iPhones.

  36. Actually I mentioned it before Jeff clarified it, where I wrote “contributed code would be maximally granular, orthogonal, re-usable” and “Unix may not yet be well tuned to device limitations such as multitasking UI latency”. I had in mind our discussion in the prior blog about referential transparency and how microkernels will be superior to monolithic kernels:

    http://en.wikipedia.org/wiki/Tanenbaum%E2%80%93Torvalds_debate
    http://en.wikipedia.org/wiki/L4_microkernel_family
    http://ertos.org/research/l4.verified/

  37. > User-friendly systems prioritize user input over all other forms of processing.

    Fast response to user input is an important aspect of user-friendliness, but it’s far from the only one.

    Programmers need to accept that non-programming users have different needs and priorities than programmers do. It’s not enough to know that a GUI is more user-friendly than a CLI – what’s needed is an understanding of why.

    For example, a windows-and-menus interface sacrifices easy in-line programming (which users don’t care much for) and in return provides the user with a “cheat-sheet” to help his flagging memory. In addition, the windows-and-menu system is tactful and graceful when the user doesn’t remember if the command was called “check spelling” or “spell-checker” or if it was to be found under the Edit or the Tools menu. A CLI, in contrast, would give the user an aversive shock in the form of an error-message if he guesses wrong.

  38. >Some Guy: spoken like one of Steve’s bitches.

    I’ll bet you’re a big hit on the playground, huh? Do the other adolescents all swoon at how butch you pretend to be?

  39. Some Guy, there is nothing wrong with your choice, until for example if one day Homeland Security forces Apple to put a tracker on your phone that has the capability to take over not only your phone but your entire life via the various financial and other data

    Jocelyn,

    If the government starts doing that kind of thing routinely, what in the world makes you imagine that you will be immune if you’re using an Android phone? Ever heard of these servers called “cell towers” that can sense where your device is? Indeed, that must do so to work at all?

  40. the Android SDK is free as in beer.

    …and you get what you pay for. I would rather walk a mile barefoot on broken glass than put up with Java.

  41. slaves like Some Guy

    Well, since you’ve decided to be gratuitously offensive, I will simply point out that doing so in no way supports your position, and in fact adds weight to the perception that Android fans are a pack of whackos.

  42. Maybe I am being a little dramatic in my example

    Yeah, no shit. I was expecting your next line to be “dear god, won’t someone think of the children?

    Jobs is censoring which applications you can install on your phone

    Nope. Apple in no way restricts what I can install on my phone, they restrict what apps they will distribute. The fact is, they don’t reject very many apps; probably around a hundred out of around a quarter million submissions so far. Of course, the people whose apps get approved and put on the store aren’t going to write long-winded whiny blogs about it.

    Apple has set some basic criteria for which applications they will carry on the iTunes store. That quality control, which Google lacks, is a service that their customers appreciate. It’s kind of nice not having to be concerned that an app you install might crash your phone.

  43. Thanks for the correction on iPhone apps. But how long before iOS is displaced by a suitable open platform. Note afaik cell towers can’t track a device in WiFi only mode, whereas if Apple has hooks inside your iPhone. I apologize about the slave comment, but it stems from the fact that western fiat system is in a perpetual debt trap of declining interest rates. Interest rates fall, private sector (especially since 2007/8) that can’t borrow at those rates is driven out-of-business because at a competitive return-on-capital disadvantage to those insider fat cats who can retire existing debt by re-borrowing at the lower rates. The mis-allocating public sector can also borrow at the lower rates and displace the private sector, yet for each halving of the interest rates, the total debt can double without increasing the debt service. The world is unwilling to retire the debt and discharge the govt’s 60% share of the economy, because the world can’t tolerate a 60% haircut in economic activity. Instead, the perpetual debt trap will slowly displace the remaining 40% of the private sector economy to the fat cats. The math derivation is available from Dr. Fekete. There is no group nor individual escape from this mathematical trap, humanity’s only hope is probably technology. I will take a break from this blog. Good luck and hope to see some of you some time.

  44. @Deep Lurker:
    WTF? First off, you make it sound as if the only types of user interfaces that exist are CLI and GUI. Secondly, you make sound like Android doesn’t have a GUI (Wrong.) and lastly, you make it sound as if Android users are expected to use a CLI. Also wrong. You can’t even access the CLI on a non-rooted phone except via a special debugging mode. End users don’t need the CLI. Ever.

    If this has something to do with deep psychological trauma from you being forced to use Unix in the 1980s, you need to get over it. All modern OSes offer modern, user-friendly GUI and CLI interfaces. None of them force you to use CLI.

  45. I would rather walk a mile barefoot on broken glass than put up with Java.

    @Some Guy: It’s not my preferred language, either. But then again, neither is Objective C. Understand, however, that most of the criticisms associated with Java (big memory requirements, slow load times) do not apply to Android applications because Android applications might be coded in Java, but they are not Java applications — i.e., they do not run in a Java VM. They are Dalvik applications, and Dalvik is an VM that doesn’t even resemble a JVM. At all.

    Furthermore, at least on Android, you have a choice. There are things like the Android Scripting Environment, which let you run code written in Python or Ruby, for example. You are forced to write code in Objective C on iPhone. Or, *laugh*, you could always write your iPhone apps in HTML 5.

  46. > You are forced to write code in Objective C on iPhone

    It amazes me how often this is repeated by people who haven’t bothered to check if it’s true. You only need to write your application delegate in Objective-C. This can be just a few lines of code – something to initialize your C or C++ classes, something to deallocate them, and something to pass user input from the hardware to your custom classes. And if you need direct access to the hardware APIs in your C++ code, you can mix and match within a given class declaration.

    I wrote a game for the iPhone where the code is 99% C++ and 1% Objective-C. If this is, for you, still too much like being ‘forced’ to write code in Objective-C, then I give up.

  47. I had gotten my G1 back when it was the only Android phone out there. After a while, I updated to Cyanogen to get Google Navigator.

    It was simply following the instructions to do that, but I didn’t like it because I had no idea *why* I was doing the steps I was doing.

    It is really astonishing how outdated the G1 is compared to standard offerings now.

  48. @Morgan: My GUI vs CLI example was intended to be a “spherical cow of uniform density” sort of example. My point is that it isn’t enough to slap a GUI on an OS and say “It’s user-friendly! It has a GUI!” One has to consider why GUIs (and other UI elements) have user-friendly advantages in order to avoid producing bad GUIs that throw away those advantages.

    Sure, Android has a GUI. But it’s a limited-purpose, bondage-and-discipline UI for a limited-purpose machine. More, it’s something painted on top of the unix innards rather than being, as Jeff Read puts it, “baked in.” Now a limited-purpose UI may well be good enough for something as teeny as a smartphone, but it means ESRs vision of “for most people, descendants of smartphones will become their primary computing devices” will never come to pass. Not as long as the descendants of smartphones run a descendant of unix.

    And actually my outlook has more to do with my imprinting on VMS DCL in the 80s. When I encountered unix shells in the 90s, they struck me not just as CLIs, but as CLIs designed to be especially unfriendly to non-programing users. The more I learned about unix, the more I was struck by its “users are losers” attitude. Even now, in the 21st century, I keep tripping over “Real Men Use CLIs” and “Users Are Losers” attitudes among the fans of the various flavors of unix.

    1. >Not as long as the descendants of smartphones run a descendant of unix.

      Then you’re saying the iPhone is doomed to fail in gaining end-user acceptance, too?  Interesting…

  49. Apple in no way restricts what I can install on my phone, they restrict what apps they will distribute.

    Yes, and then they actively prohibit you from installing apps in any other way, with the exception of building from source if you’ve paid the yearly ransom to run your own code on your own hardware. Apple is on record saying that jailbreaking is and should be a criminal act; fortunately the Library of Congress decided otherwise.

    I wrote a game for the iPhone where the code is 99% C++ and 1% Objective-C. If this is, for you, still too much like being ‘forced’ to write code in Objective-C, then I give up.

    Developers who don’t want to use Objective-C are unlikely to be thrilled about C++. Amusing that Apple uses security as a justification for their restrictive policies, while simultaneously requiring that developers use unmanaged languages where bugs are especially likely to become security exploits.

  50. > Then you’re saying the iPhone is doomed to fail in gaining end-user acceptance, too? Interesting…

    I hadn’t thought of that, but yes, it does follow. Assuming “end-user acceptance” means “end-user acceptance as their primary computing devices.” User acceptance as a limited-UI, special-purpose device is a different cooking-vessel of pisces.

  51. >I hadn’t thought of that, but yes, it does follow. Assuming “end-user acceptance” means “end-user acceptance as their primary computing devices.” User acceptance as a limited-UI, special-purpose device is a different cooking-vessel of pisces.

    Sounds like you’re weaseling out of what you said.

    There’s no correlation between the ‘Unixiness’ of an OS and how usable it is. iOS and Mac OSX are proof of that.

    The real question is not which OS is more usable but rather, how important is usability in the success of an OS. (Where success here is defined as large-scale adoptation)

    Surely it is important for an OS to be user-friendly but that may not be the only criteria. It may not even be the first criteria.

    If it were, then Windows may have never taken off and left Mac OS behind.

  52. >Developers who don’t want to use Objective-C are unlikely to be thrilled about C++. Amusing that Apple uses security as a justification for their
    restrictive policies, while simultaneously requiring that developers use unmanaged languages where bugs are especially likely to become security exploits.

    But bugs in iphone apps don’t become security exploits precisely because it’s a closed platform where only approved, signed apps can be run, and only one app can run at a time. None of the security-based arguments against unmanaged languages apply on the iPhone.

    1. >But bugs in iphone apps don’t become security exploits precisely because it’s a closed platform where only approved, signed apps can be run

      Your naivete is just astonishing. And funny.

      Systems like this aren’t secure, they’re security theater. Think: what happens when a cracker slips malicious code in an app past a signing authority who doesn’t know it’s there?

  53. @Bennett:

    But bugs in iphone apps don’t become security exploits precisely because it’s a closed platform where only approved, signed apps can be run, and only one app can run at a time. None of the security-based arguments against unmanaged languages apply on the iPhone.

    Ignoring the “only one app can be run at a time” statement (which is at least partially untrue), I’m going to borrow an idea from your fellow Apple fanboy, Jeff Read, (Jeff, you pay attention, too!) and point out one good solid well-known, undisputed case where code that definitely would not have been approved by the signing authority slipped through anyway onto such a platform.

    Now before I tell you, bear in mind this, Bennett: if this got through, then anything could get through such a review system.

    Okay, ready? Two words (and a link in case you were in living in a cave in 2004): Hot Coffee.

  54. >>I hadn’t thought of that, but yes, it does follow. Assuming “end-user acceptance” means “end-user acceptance as their primary computing devices.” User acceptance as a limited-UI, special-purpose device is a different cooking-vessel of pisces.

    >Sounds like you’re weaseling out of what you said.

    What I said was:

    “Now a limited-purpose UI may well be good enough for something as teeny as a smartphone, but it means ESRs vision of “for most people, descendants of smartphones will become their primary computing devices” will never come to pass. Not as long as the descendants of smartphones run a descendant of unix.”

    I don’t see any weasling here. What I’m saying is that a majority of people might accept limited-UI unix-based systems for specialized gadgets, but that they won’t accept a unix based system as their primary computing device. And as I noted upthread, the current Mac OS is not a counter-example.

  55. @Morgan: hypothetical counterpoint: is it really a bug if you have to hack the program to make it appear?
    The point still stands, though. Debian’s ssl fiasco is another example that hits closer to home. It’s not a closed platform, but it has a vetting process that in that case, didn’t work.

  56. Bennett, you’re wrong. I’ve heard of tethering apps that masquerade as flashlight apps
    Apple doesn’t do code audits so something like this is not hard to slip by their evaluation orocess.

    Once news of the exploit leaks the app may be removed from the store but it could have done some damage in the meantime.

    That said the numbers speak for themselves: something like 20% of Android apps are spy/malware; the numbers are much lower for iPhone apps of which there are a great deal more.

  57. Programmers need to accept that non-programming users have different needs and priorities than programmers do. It’s not enough to know that a GUI is more user-friendly than a CLI – what’s needed is an understanding of why.

    Well, duh. I didn’t specify immediate response as the only concern; only one of the first ones and one which has implications that require fundamental rethinking of the kernel of an OS.

    Instant response and spatial interfaces both play into the why of a GUI: Because a computer interface should match, as closely as possible, the way humans interact with things in the real world. GUIs are a superior cognitive match to human capability, which is optimized for recognizing, zeroing in on, and manipulating familiar things rather than memorizing or composing long arbitrary strings. That much you said already but it deserves emphasis.

    What’s alarming is that Microsoft has assimilated that GUIs are superior, but not this all-important principle for UI design. Their efforts to make things easier for end users involve fucking talking paper clips rather than easing actual cognitive burden. The result is an interface that people tolerate, but struggle with and get frustrated with.

    There’s no correlation between the ‘Unixiness’ of an OS and how usable it is. iOS and Mac OSX are proof of that.

    Apple decided to switch to the bolt-on model of usability, and usability has suffered. A particular issue is the lack of a spatial Finder. This is probably related to the fact that Unix’s crufty, metadata-less filesystem model cannot guarantee the presence of a resource fork. Regardless it’s a massive usability lose.

    Another problem is the Unix multitasking model, which was optimized for background jobs and interactive tasks talking to character terminals, not desktop machines where the foreground application must absolutely respond instantly to all user input. The kernel or a background process could tie up CPU cycles that should be spent responding to your commands (because it’s your computer) performing maintenance tasks like building the locate database or migrating pages of memory in and out of swap. Usability FAIL. This fail is not hard to illustrate: consider the instant response of the nearly single-tasking iPhone with an Android phone bogged down with multiple background apps. (Androids were pretty snappy, even in the pre-2.2 days, provided you ran nothing on them.)

    Had the iPhone used something like the Amiga multitasking model, where user-interaction interrupts are prioritized over all others, there’s no virtual memory, and switching tasks means two loads: one for your new PC and one for your new SP, maybe multitasking would have been possible to more than a restricted extent and not introduce UI lag. Alas, it was not to be…

  58. something like 20% of Android apps are spy/malware

    There was a poorly explained study that found that 20% of Android apps requested permissions that *could* be used for malicious purposes (e.g. access contacts and open network connections). By that standard 100% of iOS apps are malware because once installed they can do anything.

    Apple decided to switch to the bolt-on model of usability, and usability has suffered.

    Rose-colored glasses. Who remembers the fun of manually adjusting memory allocations in Classic Mac OS, or playing binary-search-for-the-bad-extension, or having your downloads grind to a halt because you held down a menu, or praying that command-option-escape would allow you to save your work after an app froze?

    A particular issue is the lack of a spatial Finder. This is probably related to the fact that Unix’s crufty, metadata-less filesystem model cannot guarantee the presence of a resource fork.

    Resource forks are not required for a spatial Finder, and regardless Mac OS X supports them just fine. In fact its metadata support via extended attributes is far superior to Classic.

  59. >>That said the numbers speak for themselves: something like 20% of Android apps are spy/malware; the numbers are much lower for iPhone apps of which there are a great deal more.

    Jeff, you must be talking about this: http://threatcenter.smobilesystems.com/?p=1887
    Here is what was said:

    >>It is noted that one in every five applications request permissions to access private or sensitive information that an attacker could use for malicious purposes.

    First of all, this statement was first made by a security software vendor, SMobile Security, who has a vested interest in scaring the shit out of people. That’s how they sell their services.

    That in mind, read closely. 20% of Android apps request certain permissions. These permissions are necessary to do useful things like use the internet, write to SD card, etc as needed. That does not mean that the applications are, in fact, using those permissions to do nasty things. This is clearly scare tactics on their part.

    The statement is equivalent to saying “iTunes has permission to read my files and access the internet, therefore iTunes is a malware app that is stealing my data”. Obviously, that statement would be complete bullocks. Android apps are no different.

  60. It’s been very interesting to follow the iphone/android wars here. My impression (from Europe) is that Android did manage to break into the cool/hip/must-have/bleeding-edge hunting reserve owned by Apple, in a way it did not happen with smartphones in Europe (as far as I can see) and certainly did not happen with PCs and Linux anywhere.

    I would like to hear your opinions about why this happened, but I was also thinking that (if true) this victory maybe has implications for Android itself: if it is indeed winning the cool/hip etc. race, then it’s bound to remain a gadget. I can imagine the Apple fans I know falling for the new hot thing and dropping the Iphone in a second – provided it remains something conceptually similar to an Ipod and different from a real computer.

    More generally, ESR’s hypothesis is that Android smartphones will win on substance, and absorb all computer functions their hardware will allow, but i have difficulty imaging that change right now. There seems to be a mental barrier between ‘work’ (computers) and ‘fun’ (smartphones), and that barrier could prevent the merging of the two. How many people you know carry their work files and data on their smartphones? How many people hook up their netbooks with a keyboard and a wider screen at home and work on it? And why should this be more likely with a smartphone?

    Everything is possible, of course, but it may well be that substance is incompatible with coolness, in people’s minds, and that Jobs has dumbed down the smartphone for ever.

    Anecdotal evidence I can provide is that all the people I know who own a smartphone still use usb key to carry their files with them: when I point ot they would comfortably fit on their phones, they balk, and point out that

  61. Linus didn’t whine, he got busy coding. For at least 11 years we have refused to program real security and encrypt data on the client side. Instead we provide half-baked *reduction* in security of perimeter walls and vacuum cleaners. Principle of least authority applies not only to the need for OS-level full disk encryption and memory protection, but also for example to force the user to press a physical button (with a standard prompt) to confirm a non-free network request (aka a phone call). On a battery device, every network request has a cost, so the OS should enumerate running tasks and accumulated bandwidth costs, so users can reason about poor programs. Each of us will be measured not on what we accomplished in the past, but what we are doing now improve. Advocacy is important, but imho leading by doing (programming) is the most important.

  62. >Systems like this aren’t secure, they’re security theater. Think: what happens when a cracker slips malicious code in an app past a signing authority who doesn’t know it’s there?

    >Okay, ready? Two words (and a link in case you were in living in a cave in 2004): Hot Coffee.

    >Bennett, you’re wrong. I’ve heard of tethering apps that masquerade as flashlight apps

    Unbelievably, it is me who is being called a fanboy here, when all of you are engaging in the quintessential fanboy activity: moving the goalposts. First of all, it’s that you are forced to code in Objective-C on the iPhone. When that turns out to be false, it’s that you’re forced to code in non-managed languages on the iPhone. And now that I suggest that there’s no reason to insist on managed languages on an iPhone, suddenly it’s all about whether signing authorities can be aware of all the code and content in an app.

    Would Hot Coffee, or the flashlight app with the tethering app, have been prevented if the coders were free to use (or even forced to use) managed code? No. These things are a completely different kind of ‘security threat’ than the kind of security threat posed by non-managed code.

    Managed code, when it’s useful for security, is useful because it prevents one program from interfering with another. It cannot prevent malicious programmers from hiding things in their own code.

    So on iPhone you can use Objective-C, C or C++. Does this introduce a security hole that wouldn’t be there with managed code? No, because you can’t leave arbitrary code running in the memory of an iPhone – if you are multitasking at all, it’s by passing audio, system alerts, and whatever other managed object Apple will let you pass to other programs. All three of you are engaged in the same ridiculous argument by misdirection… and yet I’m supposed to be the fanboy?

    1. >suddenly it’s all about whether signing authorities can be aware of all the code and content in an app.

      It’s all about that because you made the preposterous assertion that signed binaries and review solve the assurance problem. They don’t.

  63. CPUs will become more powerful and lower power, algorithms improve, thus going backwards to the stone age before garbage collection and virtual memory will not be the long-term winning platform.

    ESR says: Jocelyn, aka “Shelby Moore”, you are wearing out my patience with this constant spamming of the blog with cranky, nearly zero-content postings. Drop to one a day at most, or I’ll exile you to moderation.

  64. Does this introduce a security hole that wouldn’t be there with managed code? No

    Yes, as the recent PDF exploit demonstrates. That was in one of Apple’s system frameworks, but the same thing could have happened with a third party app. You don’t need multitasking to take advantage of bugs like that, you just need to arrange for the app to receive malicious data.

    Also note that even if an Android app used native code and introduced a similar exploitable bug, the damage an attacker could do would still be limited by the set of permissions that the app had requested, in contrast to iOS where any app can do anything.

  65. No, I made the entirely reasonable assertion that if you combine a unitasking environment with review and signed binaries, there is no need for 100% managed code. I never said there can be no security or ‘assurance’ problem on iOS. What I said was that you’re not forced to use objective-C, and that C and C++ cannot be considered invalid alternatives on security grounds.

    The really dumb thing about this is that there are perfectly good reasons for refusing to code on iOS. You don’t need to resort to telling lies about the objective-C requirement or to changing the subject to win the argument.

    1. >No, I made the entirely reasonable assertion that if you combine a unitasking environment with review and signed binaries, there is no need for 100% managed code.

      Less preposterous, but the implied assertion that certification by a signed authority is anything but security theater is still wrong.

  66. Also,

    >Yes, as the recent PDF exploit demonstrates. That was in one of Apple’s system frameworks, but the same thing could have happened with a third party app. You don’t need multitasking to take advantage of bugs like that, you just need to arrange for the app to receive malicious data.

    I don’t think this is true, because third party apps have to use Apple’s bindings through objective-C in order to access any external data. If there’s no hole in Apple’s code, there will be no hole in yours. Once more, I’m only referring to the kind of security hole that lets in malicious attacks, not the kind where a rogue developer publishes a harmful app.

  67. third party apps have to use Apple’s bindings through objective-C in order to access any external data.

    Not at all. There’s nothing preventing an app from reading data from a URL (either through the Cocoa API or directly with sockets) and then processing it in an unsafe manner.

  68. Consider this: there are literally hundreds of thousands of app store apps. The quality of code (and I include my own code in this) is often at or below grade-school level. When i published my first app store app I can honestly say I didn’t understand what a pointer was. Despite this, the only successful attack vectors found so far have been in apple’s system calls. I guess you think that’s just a freak coincidence?

  69. @Bennett:

    What you said was “bugs in iphone apps don’t become security exploits precisely because it’s a closed platform where only approved, signed apps can be run, and only one app can run at a time.” This statement is inherently untrue.

    No, I made the entirely reasonable assertion that if you combine a unitasking environment with review and signed binaries, there is no need for 100% managed code.

    But iOS isn’t a unitasking environment. And iOS 4 is definitely not a unitasking environment. Furthermore, there is no such thing as “managed code.” This is yet another mirage. More smoke and mirrors.

    The quality of code (and I include my own code in this) is often at or below grade-school level. When i published my first app store app I can honestly say I didn’t understand what a pointer was. Despite this, the only successful attack vectors found so far have been in apple’s system calls.

    This means nothing.

  70. @Jeff Read:

    Because a computer interface should match, as closely as
    possible, the way humans interact with things in the real world.

    Well, speaking as someone who has done a long, hard study of human-computer interaction (an area of particular fascination for me), none of the major computer operating systems (Apple included) has ever had a computer interface, GUI or otherwise, that matches the way humans interact with things in the real world.

    Take the folder/file model. Nobody sticks real world folders inside of other folders, inside of other folders. Yet, this model persists despite the fact that it still confuses the vast majority of first-time non-technical users.

    GUIs are a superior cognitive match to human capability, which is
    optimized for recognizing, zeroing in on, and manipulating familiar things rather
    than memorizing or composing long arbitrary strings.

    This is a bit besides-the-point, but effective use of CLIs has absolutely nothing to do with actively memorizing anything. I have never, ever in my life sat down and actively memorized anything relating to CLIs (or programming langauges for that matter, yet no one who has seen me work would argue that I’m anything but effective in my use of CLIs.

    Apple decided to switch to the bolt-on model of usability, and usability has suffered. A particular issue is the lack of a spatial Finder. This is probably related to the fact that Unix’s crufty, metadata-less filesystem model cannot guarantee the presence of a resource fork. Regardless it’s a
    massive usability lose.

    This differentiation between “bolt-on” usability and “baked-in” usability you keep mentioning does not exist. It has never existed. It is a figment of your imagination. The original Mac OS (or simply, “System” as it was once called), never had “baked-in” usability. Would it surprise you to learn that the
    Macintosh started as CLI machine? With a character generator and everything? Because that is absolutely true. “Baked-in” usability is a mirage. It’s nothing but smoke and mirrors.

    Another problem is the Unix multitasking model…Usability FAIL.

    Beats the hell out of the pre-OS X Macintosh model, which used cooperative multitasking. This cooperative multitasking was hailed as being far superior for usability back in the day. It lost. It wasn’t superior then and it isn’t superior now. Usability fail occurred because some poorly-written application or other would at times fail to yield or had to wait for I/O, which caused the
    whole machine to lockup and stop responding to user input. Remember the persistent stopwatch mouse cursor? Now that was usability fail. Even Apple eventually recognized this.

    Besides, the Unix multitasking model is used in all current modern operating systems. Even Windows’ multitasking model is very, very similar.

    Had the iPhone used something like the Amiga multitasking model, where user-interaction interrupts are prioritized over all others,

    Ah. Bitter former Amigite. Now that explains a lot.

    You have heard of the “preempt” and “realtime” patches to the Linux kernel have you not?

  71. > What you said was “bugs in iphone apps don’t become security exploits precisely because it’s a closed platform where only approved, signed apps can be run, and only one app can run at a time.” This statement is inherently untrue.

    You are right, but only in a sense that is irrelevant to the argument. The bugs that can become security exploits have to be put there by the programmer, so who cares if she is programming in Objective-C, vanilla C or C++?

    >But iOS isn’t a unitasking environment. And iOS 4 is definitely not a unitasking environment.

    True, but again only in a sense that is irrelevant to the point I’m making. You can’t put a malicious program in memory and keep it running while other programs run, even in iOS 4.

    >Furthermore, there is no such thing as “managed code.” This is yet another mirage. More smoke and mirrors.

    It wasn’t me who put this forward as a requirement. I agree with you.

    > Less preposterous, but the implied assertion that certification by a signed authority is anything but security theater is still wrong.

    On its own, I agree it would be nothing but security theatre. But the requirement for signed apps creates the opportunity for Apple to unilaterally yank malicious apps from distribution, which closes a particular kind of security hole, more or less. Much more importantly, it allows apple to enforce certain rules: no interpreted code, no calls to private APIs, and no third-party hardware-access APIs. These things aren’t security theatre, they are the reason why the platform has no viruses, worms or malware.

  72. Ah. Bitter former Amigite. Now that explains a lot.

    No. Though I know a few, and discussions with them can be frustrating and illuminating all at once. :) The Amiga OS was the Lamborghini Countach of operating systems: almost too awesome for its own good, and (unfortunately) hopelessly stuck in the late 80s. Its preemptive multitasking was second to none, though: its task switch time is unequaled to this day; and other OSes (like BeOS) have taken an Amiga-like approach to ruthlessly efficient multitasking that could have benefited iOS.

    Bennett,

    Managed code doesn’t prevent applications from clobbering each other. That’s the job of the virtual memory layer in your OS (provided it has one) and it’s a benefit afforded to even bare assembly programs. And you’re right: managed code doesn’t stop malicious programmers. What it does do is mitigate clobberage due to dangerous errors perpetrated by well-meaning programmers, thus giving malicious third parties a smaller attack surface. It can mean a much smaller time to market with some assurances about security, at the cost of performance and memory-consumption overhead. A tradeoff many developers are willing to make, especially now that smartphones are equipped with more RAM than my younger teenage proto-hacker self would ever know what to do with.

    And Apple does force you to use Objective-C for your main event loop and C, C++, or Objective-C for the other bits. The objection is that people would rather use Python or Scheme or OCaml. Before Apple implemented its onerous language policies, there were at least some games written in Scheme for the iPhone. Cultivating innovation on your platform by hackers is good for your application market and Apple’s reasons for undermining it are bizarre. But Steve Jobs has invented the ultimate pocket money press, so the loss of a few outliers on the app-developer spectrum is no big d to him.

  73. And just so you don’t pop a gasket, please take it as read that I don’t see the closed, corporate-controlled nature of the app store to be on balance a good thing. Like any jail, it has its positive aspects.

  74. @Jeff,

    I agree with most of your comment, and I think that is an entirely reasonable point of view. I guess I just think that it’s not insignificant that you can do most of your programming in C++, which for all its drawbacks remains the most popular programming language. It’s not as though Apple forces you to use some unpopular, ersatz programming language (although it could be argued that they do force you to use an unpopular, ersatz hardware platform to program with). Yet the claim that you have to program in Objective-C seems to come up again and again in Android vs. iOS debates.

  75. By the way, Google also has the ability to unilaterally yank malicious apps from distribution (and baleet them from your cellphone if it’s on the network) too.

    1. >By the way, Google also has the ability to unilaterally yank malicious apps from distribution (and baleet them from your cellphone if it’s on the network) too.

      But there’s a difference. Because Google’s source is open, CyanogenMOD exists and can disable this capability. I have it running on my G-1 now, and if I get any word that Google is abusing this capability I will put it on my N-1 before you can say “exploit”. With iOS, there’s no such respite.

      Fortunately, iOS continues to lose market share to Android at a rapid clip; latest evidence at Android Share Of Mobile Web Use Soaring, iPhone Falling. Which means not only is vulnerability to vendor fascism decreasing, but I get to continue mocking all the Apple fanboys’ religious convictions without mercy.

  76. > By the way, Google also has the ability to unilaterally yank malicious apps from distribution (and baleet them from your cellphone if it’s on the network) too.

    I know. I don’t know why you all instantly assumed that I was arguing that iOS is superior to Android—it’s just not there in anything I wrote.

  77. CyanogenMODs notwithstanding, Android is open for the carriers, not the users.

    One need only look at what Verizon and others crap into the phones before they are ‘released’ to become aware of same.

    I think Mr. Cortesi (above) had sn interesting point, which everyone here ignored. Software Freedom matters more than open source.

    Mr. Raymond celebrates the fact that the hackers can create their own solutions, which he, with their help, can install on his phone. This is an example of software freedom, not open source.

    Mr. Raymond is on record, many times, asserting that open source is good for business because it produces better solutions (which those businesses can sell).

    Today Verizon is shipping an Android phone where the only search engine is Bing, and the only maps apps are Bing. One can’t install the Google search bar on this phone. One can’t use Google maps or Google search on a phone that runs a open source operating system from Google.

    Verizon isn’t the only carrier that does this, of course. But they are the carrier who is driving the android volume the most.

    Be careful of what you celebrate, Mr. Raymond.

    1. >This is an example of software freedom, not open source.

      Wrong. These concepts are indistinguishable other than in their marketing and propaganda. This was true in 1997 and remains true today.

  78. But there’s a difference. Because Google’s source is open, CyanogenMOD exists and can disable this capability. I have it running on my G-1 now, and if I get any word that Google is abusing this capability I will put it on my N-1 before you can say “exploit”. With iOS, there’s no such respite.

    I’ve a friend who is also a Hero owner. I told her I rooted my device and she was curious as to what was involved. So I began to relate the steps I had taken.

    She stopped me midway through and said “That sounds too complicated and like too much work.”

    For the vast majority of Android users, the respite is the same as for iOS: none.

  79. I don’t care about the opinion of anonymous cowards.

    Of course you do, you pompous windbag! If you didn’t care, you wouldn’t be bothering to reply!

  80. > But there’s a difference. Because Google’s source is open, CyanogenMOD exists and can disable this capability.

    That’s rather strong claim because it actually contradicts with opinion of c-mod developers:
    http://code.google.com/p/cyanogenmod/issues/detail?id=1698

    In short – if you remove INSTALL_ASSET (e. g. google’s ability to install whatever they want on “your” phone) you immediately loose ability to use android market.

    1. >In short – if you remove INSTALL_ASSET (e. g. google’s ability to install whatever they want on “your” phone) you immediately loose ability to use android market.

      Oh, come on. The workaround for this is dead obvious. Think for five minutes and you’ll get it.

Leave a comment

Your email address will not be published. Required fields are marked *