Marshmallow on the Galaxy S5

It’s possible that Samsung are going to update the Galaxy S5 to Marshmallow (Android 6.0) this year, and there was even a leak when someone received an OTA update to a beta version of Android 6.0 on their Galaxy S5 but I wouldn’t hold my breath waiting.

If it ever arrives, that update will still come with all the usual Samsung bloat. Some of it is useful but honestly, I could do without it. I managed to get rid of most of that when I used a different TouchWiz based rom but it didn’t leave much free space in the internal memory of the phone.

Then a few days ago came news of a 3 year old Linux kernel bug that puts any machine running vulnerable versions of Linux at risk. That includes millions of Android phones. Most of those phones will never be updated.

With Marshmallow, Google are responding faster with dated “patch levels” so you know when it has been updated but that’s not much good if you’re still on an earlier version of Android or using an older phone that’s unlikely to be updated.

So, with my phone regularly running out of space, the prospect of more Samsung bloat, and a nasty exploit, I decided to go down the Cyanogenmod route once more.

It took about 3 hours to do, and most of that was because of backing up and reconfiguring apps. I had a head start as my phone was already rooted so first I installed Philz Touch Recovery using a handy app called Rashr that I found through this video. I skipped the first 12 minutes where he rooted his phone:

I backed everything up (nandroid, Titanium, SMS etc) and grabbed a nightly build of Cyanogenmod from here and with the help of the install instructions I found the right Google Apps package. Installation after that was a breeze, I just followed the instructions. (Boot into recovery, wipe, flash Cyanogenmod first, then Gapps).

There was one hiccup. I couldn’t get root access, even after enabling it in Developer Options. I had to flash CM and Gapps again.

The phone does feel faster, even with Facebook, Messenger and Google Plus installed now. Unfortunately Greenify isn’t hibernating them as it thinks they’re “working” but Marshmallow has it’s own doze mode that I presume is doing something.

I also have lots of extra space. With nothing else installed I had around 9GB free in the internal memory! Samsung software usually swallows the majority of that.

It’s a good thing I had that space, as Pocket Casts wasn’t behaving properly. I had it backed up so when I restored it I tried to point it at my podcasts directory on the external card. For some reason I had to set the “custom directory” to point at the directory, but then it couldn’t download new podcasts so I moved the files to the internal memory. Several minutes later and 5GB of mp3 files were moved. Luckily, when I checked the settings again, it had an “sd card” option, so I was able to move the files back toe the external card.

I had worried that bluetooth wouldn’t work but it works almost as well as with the Samsung software. Occasionally there’s a click sound, and once it disconnected when I turned on the torch.

When I first turned on the phone I used a new external sd card (just in case), and I was offered the choice of making it behave like internal memory using Marshmallow’s Adaptable Storage feature. I enabled it, but the phone said it would be slow (even though it was a HCI, class 10 card) so I reformatted it as portable storage. I then rebooted and inserted my original card.

I like to read books at night, so I use screen filter to make the screen almost completely dark. I also use Twilight to make the screen more red (Marshmallow has a feature that changes the colour temperature of the screen, but I prefer the look of Twilight). Unfortunately, and I remember this from my previous adventures with Cyanogenmod, the capacitive buttons on my phone light up whenever I touched the screen, not just when I touched the buttons. Also, the charging light would remain on when the screen was on. There’s an option to disable the notification light for app notifications when the screen is on, but not the charging light. Luckily I was able to disable both buttons and charging light in the settings.
The button light is an issue going back years so it’s unlikely to be changed. I think I had to use an Xposed module last time to fix it. 🙁

The only thing I miss from the original S5 software is the pedometer in Samsung Health, but I’ve been using Google Fit for some time now and that works just as well.

I really love the app permissions in Marshmallow. Unlike earlier versions of Android where you have to grant an app a number of permissions on install, you grant them now when they’re needed (well, except Internet access). When I tried to post a photo to Facebook up popped this message:

