Google is committed to advancing racial equity for Black communities. See how.

This page provides details for running builds on specific devices and complements the information in Building Android.

Note: You can flash an existing build from the Android Continuous Integration dashboard with the Android Flash Tool. For more details, see the Android Flash Tool page.

Building fastboot and adb

If you don't already have fastboot and adb , you can build them with the regular build system. Use the instructions in Building Android and replace the main make command with:

make fastboot adb

See Android Debug Bridge (ADB) for details on Android Debug Bridge (ADB).

Booting into fastboot mode

fastboot is a bootloader mode in which you can flash a device. During a cold boot of a device, use the following key combinations to boot into fastboot mode.

You can use the command adb reboot bootloader to reboot directly into the bootloader, or you can use one of the following key combinations during a cold boot.

Device Code name Keys Pixel 3a XL bonito Press and hold Volume Down, then press and hold Power. Pixel 3a sargo Press and hold Volume Down, then press and hold Power. Pixel 3 XL crosshatch Press and hold Volume Down, then press and hold Power. Pixel 3 blueline Press and hold Volume Down, then press and hold Power. Pixel 2 XL taimen Press and hold Volume Down, then press and hold Power. Pixel 2 walleye Press and hold Volume Down, then press and hold Power. Pixel XL marlin Press and hold Volume Down, then press and hold Power. Pixel sailfish Press and hold Volume Down, then press and hold Power. hikey hikey Link pins 1 - 2 and 5 - 6 of J15. Nexus 6P angler Press and hold Volume Down, then press and hold Power. Nexus 5X bullhead Press and hold Volume Down, then press and hold Power. Nexus 6 shamu Press and hold Volume Down, then press and hold Power. Nexus Player fugu Press and hold Power. Nexus 9 volantis Press and hold Volume Down, then press and hold Power. Nexus 5 hammerhead Press and hold both Volume Up and Volume Down, then press and hold Power. Nexus 7 flo Press and hold Volume Down, then press and hold Power. Nexus 7 3G deb Press and hold Volume Down, then press and hold Power. Nexus 10 manta Press and hold both Volume Up and Volume Down, then press and hold Power. Nexus 4 mako Press and hold Volume Down, then press and hold Power. Nexus 7 (2012) grouper Press and hold Volume Down, then press and hold Power. Nexus 7 3G (2012) tilapia Press and hold Volume Down, then press and hold Power. Nexus Q phantasm Power the device then cover it with one hand after the LEDs light up and until they turn red. Galaxy Nexus GSM maguro Press and hold both Volume Up and Volume Down, then press and hold Power. Galaxy Nexus (Verizon) toro Press and hold both Volume Up and Volume Down, then press and hold Power. Galaxy Nexus (Sprint) toroplus Press and hold both Volume Up and Volume Down, then press and hold Power. Motorola Xoom wingray Press and hold Volume Down, then press and hold Power. Nexus S crespo Press and hold Volume Up, then press and hold Power. Nexus SG crespo4g Press and hold Volume Up, then press and hold Power.

Unlocking the bootloader

You can flash a custom system only if the bootloader allows it, and the bootloader is locked by default. You can unlock the bootloader, but doing so deletes user data for privacy reasons. After unlocking, all data on the device is erased, that is, both private app data and shared data accessible over USB (including photos and movies). Before attempting to unlock the bootloader, back up any important files on the device.

You need to unlock the bootloader only once, and you can re-lock it if necessary.

Unlocking recent devices

All Nexus and Pixel devices released since 2014 (starting with Nexus 6 and Nexus 9) have factory-reset protection and require a multistep process to unlock the bootloader.

