Installed probably the last custom ROM update on my Galaxy S3 this year

I’ve been running custom CyanogenMod builds on my now aging Galaxy S3 for a while now (12.1, 13). Given that support for CyanogenMod ended at the end of last year, I thought it would be worth one last new ROM before I upgrade my phone this year, and installed the new LineageOS.

Using the already installed TWRP recovery that I already have installed, I downloaded the latest nightly LineageOS build from here, the latest Google Apps for Android 7.1 from here, booted into Recovery, deleted cache files etc, installed both new ROMs and now I’m up and running.

Even on my aging Galaxy S3, I have to say, this Android 7.1 build is surprisingly snappy, even faster than the last CyanogenMod build that I had that was pretty good.

Flashing Cyanogenmod 13 to a Samsung Galaxy S3

I’ve been running Cyanogenmod 12.1 on my Samsung Galaxy S3 for a year or so now, and have updated to various nightly builds when they’re available. Cyanogenmod 13 became available a while back too, so I decided I’d bump up from Lollipop up to Marshmallow.

Lollipop on this one ran pretty smooth, but it looks like it’s struggling with Marshmallow, maybe it hasn’t got the oomph.

I usually find the point I start messing with custom roms is the point where I’m looking to prolong my phone just a bit longer, so maybe at this point I’m getting close to that upgrade. Still, can’t complain, this is a nearly 4 year old phone and it’s still going strong. If I use it a lot during the day then the battery will drain within a day, but other than that, it’s been an awesome phone so far.

Flashing CyanogenMod 12.1 ROM to a Galaxy S3

My T-Mobile Galaxy S3 hasn’t had any over-the-air updates for a while (it was still back on Android 4.3) so I decided it was time to manually flash a CyanogenMod ROM (I ran CyanogenMod on my previous Android phone so I’ve been through these steps before, but every phone is slightly different).

Following the instructions here, the first issue was when flashing the Recovery ROM. Per the instructions when the S3 is put into download mode, after sending the Recovery ROM using ‘heimdall flash –RECOVERY recovery.img –no-reboot’ I didn’t see the blue progress bar on the phone, even though heimdall had completed successfully each time I ran it.

The Home+Up vol+Power combination to boot Recovery on my S3 would only boot into Recovery if I released the buttons immediately after the first display on the screen – holding any longer would just bypass Recovery and start a normal boot.

Next issue – when transferring the new ROM images with adb to /sdcard,  in the ‘Apply Update’ menu item, under sdcard1 I couldn’t find my zips. Using ‘adb shell’ to dig around on the file system it seemed this had literally created a sdcard dir on the root of the filesystem, not copying to the sdcard itself. Maybe I followed the instructions too literally. Anyway, copying to /data/media/0 was a location that I could browse to in the menu, so this worked for the initial install.

After booting first time, I had to re-enable developer options so adb could connect (tapping ‘build version’ 7 times in the system settings menu). On CyanogenMod 12.1 I now had a /mnt/extSdCard, so I uploaded a zip with the Openapps Google apps (from here), booted back into Recovery (Home+Up Volume+Power) and installed the Google apps.

Next issue – none of the Google Apps would start up as a I got the ‘Google Play Services have stopped’ error – this sounds common if you have a mismatched Google Apps version compared to your base Android API level, although that didn’t seem like my issue.

(If anyone’s interested, the error in the logs was NoSuchMethodException callDrawGLFunction … snip … Api21CompatibilityDelegate )

Api level 21 caught my eye as that’s Android 5.0 – 5.0.2, not 5.1. So next I tried downloading the Google apps for 5.0 instead, but the Recovery ROM won’t actually allow you to install a GApps package that is for a different Android API level, so that didn’t work.

Following instructions for wiping Dalvik Cache, /System, /Data, Cache, and even internal storage didn’t make any difference either (Team Win Recovery ROM gives options to delete all of the above, whereas the CyanogenMod Recovery only has an option for a Wipe/Factory Reset – I’m not sure if this wipes all the partitions or not)

Next step, I tried a number of the different OpenApps packages, and none of these worked, they all gave the same error:

open_gapps-arm-5.1-mini-20151206.zip

open_gapps-arm-5.1-nano-20151206.zip

open_gapps-arm-5.1-pico-20151206.zip

Ok, next, digging back through some older releases from the GitHub releases page – the first older release, 20150716, wouldn’t install. The next one 201510715, did install, and yes, finally got there, the Play Store opens without an error and can finally get stuff installed and setup.

That took much longer than I was planning, but the CM 12.1 build with Android 5.1 looks a massive improvement from what I had, plus it’s pretty snappy and seems more responsive. That could be to do with my 2 year old phone never having a factory reset, but it’s looking pretty good right now, so I’m happy.