Get the latest version of Android on your Nexus on your own terms
Nexus, the line of Android devices developed in partnership between Google and various hardware manufacturers (to date, HTC, LG, Samsung and Huawei), is a program that allows developers to get their hands on a 100 percent stock Android experience, as Google intends. It can help to develop applications for the platform quicker and easier than if using a device with a manufacturer skin onboard, and that's a good thing.
But if there's a single reason to buy a Nexus device, it's this — the newest software first. Period.
When Google works on major updates to Android, it's also building them to work specifically on Nexus devices. This means when Google releases an update to the Android code itself, it will come quickly to the supported Nexus devices first, if not immediately.
And Nexus devices actually are among the few that have several ways of receiving updates. Some are easier, some are faster, but all are available to you. Here's how to manually update your Nexus.
1. But first, know this ...
Before we go into the steps of sideloading Android updates to Nexus devices, it is strongly recommended that you have previous knowledge of working with the Android SDK (software development kit) and Terminal (OS X or Linux) or Command Prompt (Windows), as it is possible to harm your device if something were to go wrong in the following process.
If you need to download the Android SDK you can grab it from the Android Development website and follow their instructions on how to install it correctly. For the following process all you will need is the adb and fastboot files which are located in the Platform Tools folder.
Additionally, all the following commands are written as they would be in Terminal on a Linux or OS X platform. If you are following this guide and using a Windows machine, you will not need to use the "./" seen in the guide.
Enable developer settings and USB debugging
- Go to your Nexus' Settings and scroll down to About Phone/Tablet
- Tap on the Build number seven times until the dialog box says you are now a developer
- Go back to the Settings menu and you should find a new option called Developer options. Click into the Developer options
- Make sure that the developer options are turned on and that USB debugging is checked on
- If you're upgrading a device running Lollipop or higher, make sure Enable OEM unlock is checked
- Plug your Nexus device into your computer and click "ok" on the dialog box asking you to Allow USB debugging while connected to the computer. You can also select to always allow access on that computer
If done correctly, this will be everything you will need to do on your phone or tablet for the moment.
2. Unlocking your bootloader
Now that you can connect to your Nexus device from your computer it's time to unlock your bootloader. To do this you must first boot into your bootloader. You can either manually turn off your phone or tablet and hold down the power button and the volume down button to enter your device's Bootloader Menu or you can enter the following commands into your terminal or command prompt.
Run the following command to make sure your device is properly connected to your computer. If it returns a string of characters it means that you are all set to start updating your device.
Now to enter into the Bootloader menu just run the following command.
./adb reboot bootloader
At the bottom of the screen there will be several things listed including the lock state of the device. This should say locked unless you have unlocked your bootloader in the past and never went back and locked it again.
To unlock your bootloader, which is required only when flashing a stock firmware image (not sideloading and update, which we'll get to soon), you must enter the following commands. Remember that when unlocking your Nexus' bootloader it will factory reset your device, so you will lose everything stored on it. If you have not yet backed up anything important on your device you can hit the power button while Start is highlighted in the Bootloader menu and this will boot you back into your device like normal. Now back to unlocking your bootloader.
On older devices (pre-Marshmallow), you used:
./fastboot oem unlock
On newer Nexus devices you'll use:
./fastboot flashing unlock
A dialog will appear on the device asking if you are sure about unlocking. Again this will factory reset your device, so if you want to back out of the process you just need to select no with the power button. If you are ready to unlock your bootloader you press the volume up button and then the power button to confirm that you wish to unlock your bootloader.
It is recommended to reboot the bootloader just to give itself a check to make sure everything is working correctly before moving onto the next step.
3. Flashing the Stock Nexus firmware image
Now that your bootloader is unlocked, it's time to flash the new firmware onto your Nexus device. To find the Nexus system images, head on over to the Nexus Factory Images page, find your Nexus device, and download the latest factory image available. It is easiest to then uncompress the file in the Platform Tools folder where the adb and fastboot files are so that you do have to type the path to the different files when flashing the firmware. (Or if you know that you can drag a file into a terminal window to copy the path, just do that.)
To begin, make sure you are still in the bootloader menu on your device and double check that your bootloader is in fact unlocked. If it is not unlocked the following commands will not do anything to your device.
Now it is time to flash the updated bootloader with the following command.
./fastboot flash bootloader [bootloader file].img
You will not see anything on the screen of your device but there should be a dialog in your terminal or command prompt. When it is done flashing the bootloader you should reboot back into the bootloader as to make sure everything is still working correctly.
Next you flash the updated radios. This step is only necessary if you are updating the firmware of your Nexus phone or tablet that has cellular radios built into it.
./fastboot flash radio [radio file].img
Finally, it's time to flash the actual system image to your phone or tablet.
Warning: The following line of code will wipe your device. If you do **not* want your device to be wiped, remove the "-w" from the command. The update should still take just fine, and it will not wipe your user data.
./fastboot -w update [image file].zip
When this is done, your Nexus will restart itself and boot up normally. As this process clears all data from your device, it will take slightly longer for your device to boot up for the first time. Once you have been greeted with the device setup walkthrough process, you know you have successfully flashed a new version of the firmware onto your Nexus.
If you do not want to enter the commands manually there are scripts included inside the compressed folder containing the system image that will do most but not all of the heavy lifting for you. The flash-all script files will automate the flashing of the bootloader, radios (if needed), and the system image. The problem with this process is that you must first make sure that your Nexus is in the bootloader menu and its bootloader must be unlocked before starting the script. Of course if these are not already done the script will fail to run and nothing will happen.
4. Flashing an OTA update image
If you don't want to unlock your bootloader, you can sideload an OTA update. That is, you're going to download to a computer the update file your phone normally would grab itself over the air (thus OTA), and then push it over via the command line.
It used to be that we'd have to hunt for the OTA file location when a phone would download it, and use that to pull the file from Google's servers. And we can still do that if we want. (Though it's not quite as easy as it used to be.) But Google now provides OTA images for download. (You can find them here.) The only real difference is that these aren't "delta" updates, containing just the changes from the previous update. So the files are a good bit larger.
Just as is the case with the factory image update, put the OTA file in the Platform Tools directory to simplify the process of sending the file to your phone.
First, make sure that your computer is communicating correctly with your Nexus phone or tablet. As long as your device's serial number comes back as a connected device you are ready to begin updating your device.
Next, put your device into the bootloader menu by either the following command or by holding down the power button and the volume down button while your Nexus is turned off.
./adb reboot bootloader
Now use the volume down button twice until you have scrolled to Recovery mode, and press the power button to select it. It will look like your Nexus is restarting itself but an image of an Android with a red exclamation mark over it will appear. Next hold down the power button and press the volume up button, and you will be in recovery mode.
Now that you are in the Android system recovery, use the volume down button to highlight apply update from ADB and press the power button to select it. The text on your Nexus' screen will now say that you can send the OTA to the device using adb.
./adb sideload [OTA file].zip
In your terminal or command prompt you will see dialog that shows you the progress of transferring the update to your phone or tablet and once it has been completely transferred you can read what is happening with the update live on screen. Again, once the process is done your Nexus device will restart itself and attempt to boot normally. You have successfully updated your Nexus!
Getting the newest software updates on your Nexus device is easy to do but understandably difficult the first time. Once you've gone through this process multiple times it will become second nature to you, so don't be discouraged. Luckily Nexus devices are extremely easy to get back into working order if something gets installed wrong or flashed incorrectly — so don't be alarmed if you've pressed the wrong button.
If you have any trouble along the way, be sure to hop into the forums and ask for help!