To enable OEM unlocking on the device: In Settings, tap About phone, then tap Build number seven times. When you see the message You are a developer, tap the back button. Tap Developer options and enable OEM unlocking and USB debugging. (If OEM unlocking is disabled, connect to the internet so the device can check in at least once. If it remains disabled, your device might be SIM locked by your carrier and the bootloader can't be unlocked.) Reboot into the bootloader and use fastboot to unlock it. For newer devices (2015 and higher): fastboot flashing unlock

For older devices (2014 and lower): fastboot oem unlock Confirm the unlock onscreen.

Note: On Nexus 10, after unlocking the bootloader, the internal storage remains unformatted. You can format the device using fastboot format cache followed by fastboot format userdata .

Re-locking the bootloader

To re-lock the bootloader:

For newer devices (2015 and higher): fastboot flashing lock

For older devices (2014 and lower): fastboot oem lock

Note: Re-locking the bootloading on a Motorola Xoom erases all user data (including the shared USB data).

Using flash lock states

The getFlashLockState() system API transmits the bootloader state and the PersistentDataBlockManager.getFlashLockState() system API returns the bootloader’s lock status on compliant devices.

Return value Conditions FLASH_LOCK_UNKNOWN Returned only by devices upgrading to Android 7.x or higher that didn't previously support the bootloader changes required to get the flash lock status if they supported flashing lock/unlock capability.

New devices running Android 7.x or higher must be in either a FLASH_LOCK_LOCKED or FLASH_LOCK_UNLOCKED state.

or state. Devices upgrading to Android 7.x or higher that don't support flashing unlock/lock capability should return a FLASH_LOCK_LOCKED state. FLASH_LOCK_LOCKED Returned by any device that doesn't support flashing lock/unlock (that is, the device is always locked), or any device that supports flashing lock/unlock and is in the locked state. FLASH_LOCK_UNLOCKED Returned by any device that supports flashing lock/unlock and is in the unlocked state.

Manufacturers should test the values returned by devices with locked and unlocked bootloaders. For an example, the Android Open Source Project (AOSP) contains a reference implementation that returns a value based on the ro.boot.flash.locked boot property. Example code is located in the following directories:

frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java

frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java

Selecting a device build

The recommended device builds are available from the lunch menu, accessed when running the lunch command with no arguments. See Choosing a target for available build types and more information on the lunch command.

You can download factory images and binaries for Nexus devices from developers.google.com. See Device binaries for downloads. For details and additional resources, see Obtaining proprietary binaries.

Device Code name Build configuration Pixel 3a XL bonito aosp_bonito-userdebug Pixel 3a sargo aosp_sargo-userdebug Pixel 3 XL crosshatch aosp_crosshatch-userdebug Pixel 3 blueline aosp_blueline-userdebug Pixel 2 XL taimen aosp_taimen-userdebug Pixel 2 walleye aosp_walleye-userdebug Pixel XL marlin aosp_marlin-userdebug Pixel sailfish aosp_sailfish-userdebug HiKey hikey hikey-userdebug Nexus 6P angler aosp_angler-userdebug Nexus 5X bullhead aosp_bullhead-userdebug Nexus 6 shamu aosp_shamu-userdebug Nexus Player fugu aosp_fugu-userdebug Nexus 9 volantis (flounder) aosp_flounder-userdebug Nexus 5 (GSM/LTE) hammerhead aosp_hammerhead-userdebug Nexus 7 (Wi-Fi) razor (flo) aosp_flo-userdebug Nexus 7 (Mobile) razorg (deb) aosp_deb-userdebug Nexus 10 mantaray (manta) full_manta-userdebug Nexus 4 occam (mako) full_mako-userdebug Nexus 7 (Wi-Fi) nakasi (grouper) full_grouper-userdebug Nexus 7 (Mobile) nakasig (tilapia) full_tilapia-userdebug Galaxy Nexus (GSM/HSPA+) yakju (maguro) full_maguro-userdebug Galaxy Nexus (Verizon) mysid (toro) √aosp_toro-userdebug Galaxy Nexus (Experimental) mysidspr (toroplus) aosp_toroplus-userdebug Motorola Xoom (U.S. Wi-Fi) wingray full_wingray-userdebug Nexus S soju (crespo) full_crespo-userdebug Nexus S 4G sojus (crespo4g) full_crespo4g-userdebug

Note: Don't use Android 4.1.1 on a Nexus 7 originally sold with Android 4.1.2 or higher.

Flashing a device

You can flash an entire Android system in a single command; doing so verifies that the system being flashed is compatible with the installed bootloader and radio, writes the boot, recovery, and system partitions together, then reboots the system. Flashing also erases all user data, similarly to fastboot oem unlock .

To flash a device:

Place the device in fastboot mode by holding the appropriate key combination at boot or using the following command: adb reboot bootloader After the device is in fastboot mode, run: fastboot flashall -w The -w option wipes the /data partition on the device; this is useful for your first time flashing a particular device but is otherwise unnecessary.

Note: File systems created with fastboot on Motorola Xoom don't function optimally. We recommend re-creating file systems through recovery using $ adb reboot recovery . While in recovery, open the menu (press Power + Volume Up), wipe the cache partition, then wipe the data.

Restoring devices to factory state

Factory images for Google devices are available from Factory Images for Nexus and Pixel Devices. Factory images for the Motorola Xoom are distributed directly by Motorola.