"Update via ADB Android 4.2" by Sylvain Naudin, from https://www.flickr.com/photos/naudinsylvain/8210543705. Used with permission under a CC BY-SA 2.0 license; see https://creativecommons.org/licenses/by-sa/2.0/.

Impatiently updating my Nexus 6

My well-documented impatience extends to my mobile device, an unlocked Nexus 6 on Verizon. While I generally received Google’s updates in short order, this was not always the case. To my relief, Google releases the same updates carriers deliver to their subscribers, allowing me to update my device at my convenience.


Short of a factory reset, there is no way to switch back to carrier-supplied updates once you’ve begun installing them manually.

As such, you’ll need to remember to repeat this process on a monthly basis. I created a recurring task in Todoist.


First, since we’ll be applying an update, it’s a good idea to back up anything important that might be stored on your device. Updating should be a smooth process, but it’s best to be safe.

Second, the Android SDK Platform Tools are required, as is some comfort with the command line. Download the tools from https://developer.android.com/studio/releases/platform-tools.html.

Installing the OTA update

Device- and, occasionally, carrier-specific updates are available from https://developers.google.com/android/ota. OTA stands for “over the air,” which indicates that these are the updates delivered to your device via its built-in update process; this is in contrast to the “Factory images” Google also provides, which reset the device to its initial state (removing all personal data).

After downloading the latest OTA update for my Nexus 6 (N6F27E as of this writing), I verify the zip by comparing the result of this command with the checksum Google provides:

shasum -a 256 shamu-ota-n6f27e-a48c6fa8.zip

Note that the last portion of the filename, a48c6fa8, is also the first eight characters of the checksum. With the download verified, I’m ready to begin applying the update.

For an Android device to receive the update, USB Debugging must be enabled via the device’s Developer options. Go to Settings > Developer options > Debugging and toggle on “USB debugging.” A warning will be displayed and should be accepted, as what it warns about is precisely what we’re planning to do.

Next, connect your phone to your computer and open a terminal window (on the latter). Start the update process with this command:

adb reboot recovery

Your phone should reboot to a screen that says “No command” and includes the Android mascot with a red exclamation point. If it does not, see step #3 from Google’s update instructions, which describes how to manually arrive at the “No command” screen.

To proceed, hold down the device’s power button, press the Volume Up button once, then release the power button. A menu will appear. Use the volume toggles to scroll to “Apply update from ADB,” then press the power button to select that option. Now the phone is ready to apply the update.

Back at your computer’s terminal, enter the following command, replacing shamu-ota-n6f27e-a48c6fa8.zip with the name of the file downloaded earlier.

adb sideload shamu-ota-n6f27e-a48c6fa8.zip

Once the update completes, your phone will display another menu, with “Reboot phone” highlighted. Simply press the power button once to reboot your device. Android will finish the upgrade just as you’ve experienced with an OTA update.

To verify the update applied, check the “Android security patch level” shown under Settings > About phone. It should match the month and year that Google shows on the OTA downloads page.

To wrap up, as it’s only needed during upgrades, return to your device’s Developer options and disable USB debugging.

Featured image: “Update via ADB Android 4.2” by Sylvain Naudin. Used with permission under a CC BY-SA 2.0 license.