I invested a lot of time and tried to make it as simple as possible, so please read the informations provided completely before starting to mess with your device.
The infos here can be used on models too, especially from the Nexus series.
However you are required to use the corresponding Recoveries and Rom Images for your device.
Same, of course, for all settings in regards to your device in the programs used here.
Changing your firmware to anything but the original or messing with the bootloader can void your warranty.
Flashing the wrong firmware can "brick" you Nexus, so in your own interest double check if a ROM is really for your specific device.
There are ways to fix a brick to a certain extend but producing one should be avoided.
I will start with getting back to a stock system, which is also the best option for warranty purposes.
The Nexus 7, Gen2, 2013 model, FLO....
If you just started exploring the options of custom ROM's, the actual firmware on your Nexus, you might be a concerned about the things happening to your precious device.
But in this Instructable I will try to explain the basics in the easiest way I can so you know what happens and even how to restore to a fully genuine system if you need or want to.
I will be using some terms that you might not be familiar with, but it will become clear when you read the rest.
A few terms you often find when doing "firmware hacks" in relation to your Nexus 7:
Firmware - The operating system (Android in most cases) for your device.
Image or ROM - Basically two names for one thing, a new firmware for your device.
Bootloader - It checks and addresses the hardware and loads your firmware, it also resonsible for most security features.
Gen2, 2013 model, FLO, Razor - They all name the same thing: Your Nexus 7.
It is the second generation of the tablet, was produced first in 2013 and the internal name used for development of software is "FLO", Razor is the internal development name for the hardware.
As I only have this model I will use it for this Instructable.
Root or rooting - means you modifiy the Rom so can access all areas of the operating and filesystem.
SU or Super User - A modification you install to gain root privileges for programs, usually root and SU are always used together.
Recovery - a special partition on your device that we use to install our firmwares, more later.
Fastboot and ADB - used to access your device from the PC, laptop.
SDK or ADB tools - The Andriod development software, we will only use a little part of it to be able to use ADB and Fastboot.
Flashing - When we install a new Rom it is called "flashing" as we write into a protected memory area of the device. Developer options - We need them and they allow further modification and settings on the device, I will explain what we need when it comes to it.
Winrar, 7-Zip and so on - I will use Winrar for all unpacking of firmware archives, but any other to pack and unpack files that can hanle TGZ files will do.
A lot of the tools used in this Instructable can be useluf outside of it, like the free Partition manager or the Android Toolbox.
I give just an overview and you can use whatever tools you prefer but for obvious reason I will no add more steps to cover all possible options.
The way I show here worked many times with success on my Nexus and as I know it works you should start doing it this way before starting to experiment.
Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.
Step 1: What You Should Be Familiar With Before Trying Anything (for the Noob)
I will use language and terms in this Instructable that refer to basic Windows operations, like file copying and deleting but also using DOS commands.
All will be quite simple but if you struggle to use the Windows Explorer to find your pictures on a SD card in a card reader you might have a hard time following.
Similar for Android, you should know how to access the settings and modify them, use a filemanager or download and install from the Playstore.
But usually all this no problem because if you could not do those things you would not be interested in modifying your tablet ;)
Step 2: Getting the Required Drivers and SDK Installed
You can skip this part if you already have it on your computer and successfully used ADB commands.
In case you are a bit worried about downloading all the drivers and tools, check step 5 for the Toolkit.
Android SDK: SDK Download Download and install first.
In the support section of Google Support you can also download the SDK Tools for other operating systems than Windows, but I will only cover Windows here.
I assume you already had your tablet connected to the computer, so I assume you have the drivers for normal file transfers, if not now would be a good time ;)
Go here: Nexus Driver and download the Google USB driver for the Nexus 7 (2013) , it is required for the SDK and ADB commands to work.
If you don't know how to install the driver you can check the instructions here: Instructions for the Driver
Install the driver.
Now you should be ready to use the programs we need and have all required drivers installed so we can proceed.
Step 3: Check If All Is Working As Planned
Activate the Developer options on your Nexus, if not already done here is how:
Go into Settings, scroll down to "About Tablet" and klick on it.
Klick seven times onto the "Build number" - you will see little pop ups telling you that you will be a developer soon ;)
Once done go back and klick on the "Developer Options" in the device settings.
A bit down the list you see "USB debugging" set the tick box and exit the setting menu.
Now connect your Nexus with the PC.
Open a command prompt on you computer:
Press and hold the "Windows key" while pressing "r". In the Window type "CMD" and press enter, a DOS box will open. Inside the DOS box type:
"adb devices" and press "Enter". If all is good it should look like this:
If your device does not show it means you have a problem with the driver, please check the previous step and make sure you installed all correctly and double check you activated the Developer options on the tablet.
If you get an error for the ADB command it means the SDK is not installed correctly (or missing).
If in doubt check the part for the Android Toolkit and use the mentioned Toolkit too install the drivers.
Step 4: A Word About Making a Backup
You might not realise it yet, but installing a different Rom usually means loosing all data on the tablet.
The emulated SD memory where you have your pictures and so on can survice certain updates but if you have programs or other important things on your Nexus it is time to make a backup.
One way of doing this is through the Google Cloud storage, which is good for some games and your save profiles and progress.
There are many options available for Rooted devices, Titanium Backup, to name just one but I have to assume the worst case and that is a stock standard device with no modifications yet.
For this reason I recommend to use the Unified Android Toolkit from Skipsoft: Android Toolkit You don't need the pro version.
Please note that at time of this Instructable no support for Android 5.0.2 was available, which means you might have to seek alternatives - this tool is being updated so by the time you read this the support for never Roms might be available.
Alternatives for a rooted device could be Titanium Backup or any other Android backup manager.
Installing a Recovery like TWRP also gives you backup options.
During the installation you are asked if you also want to install the required drivers, if you are unsure just tick the corresponding box, if the ADB test earlier was working you can untick the driver box.
Making a backup with the Toolkit:
Type "07" for the Nexus 7 2013 and hit "Enter" It will download the required files for the toolkit, please be patient.
You might see something about available updates for your device during this download, ignore it.
Enter the right number for the Android version you are using, please note that at time of this Instructable no support for Android 5.0.2 was available, which means you might have to seek alternatives. Alternatives for a rooted device could be Titanium Backup or any other Android backup manager or Recovery.
A lot of useful stuff will be downloaded like different Recoveries, Superuser and so on, so it might take some time.
Here again you would have a chance to install missing drivers but we will start with option "2". So select it and hit "Enter".
Here we select "1" for a full ADB backup.
Select "2" and move on.
Once you have a custom Recovery installed you can also perform a Nandroid backup, which is essentially a clone of your system and the best back possible.
As you can see I already selected not to include system apps, Backup APK's AND respective apps data as well as to backup the internal Storage data - this is the emulated SD where you also find your pictures and music.
So select "1" as well.
Now you will be prompted to unlock the screen on your device and to confirm the backup operation on your tablet. On the Nexus you can select a password for added protection of your data (I did not), then click on "Back up my data" to start the backup operation.
You will see the progress on the Nexus and when finnished it returns back to the home screen.
If you want to restore your backup select "2" in the main menu of the toolbox.
Type "11" to get to the selection for the backup file.
Type in the filename for the backup you want to use and press "Enter" - pay attention not to use backups from different Rom versions.
Confirm the restore operation on your device and wait for it to finnish, if you used a password you will have to type it in.
If you don't like the long and cryptic filenames you can change them inside the backup folder of the tool:
Keep to a name that makes sense though ;)
Step 5: Getting Serious Now - Unlocking and Rooting
Please make a backup first if it is the first time your Nexus is being rooted as installing it can be like a factory reset!
Until now we did not make any changes or did anything to void a warranty.
But to fully utilise you tablet and custom Roms, not to mention certain useful programs, rooting and Super User rights are always good to have.
There is no real risk involved on our device as all changes can be reverted by installing a Factory (genuine) Rom and to lock the bootloader again - unlike some Samsung phones :(
Although the Android Toolkit is a powerful I recommend to use "CF Auto Root" by Chainfire and will use this for this part.
Download CF Auto Root here and unpack the archive to a folder of your choice on your computer.
Scroll down to the end and select the download for the "asus Nexus 7 razor", unpack the archive to a folder on your computer.
Connect your Nexus to the PC in "Bootloader mode".
To do this either use the command prompt and type "adb reboot-bootloader" or turn the device on while holding "Volume down".
Go into the CF Auto Root folder and double klick on the "root-windows.bat" file.
The process will start as soon as the tool finds the Nexus and once finnished the device will reboot.
It really is that easy! :)
If you want to go back to genuine, make a backup (if you not already have) and flash a genuine factory image on the Nexus, once genuine restore the backup.
I will explain bit in the flashing section.
Step 6: Installing a Genuine or Custom Rom on Your Nexus
If you want to try new Roms without changing or loosing you current installation with all the progrmas check the step for Multimanager first!
As an alternative you can check the Playstore for "Flashify" - a simple program to install Roms directly from within Android, as I will use TWRP for the multiboot installation as well I use it here so you get a good feeling about it.
a)Installing a factory, genuine image
I will start with the most obvious, installing a factory image to get the Nexus to a state like it just came out of the shop.
Be aware that doing this will delete everything from your device, so make a backup first if you need the data.
For obvious reasons you will need a factory image file for this, so please download one of your choice from here:
Google Factory Images - Make sure to select the files for your model!
Save the file in a folder on your desktop, I prefer something like "Nexus 7" and within this folder I have more folders for tools, apps and Roms.
I use the "Razor" model, but this step can be used for other Nexus models as well if you use the correct files for your device.
As you can see on the website there are versions from 4.3 to 5.02 (at the time of writing this) available.
Go for whatever you prefer, for our example I will use the 4.4.4 version.
Open the downloaded "TGZ" Rom file with Winrar or 7-Zip and extract the folder that you find inside.
Unpack to a location where you find it, like your Rom folder.
Now open a command prompt in the folder containing the unpacked files.
You know you are in the right place if you see a "flash-all.bat" file.
To do so you hold the "shift" key on your keyboard and do a right click on the folder name, from the list select "Open command prompt here".
Connect your Nexus to the computer.
Type in "adb devices" to see if you are ready to flash, you Nexus should be listed.
If not already in bootloader mode on the Nexus type in "adb reboot-bootloader" and hit Enter.
If your bootloader is locked (or you don't know) type in "fastboot oem unlock" and hit enter.
With an unlocked bootloader you will be prompted to confirm the unlock, use the volume buttons to select and a short press on the power button to confirm.
Now type in "fastboot flash ####" ,where #### stands for the complete filename of the Rom.
As there really is not much to see during this bit I did not take screen shot from the DOS window.
Once finnished your device will reboot and prompt you for the required setup steps.
At this stage you are ready to go but if you want to root your stock Rom continue reading.
b) Rooting and Superuser
As I just explained it all, please refer to the previous Step for this bit.
c) Installing a custom Recovery
There are many out there, the two favorite ones are TWRP Recovery and Philz Touch Recovery, I will use the TWRP Recovery as it will be also used in the section about installing multiple Roms.
As we already rooted the device we use the simple way of installing the TWRP manager from the Playstore directly on the Nexus:
TWRP Manager Playstore
If you don't like the idea of rooting you can install the Image file after downloading it here:
TWRP Recovery Image using the same method as we used to install a genuine Rom, just select the Image file for the recovery instead.
I recommend the Playstore way as it is a bit easier for getting updates.
You might be prompted for the SD card patch and to install Busy box - if so do it.
You need to open Busy box after downloading it for the installation, just wait till all infos are collected and press "Install".
For the SD patch ,required for some 4.X.X Roms, simply click on apply in the TWRP Manager settings - this should show anyway.
Once all this is done you can click on "Install TWRP" to install the custom recovery.
Click on "Device Name" and select "Nexus 7 2013 WiFi Only".
Scroll down in the list to select the latest version and click on it.
Now click on "Install Recovery" and the download will start.
After the download is finnished click on "Yes" to confirm the location of the Recovery partition.
Now you can either select "OK" to reboot into Recovery to check if it worked or "NO" to go back using your tablet.
d) Finding and installing a custom Rom
The only real good place to get all info, tools and so on would be XDA Developers:
XDA Nexus 7 2013 Android Development
Here you can find all the custom Roms everyone talks about, and of course the CyanogenMods as well.
Please consider a donation.
Check the available Roms and download one you like.
Please check the thread for additional info and feedback before complaining the new Rom has problems.
There are many options available on how to get the Rom onto your device to be installed.
As I often do a full wipe before installing a new Rom I prefer to use a USB stick or SD card in a reader.
But you can simply copy the ZIP file containing the Rom to your Nexus while connected to the PC.
Simply create a folder on the device and copy the ZIP in it.
This way you don't have to worry about problems mounting the SD or Stick in Recovery and the Zip can be deleted once the Rom is installed
Now it is time to "reboot into recovery".
Either use "adb reboot recovery" in the DOS command prompt or turn the device on while holding the "Volume up" key.
If you are still in Android you can also use the TWRP Manager to do this. Now you see the Recovery menu.
Click on "Install" and browse to the folder with your Rom file, select the Rom file an on the next screen swipe to confirm to flash the image on your Nexus.
A status screen will inform you about the progress, once all finnished successfully you can click on "Reboot System" to enjoy your new Rom.
You might have to Root and install Super User again using CF-Auto-Root depending on the Rom you selected.
There are several Root Check Apps available in the Playstore if you need confirmation.
Speaking of Playstore, not every Rom contains the so called "GAPPS", a collection of the Google apps including the Playstore.
Usually a suitable version for the Rom is supplied via a download link for your Rom but customised versions that only contain the Playstore and required files are available too.
If you need GAPPS install the ZIP file the same way as you did with the Rom.
Same story for the Super User Zip file.
You can get SuperSU for Rooted devices in the Playstore if you need it:
The current ZIP file to be flashed in Recover is 2.46 (at time of writing).
Step 7: Installing MULTIPLE Roms or Just Checking a New Rom Without Loosing the Installed One
If you really managed to read all the previous stuff than you should be ready for an alternative way to test a new Rom before using it fulltime.
Or maybe you want to keep the original Rom on the device and still use a custom Rom when you feel like it.
In any case it might be good to have a backup system in case the kids messed the tablet up again ;)
The program we use for this is called "Multi Rom Manager" and can be found in the Playstore:
MRM - Multi Rom Manager - Playstore
It requires ROOT to work!
How does it work?
Well, put simple the way your Nexus boots is changed so you can select a different Rom the tablet will use.
You can have an independent Android system installed that only shares the internal SD card with the main Rom.
Of course you can also install Firefox OS or Ubuntu if you like to try something different.
Although I have not seen any recent builds of FireOS for Android, the lates on XDA is from 2013.
But if you know your Linux you can make your own build from the available sources.
Once you installed Multi Rom Manager, MRM, you can install the recovery from within MRM.
It is a modified TWRP Recovery with the added features for multiple Rom installations.
Now, before we go into installing a second Rom:
You can use the internal SD memory for this and it might be enough for a quick look but in most cases we are already low on space and would prefer not to waste more on the device.
As you can select USB OTG for the install location of a new Rom I prefer using a FAST! SD card in a micro reader.
But MRM can be grumpy when it comes to using a NTFS or FAT32 formatted media if not formatted correctly.
I often had problems installing Roms as the media in question was not recognised.
Also you would be required to set or change the partition sizes for the Andriod Rom - something that can be avoided.
For this reason we will create two seperate filesystems on our SD card or USB stick.
The tool for this job is the free Partition Manager by Minitool: Mintool Partition Manager
If you don't want to mess around with the SD / Stick use the formatter from sdcard.org for SD's and the HP USB format tool from Hewlett Packard for USB Sticks to format them.
Do not change the partition sizes for your Multiroms unless you know what you are doing.
Click on the launch botton to start. Select and click on the SD (or USB stick, I will only use SD from now on to keep it short) to highlight it:
Now you can use the menu items on the left to delete or resize the partition, I select resize to keep the data I already had on the SD.
With a 16GB SD I thought 8GB for data to be used on the computer and Android should be enough, the rest will be used to install Roms.
So I entered 8192 (mb) to get my 8GB in NTFS and clicked "OK" - please adjust these values if you have a different size SD.
Now highlight the unused space on the SD and click on "Create" in the top of the window:
After that you see a warning that this partition can not be used in Windows - we agree to that.
In the next window you can select more options:
We select "ext4" as the file system and "Primary" for create as, the rest can be left untouched.
Click on OK to get back to the main window:
Nothing was touched until now on your SD, if you are happy with your changes click on "Apply" in the top left and confirm the warning for format the SD with the new file systems.
You will see a progress window, be patient depending on the size and speed class of your SD card.
Once finnished you can use the stick for installing multiple Roms or to just test them.
If you no longer need the SD for custom Roms you can use the SD formatter from sdcard.org or the HP USB Storage tool in case you used a USB stick.
Do not format using Windows - check my Instructable about fake SD cards and USB sticks for details if you like: Identifying fake SD cards and USB sticks
Ok, job is done now we get started ;)
Copy your downloaded Rom onto the SD, insert into the Nexus and boot into Recovery.
I prefer one folder per Rom containing all that might be needed, like Super User, Gapps and so on.
In TWRP you click on "Advanced" followed by "MultiRom".
If you already know you will need ADB on your new Rom, go into settings and activate the option.
Click on "Add ROM" to install the new Rom.
As long as you don't install Ubuntu or Firefox OS leave the Rom type to "Android".
Under "install to" we select the ext4 partition.
(If you get error messages about failed mounts remove the SD and click "refresh", insert SD and click refresh again, now it should work fine on the selected ext4.)
As Rom source in the next screen we select "ZIP file" and browse to our Rom file, klick on it, then swipe to flash the Rom onto your USB stick.
If you have a previous TWRP backup you can use this too.
This can take considerable time, in my cases using only a class 6 SD up to 30 minutes.
You can install more Zip files, like Super User, Gapps and so on into the new Rom too once it is installed.
To do so:
Got into the "Multi Rom" section of the Recovery.
Klick on "List Roms".
Your Roms will show up directly if installed on the internal memory, for the USB we have to click on "Change" and select the ext4 partition.
Now click on the Rom that you want to work on.
On the next screen you will see all the usual options from the normal Recovery, you can wipe data, dalvik and cache, but also install a Zip file.
If you want to remove a Rom you can do that here too.
We click on "Flash Zip" to add our addons to the Rom.
Simply click on the Zip you need and swipe to flash it.
To start the additional Rom start the Nexus and select the external memory in the new boot menu provided by MRM.
Double click on the Rom you want to use and enjoy :)
If you ever want to get completely rid of the custom Roms you can either delete them or use the uninstall for Multi Rom Manager and flash this Zip in Recovery:
Look a bit further down to find the "Click here" for a manual dowload without using Peers.
If you don't like the menu extras in the Recovery after removing the Roms you can flash any other Recovery.
Step 8: Credits
All credits go to the creators of the great programs used in this Instructable, especially to all the great developers at the XDA forum.
Without them this Instructable would not have been possible.
You can donate to the developer of your Rom if you like it and same for XDA if you find their informations helpful - and they are always helpful.