Google’s Nexus devices are supposed to receive timely updates, but the staggered rollout means it can take weeks for devices to receive over-the-air (OTA) updates. Luckily, there’s a geekier way to install the latest version of Android.
Google provides official system images for their Nexus devices, which anyone can download and flash on their own. This is an easy way to skip the wait when a new version of Android is released for Nexus devices.
Note that this process is more complicated than simply waiting for an over-the-air update. If you’re a normal person and not a geek with an itchy trigger finger, you’ll probably just want to wait.
Step One: Unlock Your Device’s Bootloader
To flash a system image, your device will need to be unlocked. Nexus devices allow you to unlock their bootloader with a single command. If you’ve already unlocked your device to root it or install a custom ROM, you can skip this part. If you haven’t yet, you should be warned the unlocking your device will wipe its data, as if you had performed a factory reset.
You can unlock your boot loader in several different ways. The official method is through a simple teriminal command, but for an even easier method, you can use the Nexus Root Toolkit, which will walk you through the process.
Step Two: Install ADB and Fastboot
You’ll need two other things for this process: the Android Debug Bridge, which is a command line tool for your computer that lets you interface with your phone, and your phone’s USB drivers. Even if you’ve installed these before, you should get the latest versions now.
We’ve detailed how to install both before, but here’s the brief version:
- Head to the Android SDK download page and scroll down to “SDK Tools Only”. Download the ZIP file for your platform and unzip it wherever you want to store the ADB files.
- Start the SDK Manager and deselect everything except “Android SDK Platform-tools”. If you are using a Nexus phone, you can also select “Google USB Driver” to download Google’s drivers.
- After it’s finished installing, you can close the SDK manager.
- Install the USB drivers for your phone. You can find these on your phone manufacturer’s website (e.g. Motorola or HTC). If you have a Nexus, you can install the Google drivers you downloaded in step 2 using these instructions.
- Reboot your computer if prompted.
Step Three: Download the System Image
Visit Google’s Factory Images for Nexus Devices page and download the appropriate image for your device. Note that you’ll need the image for your specific hardware. For example, there are separate images for the Nexus 7 (2013) with Wi-Fi only and for the Nexus 7 (2013) with cellular data. Make sure you download the right one.
Download the file to your computer and use a file-extraction program, like the free 7-Zip, to extract its contents to your ADB folder.
Step Four: Decide Whether to Wipe Your Data
Flashing the system image in the normal way will wipe your device, essentially performing a factory reset. You can try to update without wiping your device, although you may encounter problems. However, this process should work fine when going from one Android version to the next version.
To prevent your device from being wiped, open the flash-all.bat file in a text editor like Notepad++. Edit the line containing “fastboot -w update” and remove the -w switch before saving the file.
Step Five: Flash the System Image
Copy the system image files into the same folder as ADB. Then hold the Shift key, right-click in that folder, and select “Open command window here” to open a Command Prompt window in that folder.
Enable USB debugging on your Nexus device by accessing the hidden Developer Options menu and turning on the USB debugging option.
Connect your Nexus device to your computer with its included USB cable, and then run the following command to reboot the device into the boot loader:
adb reboot bootloader
If there’s a problem, you may need to fix your device’s drivers. Read this guide for more information on setting up ADB and ensuring it’s working properly. Bear in mind that you’ll have to accept the authentication prompt on the device before the adb command can do anything.
Once the device displays the boot loader on its screen–you’ll see an Android with its front panel open–double-click the flash-all.bat file. The script should flash your device with the new system image.
When the process is complete, your device will reboot automatically. If you didn’t remove the -w option, you’ll have to go through the first-time setup process again.
What to Do If the Script Doesn’t Work
Sometimes, however, flash-all.bat will generate an error about missing resources or lack of space. In that situation, it’s generally better to just manually flash everything piece by piece.
The first thing you’ll need to do before inputting the manual commands is unzip the image file, which typically uses the “image-device-build.zip” naming format. It’s easier to unzip the contents of the file directly into the folder you’re already working in so all the required files are in the same location. Once unzipped, there should be five or six additional files in your working folder (depending on the device): android-info.txt, boot.img, cache.img, recovery.img, system.img, radio.img (for devices with mobile connections only), and vendor.img (Nexus 9 only).
Once everything is unpacked, reboot back into the bootloader–using the
adb reboot bootloader command from earlier–and run the following commands, pressing Enter after each one, to manually flash each item to your device.
fastboot erase boot
fastboot erase cache
fastboot erase recovery
fastboot erase system
fastboot flash bootloader "name-of-bootloader.img"
fastboot flash radio "name-of-radio.img" (if present)
fastboot flash system system.img
fastboot flash boot boot.img
fastboot flash recovery recovery.img
fastboot flash cache cache.img
fastboot flash vendor vendor.img (Nexus 9 only)
If you’re doing a clean install of Android and want to wipe everything, use the following commands next:
fastboot erase userdata
fastboot flash userdata userdata.img
Keep in mind that some of these commands can take time some to flash—namely system.img and userdata.img—so don’t worry if the command prompt seems to be unresponsive. Once it’s ready for the next command, the cursor will re-appear.
This process is also useful if you’ve flashed a custom ROM and need to get back to the standard Android system image that comes with your device. This option is largely intended for developers and Android geeks, so it’s more complicated than simply waiting for a normal OTA (over-the-air) update.