Photo by: Donncha O Caoimh (

I still have a nandroid backup of my phone so if I wanted to go back to the Samsung TouchWiz world I can, but I suspect I won’t.

Oh yeah, They’re working on that Linux exploit too. 🙂

Galaxy S2 + Android KitKat = new lease of life

I have an old but capable Samsung Galaxy S2 that has remained unused for several months but when my Nexus 7 tablet was stolen (along with most of my camera equipment, but not my Canon 6D fortunately) a week ago I wanted another device my son could use.

One of the requirements for any such device is that only I install new apps or games. I already have a PIN on purchases but there’s so much spam on the Play Store that I suspect at least some of those Minecraft clones are up to no good. On the Nexus 7 I could use a restricted account and choose what apps or games my son could run but my S2 was running an old version of Cyanogenmod and it looks like CM isn’t supporting it any more.

NeatROM for the S2 to the rescue! It’s a KitKat 4.4.2 based ROM for the Galaxy S2 and it was a fairly painless install. You’ll need to flash a KitKat compatible CWM Recovery first, then the ROM and then Google Apps. All those things are listed on the page above.


It was then I realised and remembered that the multiuser support in Android 4.2+ is for tablets only. Luckily the code is already there but it’s switched off and someone else has already taken care of it with the Modaco toolkit for Xposed. Unfortunately after installing this the first time the phone wouldn’t boot so I had to start from scratch again but the second time it worked fine. I enabled multiuser support in Modaco and the Users menu appeared in Settings!

Unfortunately I needed to login to the Amazon Appstore in the restricted account, but a PIN should stop any accidental purchases.

The S2 is showing it’s age. I suspect the flash memory is starting to wear down. When I tried to install multiple apps at one time the Play store stopped downloading them and I had to stop the download. The original battery is rubbish but a larger replacement lasts a few hours.

It plays a mean game of Angry Birds however, which is all my son cares about now!

Cyanogenmod 10.1: the Jelly Bean update for my Samsung Galaxy S II


I’ve had a Samsung Galaxy S II since around August 2011, and while the S3 has of course tempted me the cost of the device and/or monthly commitment was too much. I’m hoping that the release of the S4 will see a price cut in the older phone! I also feel the SGS2 is a “good enough” phone for most of the things I want it to do so there was that too.

Meanwhile my S2 has been rooted for a long time but I was running an old version of Android, Ice Cream Sandwich. There’s supposed to be a galaxy s ii Jelly Bean update sooner or later but because of all the tinkering I’ve done to my phone any previous OTA update always fails. Meanwhile, installing Cyanogenmod 10.1 was almost as easy as following the instructions here.

The hardest bit was getting an updated ClockworkMod Recovery on there. In Windows, Heimdall refused to see the phone, or reported an error, “libusb error: -12” or “failed to initialize protocol” even after running the included zadiag.exe. I tried it in Linux too but had similar problems until in frustration I disconnected the phone and put the Macbook to sleep. When I tried it again 5 minutes later it worked and squirted a new CWM down into my phone!

With that in place my phone wouldn’t boot, if I didn’t go into Recovery mode it just showed a black screen. No matter as I had everything backed up with Carbon backup. I removed the SD card and copied the latest nightly firmware and gapps on there. Booted into Recovery, factory reset, flashed those zip files, did a dalvik clear just in case and rebooted into Jelly Bean, Android 4.2.2! Once I logged into Google it started downloading all my apps again and with Carbon I was able to restore the settings of all my apps.

Photosphere isn’t included in this rom but I found it here in a flashable zip. Here’s what it looks like when I used it on Patrick’s Street, Cork today. iOS has a similar functionality I guess as I’ve seen a few colleagues from working waving their iPhones around while at meetups! The camera on the SGS2 is frankly rubbish but Pixlr Express does a good job of making photos look a lot better.

How does it perform? Very well for the most part.

  • I noticed that if I tether my Nexus 7 with a wifi hotspot then I will sometimes have to bring up an Internet app on the phone to wake up the 3G connection.
  • I noticed two Maps processes going a bit loopy when GPS was disabled and I had launched Ingress. GPS is disabled now and the phone is fine. Odd.
  • As a result of restoring settings from Carbon backup, Greenify had a list of apps to hibernate but because I hadn’t run it interactively then it hadn’t been granted superuser privileges. My phone got really hot as I guess the app was trying to hibernate the Facebook app repeatedly. TouchPal kept closing too but clearing the cache fixed it. Those aren’t Android problems, just a side effect of the restore process and insufficient error trapping in the apps. I’ll contact the authors about those (admittedly obscure) issues.
  • Sometimes there’s an odd slowdown in the UI. Ingress was dog slow for about 30 seconds but then it righted itself and it’s definitely faster than ICS.

I love Google Now! I wish the monthly activity card displayed in Km instead of miles. I like the new mini settings but wish that GPS was there to save me having the Power widget on a secondary homescreen. Photosphere is pretty cool. I wish Chrome had browser extensions so that Lastpass could build support for it. I haven’t yet noticed any huge difference in battery consumption. I don’t care if the FM radio doesn’t work, I never used it. Podkicker and Tunein Radio take care of any audio. The Apollo music player is nice, but doesn’t play very nicely with MP3s that don’t have tags. I had to fix some rips I made recently of CDs as they were coming up as from Unknown Artist, even though the files were in artist/album directories. All the other MP3 players I tried did the same however.

CM 10.1 has an auto update feature that John reminded me of. I haven’t enabled it yet though. I need to do more research and find out how it works and whether it will clobber my app settings and data.

If you have an SGS2 you should definitely give Cyanogenmod 10.1 a spin. I remember the first time I upgraded my original SGS to CM7 and the problems it had with camera support but I didn’t have any similar problems this time. CM10.1 will give it a whole new lease of life!

How open is Android?

The Android Wikipedia page is quite a read. I’m particularly taken with the research into how “open” it is (not really, compared to other projects) as I’ve never seen a commit log or discussion of patches for it.

Moreover, our findings suggest that Android would be successful regardless of whether it is an open source project or not, to the extent that the vast majority of developers working on the project (the platform itself) are actually Google employees.

The section on Linux is intriguing too. Linus Torvalds says that Android and Linux would come back to a common kernel but that presumes Google will open it’s development and “innovate” in the open. I’ll just leave this here to check back on in 5 years time..

Meanwhile, there’s the Replicant project, an effort to make a completely Free Software version of Android. They want to remove proprietary device drivers and discourage the use of Google Market. Their list of supported phones is limited but I was surprised to see the iPhone listed there!

I did wonder what the difference was between Replicant and CyanogenMod. Various posts I’ve read on the XDA forums have stated over and over again that the project was more interested in open source solutions rather than using proprietary software but this thread on LWN shines some light on the issue.

Found the official line:
“CyanogenMod does still include various hardware-specific code, which is also slowly being open-sourced anyway.”

So, they’re being realistic about their efforts. They’ll use proprietary software when necessary but they’ll work towards replacing that software. At the rate that handset hardware changes I applaud them for taking this pragmatic route. The only phone the Replicant project fully supports is the relatively ancient HTC Dream. Yes, open source drivers should be released by manufacturers but that won’t happen.

Android isn’t really that open in terms that an Open Source advocate would understand. The traditional public CSV or SVN repository and a daily changelog is nowhere to be seen. It’s definitely developed in a cathedral rather than a bazaar. Does it matter to the vast majority of its users? Probably not, but I for one am happy it is Open Source and the code is out there. Without the (admittedly late) release of source code it would be much more difficult to use other after-market firmwares on Android phones.

Living with CyanogenMod 7 for Samsung Galaxy S

My phone, a Samsung Galaxy S, has been running CyanogenMod 7 for the past week or so. The first week was a bit rocky. The phone ignored vibration settings at first and would vibrate when ringing, and when I hung up. In one call I couldn’t hear the caller at all! It also ignored my ringtone setting and used the first mp3 on the phone (not so bad, it was a Fun Lovin’ Criminals track!)

Anyway, I practically had to upgrade. I was running an earlier version of the Voodoo rom which unfortunately didn’t behave. Wifi kept turning itself off and I used my allowance of 3G bandwidth a couple of times. I did try to update Voodoo but screwed up and had to do a factory reset. Thankfully I had a backup done with Titanium Backup! After restoring my apps I decided to take the plunge to CM7. Why? Gingerbread!

CyanogenMod is an aftermarket firmware for a number of cell phones based on the open-source Android operating system. It offers features not found in the official Android based firmwares of vendors of these cell phones.

Initially I installed the 7.1.0 RC1 but there were problems as I mentioned above. There are nightly builds however and they’re supposed to be fairly easy to install. I screwed that up too but eventually got everything working! I’m now running nightly #67 and things have been fairly smooth.

CyanogenMod 7 is a very good mod. My phone is flying along and while it does offer advantages over the stock kernel (updated more often plus other features) you do miss out on the excellent Samsung Camera app, and battery life is slightly worse. The FM radio doesn’t work either but I haven’t bothered to investigate that as I rarely use it.

Flashing a new rom isn’t for the unadventurous. If the idea of rebooting into recovery mode, possibly changing radio drivers and knowing you might run into a world of pain scares you, don’t do it! Gingerbread, the latest Android firmware for phones, is making its way to the SGS and if you haven’t got it yet run KIES and you may find it waiting for you. The advantage of using CM7 is that they can move to the very latest Gingerbread (2.3.5 at the time of writing, my phone company only offers 2.3.3). Nightly build #70 introduced that version of the OS. You might want to keep an eye on this thread on the XDA forums too. There are problems with the nightlies but of course most of those who have no problem won’t be posting there so you’re bound to see a concentration of negativity. #67 works fine for me. YMMV!

How fast is my Samsung Galaxy S now? I ran Quadrant Standard three times, with progressively better scores.

  1. 1612
  2. 1977
  3. 2015
For comparison, the original Samsung Galaxy S had a score of 750. I would be very interested to hear how the stock Samsung Galaxy S with the Samsung Gingerbread firmware compares.

It’s still not quite as fast as the Galaxy S with the venerable “One Click Lag Fix” I benchmarked a while back. That used EXT2 however, a filesystem lacking journaling features important to maintaining data in the event of a system crash or problem.

Would I recommend CyanogenMod 7? If you’re a techie and can live without the Samsung Camera App then yes. Go for it. If you’re an Open Source fan who hates proprietary software you should definitely go for it. You even have to install Google Apps separately because they are proprietary software!

If you just use your phone to take photos, check Twitter and make phone calls, then don’t go near CyanogenMod 7 (or any firmware TBH!) just yet.