Categories
Uncategorized

Manually installing an OTA update for the Nexus 5x

In theory, your device should automatically check for an OTA (over-the-air) update, download it in the background, and then prompt you to install the update. No matter how much I manually checked, my device kept insisting it was up to date (I know Google likes to do staggered automatic rollouts, but it's just annoying when I manually initiate a check and Google still insists on not giving me the update).

These are just slightly more detailed step-by-step instructions based on Android 6.0.1 Marshmallow OTA Links for Sideloading. This GitHub page has a list of OTA updates for Nexus devices. Find the download for your device. I'm using my device (Nexus 5x) as an example. In theory, the instructions should be very similar for other Nexus devices.

Find your device's build number

There are two different 6.0 builds for the Nexus 5x (MDB08L and MDB08M). To find out which one was mine, I had to go to Settings > About phone > Build number to find out my build was MDB08L.

For the U.S. version of the Nexus 5x, the upgrade is MHC19J from MMB29Q.

Enable USB debugging

While you're in the About phone section, tap the Build number and keep tapping it until you get a notification that developer options are now enabled. Then go to Settings > Developer options and scroll down until you get to USB debugging and tap the toggle next to it to enable it.

Get the Android SDK

Google used to have an easy-to-find SDK download link. Now it points you to Android Studio instead, which you can use to install the SDK using SDK Manager if you go to Tools > Android > SDK Manager. You may, somewhere on the Android developer website be able to track down a standalone SDK download if you dig around enough.

It took me a while to find exactly where the SDK installed to. Eventually, I found it it was installed to /Users/username/Library/Android/sdk/platform-tools (I'm using a Mac—it's probably a similar path for Windows, maybe in /Users/username/AppData?).

Do the actual flashing of the OTA

Disclaimer: Uh, these instructions worked for me, but absolutely this is at your own risk. I'm not at all responsible (nor is the person who wrote the tutorial on which this is based) for any damage you might do to your device.

Open up a terminal (again, I'm using a Mac, so it's in /Applications/Utilities/Terminal.app; if you're using Windows, find cmd.exe and launch that up instead).

At this point, plug your device into your computer using a USB cable. You may have to switch to PTP mode to get it to work.

Change directories to where adb is:

cd /Users/username/Library/Android/sdk/platform-tools
Substitute in your actual username for username. And don't forget you can use the Tab key to autocomplete directory names instead of manually typing out the full path.

Make sure your device shows up in the list of devices:

./adb devices

Reboot to the bootloader:

./adb reboot bootloader
Use the volume down key to focus on Recovery. Once that's in focus, press the power button to select it.

You'll see what looks like an error and a dead Android lying on its back. Press the volume up key and power buttons at the same time until you get to a list of menu options.

Use the volume down key until you get Apply update from ADB into focus. Then press the power button to select it.

You should then see a message that says Now send the package you want to apply to the device with "adb sideload ."

Back on your computer, enter a command similar to this one (again, Tab completion is your friend—you don't want to manually retype the full filename of the OTA update you downloaded:

./adb sideload ~/Downloads/f67821b18f5a3bc6552039f0997fc9511f05c2c3.signed-bullhead-MMB29K-from-MDB08L.zip

You'll then see output similar to this in the terminal on your computer:

loading:
'/Users/username/Downloads/f67821b18f5a3bc6552039f0997fc9511f05c2c3.signed-serving:
'/Users/username/Downloads/f67821b18f5a3bc6552039f0997fc9511f05c2c3.signed-serving:
'/Users/username/Downloads/f67821b18f5a3bc6552039f0997fc9511f05c2c3.signed-serving:
'/Users/username/Downloads/f67821b18f5a3bc6552039f0997fc9511f05c2c3.signed-serving:
''/Users/username/Downloads/f67821b18f5a3bc6552039f0997fc9511f05c2c3.signed-Total xfer: 2.12x
with little progress percentages going up along the way.

Meanwhile, on your phone/Android device, you'll see output similar to this:

Finding update package...
Opening update package...
Verifying update package...
Installing update...
Source: google/bullhead/bullhead:6.0/MMB29Q/#######:user/release-keys
Target: google/bullhead/bullhead:6.0.1/MHC19J/#######:user/release-keys
Verifying current system...
Verified system image...
Verified vendor image...
Patching system image after verification.
Verifying the updated system image...
Verified the updated system image.
Patching vendor image after verification.
Verifying the updated vendor image...
Verified the updated vendor image.
Patching the boot image...
Writing bootloader...
Patching radio...
script succeeded: result was [1.000000]

Install from ADB complete.

When that's done, use the volume up key to highlight Reboot system now and then press the power button to select it.

After your device reboots, you should see something like Android is upgrading...
Optimising app # of 66
.

That's it! Your update should now be installed.