Its not the skins.

Posted Apr 26, 2012 at 3:25 pm in Threads > Opinions

I was originally going to post this on the Verge’s android forum, but now theres a contest here :) I’ll probably still post it there, because there’s a wider audience of nerds, I guess you guys are the beta test? whatever.

Everyone in the tech world knows that skins are evil and slow down your updates, right? Wrong.

A quick disclaimer before you read this: I am a raving android fanboy, I have a rooted nexus S with CM9 on it. I chose it because I had a moto Milestone before. That damn phone was so locked down that even the simplest of bugs couldn’t be fixed without a lot of pain and suffering on some dev’s part. As an engineer, nothing is more frustrating than unfixable problems. I chose a nexus for its openness, not the lack of skin, as skins are mostly an afterthought for me, I put cyanogenmod on every android I touch.

On our nerdy fringe of things, having the latest and greatest is the most important thing imaginable. It really doesn’t matter much to the general public. Sprint even had a commercial with cats in it for the nexus S, and only nerds bought it. I’ve heard people saying that windows phone with its lack of skins and diversity is better than android, simply because pretty much everyone has mango now. If having the latest and greatest mattered, more than 10 people would have bought windows phones by now.

Every time an other manufacturer announces that they won’t upgrade expensive and capable devices, the exact same conversations play out in the comments and here in the forums, and I’m sure everyone thinks they have a unique insight to add. Theres always an iphone owner (who didn’t have his iphone 3G made totally useless by an update, presumably) who will take the chance to crow that its really easy to keep two phones up to date. What weirds me out more though is the “insight” offered by android geeks. For example, there’s almost always a douchey opensource guy who legitimately thinks no one has ever heard of xda-developers and that this is a viable solution for people who aren’t totally nuts (like us). You can’t really cure whatever it is that opensource people have, but these guys don’t really bother me, the ones who do are the other android geeks who have a mad vendetta for skins. THere’s always a cry for either every phone to ship with stock android, or a cry for the option of stock android.

This is really important, so I’m going to write it on a separate line, in caps, bold, italics and underline:

**IT IS NOT THE SKINS.**

No really, you read that right. Those nasty skins are not what slow down your android updates. Its the hardware.

When google releases a new version of android, they only really release it for their own hardware, you can compile android 4.0.4 for the nexus S, Galaxy Nexus and the xoom. Nothing else. If you’re an OEM and your hardware isn’t basically identical in every way to one of these gizmos, you’re SOL and you’ve got some work ahead of you. That work all occurs behind closed doors, so it seems like magic, and when it comes out the other side, there’s blur/wizz/sense piled on top and thats all we see.

To see this happening in the open, we need to have a look in the developer community, because they often work in the open. If your phone is relatively new, theres probably an ongoing effort to port Cyanogenmod to it. If you do a little bit of digging on xda or rootzwiki, you can figure out who is leading that effort and check out their twitter or google+ (or if they’re really masochistic, they’re active in the xda thread), its cool, I’ll wait. You’ll probably see that about a month or 2 after a phone’s realease, they put out a video and said something like “Its totally not ready for a release, but check it out! It boots! Theres touch!” and you might notice that all of the CM stuff is there (whether it works or not yet isn’t super important). THe CM guys re-use a lot of their code for things like the launcher or the flashlight or the performance settings, or whatever else. Where they can’t reuse code is for invisible stuff, like making the processor and RAM work. A lot of the time they have to fight with the sound drivers so that the speakers make sound and not nonsense (in CM history, they’ve had to plug an oscilloscope into a phone before. Hardcore.). This is easier for OEM’s because they either make the parts or can talk with the guys who did, but theres still a lot of adding hardware to android.

When version updates come out for phones, what kind of bugs do they usually have? Is it that the Sense launcher screws up every once in awhile or is it that the update completely breaks 4G or Wifi for some users? That carrier testing that delays your ROM update isn’t testing to make sure all the bloatware works, its to make sure the radios and sensors work, or that the phone doesn’t reboot every time you make a call.

A lovely example of this dropped in our laps since the release of the source for android 4.0. Blur, touchwiz and sense all leaked pretty quickly, and were pretty much fully (de)formed. They’re all available on xda, but seriously buggy. Sony even released an alpha version of android 4 for some xperia phones, and it can’t even make calls yet, but looks suspiciously like sony’s old skin. THe G2X was stock and it finally got a gingerbread update last week.

