What’s that saying, “with great power comes great responsibility”…?
If, like me, you’ve rooted your OnePlus One, you may experience issues with the latest over-the-air software update from Cyanogen. To be honest the last two updates, for whatever reason, haven’t gone well for me. So as a public service I’m posting the steps I took to return my OPO to a state where it would accept an OTA.
If, like me, you tried flashing the update manually and that didn’t work either, then I’m afraid I’ve some bad news: you’re likely going to have to (1) factory reset your phone, and if that doesn’t work (2) re-flash the factory image from Cyanogen. The good news? By the end of this lengthy process you’ll have backed up pretty much everything on your device, which you should do from time to time anyway.
This guide will assume that you’ve figured out how to get your computer and OPO to talk to each other via adb and fastboot. The process for doing so is different for Windows, Mac and Linux computers but I believe the command prompts that you’ll see below are the same. I use Linux because Linux is awesome. 😎
Ready? Let’s do this!
1. Backup your apps and their settings with TitaniumBackup.
2. Download the latest TWRP Recovery to your computer.
3. Boot your OPO into TWRP from your computer (I still think this is the coolest thing ever).
Open a terminal window where your TWRP image is and type the following:
I do this to verify a connection.
adb reboot bootloader
fastboot boot "recovery.img"
Replace “recovery.img” with the exact file name of your TWRP image.
4. Back up disk image (ie. all partitions on your phone) using TWRP.
5. Reboot your phone; transfer Titanium and TWRP backups to your computer. While you’re at it transfer your photos, videos, text messages and anything else you can think of, because in the next step your OPO is going to be wiped clean.
6. Factory reset device. Note that your bootloader will remain unlocked.
If you’re using Cyanogen’s built-in recovery then your internal storage partition (photos, etc.) will be wiped along with everything else. If you’re using TWRP as your recovery your data should be safe. I keep the Cyanogen recovery on my OPO just for the OTAs, but I’ve read reports of users successfully upgrading with TWRP as well.
Anyway, at this point your One Plus One should be ready to accept the Cyanogen update. Mine wasn’t. The update on my OPO wouldn’t complete because I had deleted Messaging (a system app) from my phone after switching to Google Hangouts for SMS. That was stupid.
So if, for whatever reason, your OPO still won’t accept an OTA update, you can rectify that with these additional steps…
7. Download to your computer the latest factory image from Cyanogen, which you’ll find at the bottom of this page.
8. Extract the zip file and open up a terminal window in the folder you’ve just extracted.
9. Put your OPO in fastboot mode and connect it to your computer.
10. Re-flash the entire factory image, as per this XDA guide. Flash each component manually if necessary. For the 64 GB model:
fastboot flash modem NON-HLOS.bin
fastboot flash sbl1 sbl1.mbn
fastboot flash dbi sdi.mbn
fastboot flash aboot emmc_appsboot.mbn
fastboot flash rpm rpm.mbn
fastboot flash tz tz.mbn
fastboot flash LOGO logo.bin
fastboot flash oppostanvbk static_nvbk.bin
fastboot flash system system.img
fastboot flash userdata userdata_64G.img
fastboot flash boot boot.img
fastboot flash recovery recovery.img
fastboot flash cache cache.img
Having fun yet?
10. Reboot and initialize phone.
11. Take the damn update from Cyanogen.
With a successfully updated system you can now re-root your OPO, transfer back the apps and settings you backed up to your computer and then use TitaniumBackup to restore them to your device.
And don’t be tempted to leave your OPO unrooted. Sure, OTA updates will probably proceed as planned, but you won’t be able to use TitaniumBackup or banish all ads from your phone. I do wish Cyanogen OS released proper flashable zips like CyanogenMod and other custom ROMs. But root and CM11S is still the best option for me and my OnePlus. At least for now.