Google rolls out Android updates slowly, even to their own Nexus devices. It may take weeks before an over-the-air update becomes available via the System updates screen, but you can skip the wait.
When Android L launched, it took over three weeks before we saw the update on several Nexus 4 phones. One 2012 Nexus 7 still can’t see the update two months later. That’s just a ridiculous amount of time to wait.
What Won’t Work
First, let’s cover what won’t work. Google chooses — on their servers — which specific devices will be allowed to receive the update. This means that visiting the System updates screen and tapping “Check for Update” won’t actually accelerate the process. When an update is available, your device will let you know. (Tapping this button can only help if Google has decided to give your device an update, and your device hasn’t checked back in yet. It won’t give you a new chance at an update every time you tap it.)
In the past, we used a trick that allowed us to reset this process, skipping to the front of the line and getting the update immediately by clearing the Google Play Services app’s data. This no longer works at all, and it can cause other problems on your device. Don’t follow this tip if you see it online!
Option 1: Download and Flash an Official Factory Image
Google provides official factory images for their Nexus devices. We’ve already covered the process for downloading a factory image from Google and flashing it. It involves unlocking your device’s bootloader, downloading the latest factory image for your device from Google’s website, getting the adb command, putting your device into developer mode, ensuring the appropriate drivers are configured, and running a script that flashes the new version of Android over the old version. This process can be performed on Windows, Mac OS X, or Linux.
By default, this process erases your entire device and restores it to factory settings. You have to modify the flash script to perform an update without wiping your personal data from your device.
Overall, this is the most complicated method. However, it’s the only officially supported way to upgrade to a new version of Android as soon as it’s available. Google posts the factory images to their website many weeks before you may receive them as an available over-the-air update. We’ve used this method in the past, most recently to upgrade a 2013 Nexus 7 to Android L after weeks of waiting for the update. It worked, although the process of fighting with adb and drivers — especially on Windows — can be frustrating. We’ve had less issues doing this on a Unix-like platform like Linux or Mac OS X.
Option 2: Load the OTA Update File Manually
When an Android update is available, Google eventually lets your device know and it downloads an over-the-air (OTA) update file. Your device then reboots and installs the OTA update file. The OTA update is smaller and more compact than the larger factory image above. OTA updates are meant for upgrading from one version to another, while the factory image contains a complete image of the operating system for your device and can be used to restore it if you ever wipe it or install a custom ROM.
There’s actually a way to skip the wait for the OTA update file, too. If you get your hands on the appropriate OTA update file, you can reboot into the recovery environment and tell it to install the OTA update manually. This will perform the same upgrade you’d get if you waited for the official update to become available, and it won’t wipe your data.
First, you’ll need to get your hands on the OTA update files. Unlike the full factory images, Google doesn’t post these officially. You’ll need a list put together by a third party. For example, Android Police has a complete list of Android 4.4.4 -> 5.0 and 5.0 -> 5.0.1 OTA update files with links to their locations on Google’s official servers. If you’re looking for a newer version of Android, search around to find an up-to-date list. You’ll also need the adb command, which you can acquire from Google’s Android SDK.
Reboot your device and hold the Volume Down button while it’s booting up. You’ll see the “fastboot” menu and the word Start on the screen. Press Volume Up until you see “Recovery mode,” and then press the Power button.
You’ll see an Android with a red exclamation point. Hold down the Power button and press the Volume Up button — you’ll see the system recovery menu. Select “apply update from adb” with the volume buttons and then press Power.
Connect your Nexus device to your computer with a USB cable. Place the adb command and the OTA update file you downloaded in the same directory. Open a Command Prompt window in that directory by holding Shift, right-clicking and selecting Open Command Prompt Here. Run the following command, replacing “OTA_UPDATE_FILENAME.zip” with the name of the OTA update file you downloaded. (Tab completion can help here!)
adb sideload OTA_UPDATE_FILENAME.zip
Press Enter and adb will send the OTA update file to your device. It will count up to 100 percent while it sends the file, and your device will then begin installing the OTA update as if it was downloaded from Google.
If you have a custom recovery installed on your Nexus device, this process will be different. You should be able to load the OTA update .zip file into your custom recovery app and then have it automatically reboot and install the update.
The slow trickle of official Nexus updates from Google can be annoying. Sure, this helps avoid critical bugs being rolled out to all Nexus users, but it could be much faster!
Apple allows all iPhone and iPad users to get updates as soon as they’re out. This did come back to bite them when they released iOS 8.0.1. This update disabled cellular connectivity and Touch ID on all new iPhones that installed it, and they had to frantically pull the update. That’s what Google is trying to prevent, in theory.
Image Credit: Sylvain Naudin on Flickr