MIUI 4 came out ridiculously fast, but only for the nexus S and the Galaxy Nexus. This isn’t accidental, with nexus phones, google has already put in the effort to make the hardware work. Adding a completely revamped launcher and contacts is easy- well, easier than trying to port all of android to a new phone. Thats why OEMs do such extensive customization, once you’ve got android booting and functioning on your shiny unrealeased phone, changing the layout of the MMS app or adding a brightly coloured theme to the setting menu is dead easy, especially when you already have some (or even all) of the icons and bits you want to use.

Basically, if you read the last few paragraphs correcly, you should no longer assume that HTC/Sammy/Moto could release a stock ROM for all thier phones the day after google releases thier ROM for the Nexus S. If they did this, the skinned and unskinned versions would probably be released at exactly the same time, so what would be the point?

Annother idea that has been around forever is a theme engine. Its been around so long that android actually already has one. since the beginning. Its called Framework-res.apk. If you dig into your system (or download an update.zip from xda) and go to /system/res/framework-res.apk you can open it with 7zip and you’ll actually find every single system image. It’ll be things like the overscroll glow, or the select text anchors or the signal bars. They all have arcane names, but trust me they’re all there. If you edit them with photoshop (or replace them with your own images that you’ve made before) you can repackage the apk and sign the update.zip again and you could have a totally revamped look for your ROM in a few hours; or a subtle change in a few minutes, seriously, you can change the colours of your Galaxy Nexus’ soft keys while sitting on the toilet. When the ICS sdk was released, there were beta themes for CM7 the same night.

Its also worth noting that absolutely no-one could release updates at the same time as google. Google cheats a bit and develops android for thier hardware at the same time they’re developing the overall OS. That few months of delay that everyone else has is hidden behind closed doors and closed source. Same goes for custom ROMs, sure you can get CM or AOKP to boot on a lot of devices with no official upgrade, but none of them work well enough to say that Romanbb or Cyanogen has ‘beaten’ all these multinational companies. By the time a CM9 RC1 comes, a lot of phones will already have ICS from their manufacturer.

So what does slow down updates?
1)Differing Hardware – Without this, all android phones would be identical, would you want that? There would be no push for dual or quad-core chips. No fantastic amazing cameras. No keyboards. No QHD or 720p screens. None of the diversity we all love. We’d all have windows phones.
2)Manufacturer and Carrier Testing – Alpha and Beta ROMs are fine for xda-dwellers, but I’m glad the general public gets thoroughly tested ROMS.
3) Manufacturer apathy- If samsung made an update for the Galaxy S, it would probably come out in march, and then you would sell it on craigslist and buy a GSIII in June. Is that worth it for them? (no, no it is not)
4)Customer apathy- Average, non-crazy people frankly don’t give a damn. Most people’s only vision of updates is from windows, where they’re constant, annoying and pushy and seldom seem to actually do anything at all.

Don’t be a hater for skins. Part of the reason android is evolving so fast is that the OEMs are trying to add awesome stuff to it and google is taking some of the ideas. The reason verizon has two dozen different android phones on the shelves is that they all feel completely different. We wouldn’t have our market-saturating dominance if all phones were stock. We wouldn’t have deep, seamless social network integration if Motorola hadn’t built it into blur (hell that’s where Blur got its name). We wouldn’t have scrolling widgets if HTC hadn’t put them in Sense. Android probably wouldn’t be as popular worldwide without the “its like an iphone, but cheaper” thing that samsung cemented when they made touchwiz a blatant rip-off of the iphone. Admittedly some of these attempts at innovation go incredibly badly (go to best Buy and play with any LG phone), and its totally fine to hate them for that, but don’t hate them because you think they’re holding you back on 2.2. Don’t forget that skins get better as android gets better too, eclair sense was awful, and a lot of that was because Eclair was awful, froyo-wiz is better than eclair-wiz and gingerblur was better than froyoBlur; sense 4.0 looks like it might even be good.

