Elsewhere

Not a comprehensive post, just a note to myself on what I need to do every time the device is updated and loses root + recovery (though the latter can be avoided by disabling the option to update recovery during system upgrades in Developer Options).

This doesn’t always happen. In such cases (a) try a different port, (b) try a different cable, and (c) check that the ADB device appears in Device Manager. If it does not, reinstall the Google drivers using BRT.

Flash Custom Recovery (my choice is TWRP) from BRT. This is needed to root the device. Default Cyanogen Recovery can’t do this. This requires a couple of reboots.

Reboot into the Recovery and exit. I use TWRP, and when existing it checks whether the device is rooted and offers to root it. Go ahead and do that.

SuperSU (and SuperSU Pro) are what one uses to manage root. (Apparently CM 12 allows one to do this using the in-built Privacy Guard but I couldn’t find any options for that. Another option is Superuser, but that doesn’t work on Android 5.0 yet I think).

CM 12 also apparently has an option to enable/ disable root under Developer Options but I couldn’t find that on my device (before or after rooting).

That’s it! One of the reasons I went with OnePlus One and Cyanogen is the hope that the device will stay rooted after updates, but that isn’t the case. I guess this is so the OS and stay compliant with Google. So each time I do a major update I need to repeat these steps. This doesn’t happen often so by the time I get around to doing this I have usually forgotten what I did last time around. Hopefully I can come back and refer to this post the next time!

For the past few months it’s been stuck on 4.4.2. I tried OTA updates but each time it would download and try to install – and fail. On the recovery screen it would throw errors about signatures not matching. Initially I thought maybe my ISP or someone in the middle was trying to hijack the update, so I tried couple of times via VPN too. Not that that helped!

Finally I decided to try a manual update via sideloading. Followed the instructions at this link (note: at step 4, if you are using Clockwork Mod Recovery like I was, go to the option that says install ZIP and then you’ll find an option to install ZIP via sideload). Did that, and sideloading failed with an error (from Recovery) that /system/lib/hw/power.msm8960.so has unexpected contents. Great!

Went to that location using Solid Explorer on the tablet and found there’s no file with such a name. Instead there was a power.msm8960.so.bak so I renamed that to power.msm8960.so. Repeated above process; and got an even more weird error:

This time I couldn’t find any file in the location shown.

By now I was having a suspicion that something I changed in the base system was what’s causing there errors (I got a similar impression from various other posts too). Two things I did do to this tab were to 1) root it and 2) install the Franco Kernel. Either of these could be the issue but I decided to start with Franco. Thankfully I had backed up my previous kernel – note to self & readers: always backup the original kernel! – so I restored that, rebooted, and tried to sideload. This time I got the power.msm8960.so error again, so I rebooted again, renamed the file again, and tried. And – phew! – it worked this time.

So the problem was Franco kernel. Wish I was aware of this beforehand, I could have updated a long time ago! Anyhow, for next time I know I have to restore the old kernel and rename any such missing files and that will be good to go. I think I’ll skip moving to Franco for now though; I forget why I started using it in the first place, and I am feeling too lazy to do all these the next time I need an update. Plus Android L is around the corner, so apart from rooting I don’t want to make too many other changes.

Speaking of rooting, sideloading the update resulting in loosing root access. Not an issue – use the excellent Nexus Root Toolkit (NRT) to get access again. NRT is an excellent piece of software, a huge time saver (I must donate to the author sometime but I keep procrastinating). I keep changing laptops or re-installing the OS, so each time I use NRT I have to go through the hassle of installing the drivers and that usually requires a reboot and some extra steps. Did that this time too and now my Nexus 7 has Android 4.4.4 rooted.