So, I’ve been humming along with the last nightly of the CyanogenMod 10.2.0 release (actually the post-release 20131206 nightly) based on Android 4.3.1 on my Samsung Galaxy S3. The longer that I use CM, the more I like it. CM is fast, smooth, and offers a good balance of features and customizations. No worries.
Over the last week, CM has been releasing CM 11 nightlies based on Android 4.4.1 kitkat for general testing on the Galaxy S3. Although fully and happily operational on Android 4.3.1, I’ve been keeping my eye on 4.4 kitkat. This past Thursday’s nightly for the S3 jumped to Android 4.4.2. My kitkat lust became uncontrollable, so I decided to check the forums and Google+ for user issues. Some lost their WiFi on the international version and there are issues with some of the Google apps, some had worse problems like boot loops, but some had no significant issues with the nightlies. Armed with unbridled optimism that overrode my better judgement, I decided to take the plunge on the CM 11 20131212 nightly.
I took all reasonable precautions. I had the installation files to return to 10.2.0 and the matching gapps on my internal SD card. I also had the gapps for kitkat there ready to flash. I always have Titanium Backup Pro keeping a current backup of my apps and settings. My Clockwork Recovery Mod (CWM) version was up to date. Checklist complete.
Further, when I booted into CWM, I first erased both the cache and dalvik cache for a clean start. I then flashed the CM 11 nightly and gapps version 20131119, in that order, from my internal SD. That should have given me a clean CM 11 system whilst preserving my apps and app settings. After everything finished flashing, I restarted the Galaxy. That’s when the fun began.
At first, the boot process would lock up early. After pulling/replacing the battery twice and restarting, the boot process started looping into an endless auto-restart. When I’d had enough of watching that, I pulled/replaced the battery again and booted into CWM by holding the volume up, home, and power buttons down until the initial boot screen appeared, then releasing ONLY the power button until CWM appeared. I reflashed both CM 11 and the appropriate gapps, then restarted the phone.
This time, after a few boot lockup – but each one further into the process – the phone booted all the way to the opening lock screen before rebooting on its own again. It did this three times, each time a message appeared about Android updating the messaging, media, and another database respectively. After that, it was more boot looping once CM reached the lock screen.
OK, I had seen enough. I pulled/replaced the battery and booted to CWM again. This time, I cleared both caches and flashed CM 10.2.0 and gapps 20130813, then restarted. The phone booted normally, but I had no WiFi. Ugh. After fiddling with that for a while, I decided to bite the bullet, wipe the phone to factory clean and start over from scratch. By now my 1 hour project was at 3 hours and still running.
But I made a critical error in judgement because apparently my optimism remained unbridled. Instead of returning to a known working configuration like the normally-disciplined, experienced tester that I am, I decided to try the CM 11 nightly again from that factory clean state along with its associated gapps. Bad move. I again experienced boot lockups and then boot loops. So, I rebooted to CWM and flashed back to CM 10.2.0 and its appropriate gapps. This once again recovered the phone except for WiFi, which remained inoperable. I restored the system using Titanium Pro. By then I’d had enough and call it quits for the night. Net time invested: 5+ hours. Net result: back where I started except for the loss of wifi capability.
After trying FXR WiFi Fixer and Recovery on Friday to no good end, I reasoned that the only way back to full functionality was to again go back to a factory wipe and flash CM 10.2.0 with is associated gapps from a totally clean state. Before doing so, I updated Titanium Pro’s backup to the latest complete setup. That was mistake #2.
This procedure brought me to a pristine CM 10.2.0 state. Although Google offered to restore my apps and data over WiFi, I elected to restore everything from my Ti backup. Mistake #3. Some messed-up system settings that existed from the CM 11 nightly fiasco apparently survived in the Ti backup of system settings. This resulted in an endless boot loop when restarting. This time I knew exactly what I did wrong and I finally reined in my optimism, so I again factory wiped the phone in CWM, reflashed 10.1.0 and gapps just for grins, then allowed Google to restore my apps and settings. Lastly, I restored all the app settings data ONLY from Ti’s current backup. Success!
General comments and observations:
1. None of this was CyanogenMod’s fault. They post clear warnings in every possible location that nightlies are likely unstable and not suitable for normal use. While most are actually fine, there’s always the possibility of something important being broken in a nightly. That’s especially the case early in the early builds for a new major system version as was the case here.
2. Never let your lust for shiny new things override your experienced judgement. Violating this rule bit me 3 times: first, running a nightly based on a brand new operating system port; 2) not returning to a known state after the nightly hosed my wifi; and 3) restoring a system settings back up from a system that had issues, especially not knowing what settings might have survived from the earlier adventure.
3. If you don’t use Clockwork Mod Recovery on your rooted phone, you should. CWM saved my bacon time and again throughout this process. Of course, it plays an integral role in flashing custom ROMs to start with, but it has powerful powers to recover otherwise bricked phones. Don’t leave home while rooted without it.
4. Always start ROM flashing projects with a full battery. You never know how long these things will take.
I am still looking forward to kitkat in CM 11 when CM releases a milestone version or better. Until then, I’m very happy with the CM 10.2.0 20131206 nightly and Android 4.3.1. Lesson learned.