It would be great if manufacturers tried to consolidate thier portfolios, we don’t need new low-end devices when last year’s high-end devices are free on contract now. It would be really cool if skinned versions of android were as light and fast as stock. It would be really nifty if every manufacturer didn’t find a way to make the gallery and contacts apps clunky and ugly. It would be wonderful if manufacturers would hammer out ICS updates for absolutely everything, but that would be absurdly expensive and wouldn’t net the OEM’s a lot. Calling on google to lock down android would gut the innovation that drives it, and not actually do anything.

So seriously, stop hating on skins. Stop it.

  • http://androidandme.com Taylor Wimberly

    Is this a message to The Verge staff? I saw that video where they kept making fun of the guy who loved TouchWiz.

    • orangestrat

      Its a message to all of us. The verge staff are guilty of this, but so are writers like you and commenters like me, pretty much everyone thinks that skins are what are slowing down their updates, but I’m pretty sure that if they arent’ stopping the update completely (like the galaxy S) they don’t slow down the update process at all.

  • Bpear96

    Yes.. i agree 100% except for the fact, that some people either A.) dont know what rooting and custom roms are, B.) Dont want to void there warranty or C.) The skins also do slow down the release of updated kernel sources (which it shouldnt) since the OEMS are working on making a stable update with there skin before the release the sources which can make updating the phone to a higher version AOSP rom like cm9 or aokp difficult like it was proven with the exynos galaxy s ii’s.

    • orangestrat

      I know its long, but did you read it? The skins aren’t slowing down the updates. or the kernel source drops. or anything!

      • Bpear96

        Yes i did read it, and also its not just the skins, it really isnt that easy to port the latest version of android to different phones, SoCs, radios etc. The reason roms like CM7/9 can come out so quickly is because the manufacture already did most of the hard work and made a working kernel, so the XDA devs can mod up its source to work with aosp, im not saying there work is easier, buts its a HELL of alot eaiser then trying to port the AOSP to a phone without any kernel sources, that the manufacture spent loads of time making. So yes skins like touchwiz dont slow updates down that much i will agree on that it is most likely the manufacture being lazy, and not wanting to update the kernel. but skins like sense i would say probably do slow down the update, because its a very very intergrated skin and also adds tons of features that htc has to make compatible with the new android build.

        But still my point is still valid saying if a user doesnt want the skin, there is the option to install a custom rom, but still A.) dont know what rooting and custom roms are, B.) Dont want to void there warranty

        Manufactures should really make there skins mostly just a custom launcher and maybe add some extra features and widgets, but not go so deep into android and skin it.

        • orangestrat

          That’s the point. It isn’t the skin, its the kernel. I’ll just gratuitously quote myself here:
          “That carrier testing that delays your ROM update isn’t testing to make sure all the bloatware works, its to make sure the radios and sensors work, or that the phone doesn’t reboot every time you make a call.”
          That stuff is all in the hardware, not the UI. The skins don’t really go that deep, for exapmle the new blur launcher works on all ICS phones.
          The kernel source is supposed to drop at the same time as the ROM is released, but the ROM doesn’t delay the source, its the low level kernel development that delays the ROM release.

  • http://htcsource.com Nick Gray

    Great post. I think it ties is very well to the “Why custom skins are important” article I did a few months back.

    http://androidandme.com/2012/02/news/why-androids-custom-uis-are-important-to-the-future-of-the-platform/

    Custom skins add to the rapid innovation within Android, making the platform better for everyone.

    People want to point their finger and blame someone for delayed updates. I honestly think Google should take some extra responsibility and work with component makers and OEM to update the drivers and kernels for the devices so that updates can be pushed out a lot faster.

  • Bryan Stoner

    This is a pretty scary wall of text. But I understand your point. It’s a shame when people flame on Touchwiz, sense, motoblur, or whatever. They really aren’t that bad. They aren’t UI designers either so what credibility does their flaming have anyway. Testing has to be done!!

    Honestly, most peope are resistant to change and can’t bother to read the fine print.

  • Milind

    I don’t know anything about hardware. but I have a very simple question. Why is it that the drivers have to be customized for a new version of the OS? It doesn’t happen on Windows or Linux on which Android is based. So what is so special about phones that every new OS needs so much effort for *existing* hardware. I can understand that a new OS taking advantage of new hardware that doesn’t exist, may take time to write drivers for.