The original Google Nexus 7 was some kind of a hit back in 2012-13. It was a nice ASUS-made affordable tablet with a solid construction which had a rather well performing Nvidia Tegra quad-core chipset. See GSMArena for the full specs.
Problems with Android 5.1 Lollipop
Unfortunately the Android 5.1 Lollipop update basically killed the Nexus 7. It was running nice and fluid on KitKat, but choked to death on Lollipop. Log wait times switching from app to another and occasionally the it may stall totally for tens of seconds. The root cause for this is not known for 100% certainty, but it would seem that the problems are related to slow mass memory I/O performance. The Tegra 3 in terms of raw processing power should be quite capable of running Lollipop, even though this release did make many lower end phones and tablets run slower - 6.0 Marshmallow is a whole lot better.
The solution: CyanogenMod
The fix is actually very simple and anyone can do it in 30 minutes.
- Flash the device with CyanogenMod 11.2 ROM
- CyanogenMod 11.2 is based on Android 4.4 KitKat open source code
- Installation instructions (Tilapia): Click here
- While installing be sure to include Google Apps, in order to get Play Store etc.
- The GApps are available at Open Gapps project: Download
- For the Nexus 7 (2012), choose the Pico version. You will have slightly lesser Google experience, but we do not want to bog the system down with additional background processes.
- Once booted up and running, personally I like to install the Nova Launcher. Nova is light weight, offers nice configuration options and most importantly it seems to be more stable than Cyanogen's default launcher.
Step by step walk through (Ubuntu 16.04)
Here is a quick recap of the flashing process using Ubuntu 16.04. The process is the same or similar using Windows, except for the installation of Android tools.
sudo apt-get install android-tools-adb android-tools-fastboot
Installs Android tools.
adb reboot bootloader
Boots your USB-connected Nexus 7 to fastboot mode. Remember to enable USB debugging first.
fastboot oem unlock
Unlocks the bootloader.
fastboot flash recovery twrp-3.0.2-0-tilapia.img
Flashes a custom recovery image to the device. I use Team Win Project and highly recommend it.
adb reboot bootloader
Reboot after flashing.
adb push cm-11-20140916-SNAPSHOT-M10-tilapia.zip /sdcard/
adb push open_gapps-arm-4.4-pico-20160601.zip /sdcard/
Upload the CyanogenMod and matching OpenGapps images to the device. Now you can boot to TWRP recovery mode, wipe the partitions clean and flash the CyanogenMod and Open GApps images to the device, using the device UI.
After these steps your Nexus 7 is again a completely usable and useful compact tablet. It can still run a majority of streaming television services smoothly (Netflix etc.), browse the web, run social media or messaging apps and even play some visually impressive games like Hungry Shark. Note that the CyanogenMod will propose an update to CM12.1, which is Lollipop based and will ruin the performance again - absolutely do not upgrade and you can disable firmware update notifications from device settings.
Now enjoy your Nexus 7 until the battery fails and it's time to move on to something more recent.