Despite previous speed bumps, I successfully updated my Nexus 4 to Lollipop Paranoid Android! There were many hiccups along the way, most notably an “Unfortunately, <random Google programs> have stopped working” error, and my accidentally deleting everything from my phone in a fit of frustrated curiosity (a dangerous blend) — including all backups, cache, Dalvik cache, and system files — including even the OS! Yowch.
This all started because I wiped all back-ups, intending (but neglecting) to make a fresh one in the process. This meant I had to do a complete reformat, manually resetting everything to factory settings via flashing a factory image on my device… all this before I could even think of installing PA. As I tried this a few times, my phone would continuously get stuck in a bootloop cycle — entering the animation screen with all the floating colourful dots and staying there for hours. So I killed the process (held the power button until the device powered off — about 5s), entered recovery mode (holding power+volume down buttons until the recovery screen showed up), and then started from scratch… and here’s how I did it.
Manually flashing stock Nexus factory image
Note: first, I tried the instructions laid out here, but they didn’t work very well. Still, a very comprehensive resource maybe useful for someone else.
- Install Minimal ADB and Fastboot to your computer.
- Download the appropriate factory image (Nexus 4 v5.1.1). Extract files as needed to your Minimal ADB and Fastboot folder.
- Follow steps 4-onward here. Note: Enter commands correctly, even if this means typing the same word twice.
- Let the phone reboot (may happen automatically, despite the guide saying you need to do so manually). This took about 10m of the flying circles… I just waited.
- Trying to enter recovery mode from here just leads to a screen with the Android robot on its back with a yield sign above… this is okay, this just means the phone is in true factory stock format. Success!
Unlocking, rooting, and flashing a custom recovery on the phone
- Power the phone on. Enable Developer options menu and USB debugging mode. Connect it to your comp via USB. If something gets stuck along the way, a common fix is dis- and reconnecting the phone.
- Download the latest TWRP custom recovery file appropriate for your phone (twrp-18.104.22.168-mako.img for me). Put this file inside your Minimal ADB and Fastboot folder. You can also use CWM but, having used both, I prefer the UI of TWRP.
- Enter recovery on the phone. This wasn’t working for me until I disconnected the USB and held volume up+volume down+power buttons at once. Luckily, the phone showed it was already unlocked.
- Reconnect USB. Return to the Minimal ADB folder, select MAF.exe (or just return to the command window you were using before if it’s still open), and type in fastboot flash recovery twrp-22.214.171.124-mako.img, replacing the img file’s name to reflect the one you’re using.
- Enter Recovery Mode on your phone (don’t simply reboot). Here I was met with a TWRP official screen asking if I wanted to allow it to make modifications to my phone. I did.
- Make a backup!!!
- Reboot your device. At this point, TWRP said my device wasn’t rooted but that downloading SuperSU would take care of this. I allowed this.
Flashing a custom ROM
- I downloaded PA v5.1 and pico GApps to have as minimal a Google footprint as possible, transferring both files via USB to my phone’s main directory.
- Enter into Recovery mode. Perform a factory reset under “Wipe”.
- Hit “Install”, flashing first the ROM and then the GApps files. Reboot system. At this point I was asked to install SuperSU again; I did. Once your phone reboots, you’ll have to finish the SuperSU installation process. And there you have it, you’re basically done!
- I missed the gestures-to-type function since the Google Keyboard wasn’t installed (pico really is minimal), so I installed and activated that separately, directly on my device once it was booted. There are several other add-on modules available as well.
- Lastly, I copied the whole TWRP recovery folder to my computer, just in case.
The main thing I learned during this process: always confirm you have backups before making any changes!
But, overall, I’m happy things turned out this way because I learned a lot, and I had wanted to give my phone a proper app cleaning for some time now anyway. In the end, I was able to tame the rage bear from the previous post. All’s well that ends well : ).