page.title=Running Builds
@jd:body

<!--
    Copyright 2015 The Android Open Source Project

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
<div id="qv-wrapper">
  <div id="qv">
    <h2>In this document</h2>
    <ol id="auto-toc">
    </ol>
  </div>
</div>

<p>This page provides details for running builds on specific devices and is
designed to complement the information in
<a href="{@docRoot}source/building.html">Building the System</a>.</p>

<h2 id="building-fastboot-and-adb">Building fastboot and adb</h2>
<p>If you don't already have fastboot and adb, you can build them with the
regular build system. Use the instructions in
<a href="{@docRoot}source/building.html">Building a System</a> and replace the
main <code>make</code> command with:</p>
<pre><code>$ make fastboot adb
</code></pre>

<h2 id="booting-into-fastboot-mode">Booting into fastboot mode</h2>
<p><em>Fastboot</em> 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:</p>
<table>
<thead>
<tr>
<th>Codename</th>
<th>Device</th>
<th>Keys</th>
</tr>
</thead>
<tbody>
<tr>
<td>marlin</td><td>Pixel XL</td>
<td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>sailfish</td>
<td>Pixel</td>
<td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>hikey</td>
<td>hikey</td>
<td>Link pins 1 - 2 and 5 - 6 of J15</td>
</tr>
<tr>
<td>angler</td>
<td>Nexus 6P</td>
<td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>bullhead</td>
<td>Nexus 5X</td>
<td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>shamu</td>
<td>Nexus 6</td>
<td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>fugu</td>
<td>Nexus Player</td>
<td>Press and hold <em>Power</em></td>
</tr>
<tr>
<td>volantis</td>
<td>Nexus 9</td>
<td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>hammerhead</td>
<td>Nexus 5</td>
<td>Press and hold both <em>Volume Up</em> and <em>Volume Down</em>, then press
and hold <em>Power</em></td>
</tr>
<tr>
<td>flo</td>
<td>Nexus 7</td>
<td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>deb</td>
<td>Nexus 7 3G</td>
<td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>manta</td>
<td>Nexus 10</td>
<td>Press and hold both <em>Volume Up</em> and <em>Volume Down</em>, then press
and hold <em>Power</em></td>
</tr>
<tr>
<td>mako</td>
<td>Nexus 4</td>
<td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>grouper</td>
<td>Nexus 7 (2012)</td>
<td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>tilapia</td>
<td>Nexus 7 3G (2012)</td>
<td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>phantasm</td>
<td>Nexus Q</td>
<td>Power the device, cover it with one hand after the LEDs light up and until
they turn red</td>
</tr>
<tr>
<td>maguro</td>
<td>Galaxy Nexus GSM</td>
<td>Press and hold both <em>Volume Up</em> and <em>Volume Down</em>, then press
and hold <em>Power</em></td>
</tr>
<tr>
<td>toro</td>
<td>Galaxy Nexus (Verizon)</td>
<td>Press and hold both <em>Volume Up</em> and <em>Volume Down</em>, then press
and hold <em>Power</em></td>
</tr>
<tr>
<td>toroplus</td>
<td>Galaxy Nexus (Sprint)</td>
<td>Press and hold both <em>Volume Up</em> and <em>Volume Down</em>, then press
and hold <em>Power</em></td>
</tr>
<tr>
<td>wingray</td>
<td>Motorola Xoom</td>
<td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>crespo</td>
<td>Nexus S</td>
<td>Press and hold <em>Volume Up</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>crespo4g</td>
<td>Nexus SG</td>
<td>Press and hold <em>Volume Up</em>, then press and hold <em>Power</em></td>
</tr>
</tbody>
</table>
<p>You can also use the command <code>adb reboot bootloader</code> to reboot
from Android directly into the bootloader with no key combinations.</p>

<h2 id="unlocking-the-bootloader">Unlocking the bootloader</h2>

<p>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, <em>all</em> data on the
device is erased, i.e. both application private data and shared data accessible
over USB (including photos and movies). Before attempting to unlock the
bootloader, be sure to back up any important files on the device.</p>

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

<h3>Unlocking recent devices</h3>
<p>All Nexus and Pixel devices released since 2014 (starting with Nexus 6 and
Nexus 9) have factory reset protection and require a multi-step process to
unlock the bootloader.</p>

<ol>
<li>Enable OEM unlocking on the device:
<ol style="list-style-type:lower-alpha">
<li>In Settings, tap <strong>About phone</strong>, then tap <strong>Build
number</strong> seven (7) times.</li>
<li>When you see the message "You are a developer", tap the back button.</li>
<li>Tap <strong>Developer options</strong> and enable
<strong>OEM unlocking</strong> and <strong>USB debugging</strong>.
(If OEM unlocking is disabled, connect to the Internet so the device can check
in at least once. If it remains disabled, your device may be SIM locked by your
carrier and the bootloader cannot be unlocked.)</li></ol></li>
<li>Reboot into the bootloader and use fastboot to unlock it.
<ul>
<li>For new devices (2015 and later): <code>$ fastboot flashing unlock</code>
</li>
<li>For older devices (2014 and earlier): <code>$ fastboot oem
unlock</code></li></ul>
You must confirm the unlock onscreen.</li></ol>

<p class="note"><strong>Note</strong> On Nexus 10, after unlocking the
bootloader, the internal storage remains unformatted. You can format the device
using:
<pre><code>$ fastboot format cache
$ fastboot format userdata
</code></pre></p>

<h3 id="relocking-the-bootloader">Re-locking the bootloader</h3>
<p>To re-lock the bootloader:</p>
<ul>
<li>For new devices (2015 and later): <code>$ fastboot flashing lock</code></li>
<li>For older devices (2014 and earlier): <code>$ fastboot oem lock</code></li>
</ul>

<p class="note"><strong>Note</strong>: Re-locking the bootloading on a Motorola
Xoom erases user data (including the shared USB data).</p>

<h2 id="flash-unlock">Using Flash Unlock</h2>

<p>Android 7.0 includes a new system API, <code>getFlashLockState()</code>, to
transmit bootloader state, as well as the following system API that returns the
bootloader’s lock status on compliant devices:</p>

<pre>
PersistentDataBlockManager.getFlashLockState()
</pre>

<table>
<tr>
<th>Return value</th>
<th>Conditions</th>
</tr>
<tr>
<td><code>FLASH_LOCK_UNKNOWN</code>
</td>
<td><p>Returned only by devices upgrading to Android 7.0 that have not supported
bootloader changes required to get the flash lock status if they support
flashing lock/unlock capability.</p>
<p>New Android 7.0 devices must be in either <code>FLASH_LOCK_LOCKED</code> or
<code>FLASH_LOCK_UNLOCKED</code> state. If a device is upgrading to Android 7.0
and does not support flashing unlock/lock capability, it should simply return
<code>FLASH_LOCK_LOCKED</code> state.</p>
</td>
</tr>
<tr>
<td><code>FLASH_LOCK_LOCKED</code>
</td>
<td>Should be returned by any device that does not support flashing
lock/unlock (i.e. the device is always locked), or any device that does support
flashing lock/unlock and is in the locked state.
</td>
</tr>
<tr>
<td><code>FLASH_LOCK_UNLOCKED</code>
</td>
<td>Returned by any device that supports flashing lock/unlock and is
currently in the unlocked state.
</td>
</tr>
</table>

<h3 id="examples-and-source">Examples and source</h3>

<p>AOSP contains a reference implementation that returns a value based on the
<code>ro.boot.flash.locked</code> boot property. The code lives in the following
directories:</p>

<pre>
frameworks/base/services/core/java/com/android/server/PersistentDataBlockService.java
frameworks/base/core/java/android/service/persistentdata/PersistentDataBlockManager.java
</pre>

<h3 id="validation">Validation</h3>
<p>Manufacturers should test the values returned by devices with locked and
unlocked bootloaders.</p>

<h2 id="selecting-device-build">Selecting a device build</h2>

<p>The recommended builds for devices are available from the lunch menu,
accessed when running the <code>lunch</code> command with no arguments. You can
download factory images and binaries for Nexus devices from
developers.google.com:</p>

<ul>
<li><a href="https://developers.google.com/android/nexus/blobs-preview">Preview
binaries (blobs)</a></li>
<li><a href="https://developers.google.com/android/nexus/images">Factory images
for released devices</a></li>
<li><a href="https://developers.google.com/android/nexus/drivers">Support
binaries (drivers) for release devices</a></li>
</ul>

<p>For details and additional resources, see
<a href="building.html#obtaining-proprietary-binaries">Obtaining proprietary
binaries</a> and <a href="requirements.html#binaries">Device binaries
requirements</a>.</p>

<table>
<thead>
<tr>
<th>Device</th>
<th>Code name</th>
<th>Build configuration</th>
</tr>
</thead>
<tbody>
<tr>
<td>Pixel XL</td>
<td>marlin</td>
<td>aosp_marlin-userdebug</td>
</tr>
<tr>
<td>Pixel</td>
<td>sailfish</td>
<td>aosp_sailfish-userdebug</td>
</tr>
<tr>
<td>HiKey</td>
<td>hikey</td>
<td>hikey-userdebug</td>
</tr>
<tr>
<td>Nexus 6P</td>
<td>angler</td>
<td>aosp_angler-userdebug</td>
</tr>
<tr>
<td>Nexus 5X</td>
<td>bullhead</td>
<td>aosp_bullhead-userdebug</td>
</tr>
<tr>
<td>Nexus 6</td>
<td>shamu</td>
<td>aosp_shamu-userdebug</td>
</tr>
<tr>
<td>Nexus Player</td>
<td>fugu</td>
<td>aosp_fugu-userdebug</td>
</tr>
<tr>
<td>Nexus 9</td>
<td>volantis (flounder)</td>
<td>aosp_flounder-userdebug</td>
</tr>
<tr>
<td>Nexus 5 (GSM/LTE)</td>
<td>hammerhead</td>
<td>aosp_hammerhead-userdebug</td>
</tr>
<tr>
<td>Nexus 7 (Wi-Fi)</td>
<td>razor (flo)</td>
<td>aosp_flo-userdebug</td>
</tr>
<tr>
<td>Nexus 7 (Mobile)</td>
<td>razorg (deb)</td>
<td>aosp_deb-userdebug</td>
</tr>
<tr>
<td>Nexus 10</td>
<td>mantaray (manta)</td>
<td>full_manta-userdebug</td>
</tr>
<tr>
<td>Nexus 4</td>
<td>occam (mako)</td>
<td>full_mako-userdebug</td>
</tr>
<tr>
<td>Nexus 7 (Wi-Fi)</td>
<td>nakasi (grouper)</td>
<td>full_grouper-userdebug</td>
</tr>
<tr>
<td>Nexus 7 (Mobile)</td>
<td>nakasig (tilapia)</td>
<td>full_tilapia-userdebug</td>
</tr>
<tr>
<td>Galaxy Nexus (GSM/HSPA+)</td>
<td>yakju (maguro)</td>
<td>full_maguro-userdebug</td>
</tr>
<tr>
<td>Galaxy Nexus (Verizon)</td>
<td>mysid (toro)</td>
<td>aosp_toro-userdebug</td>
</tr>
<tr>
<td>Galaxy Nexus (Experimental)</td>
<td>mysidspr (toroplus)</td>
<td>aosp_toroplus-userdebug</td>
</tr>
<tr>
<td>Motorola Xoom (U.S. Wi-Fi)</td>
<td>wingray</td>
<td>full_wingray-userdebug</td>
</tr>
<tr>
<td>Nexus S</td>
<td>soju (crespo)</td>
<td>full_crespo-userdebug</td>
</tr>
<tr>
<td>Nexus S 4G</td>
<td>sojus (crespo4g)</td>
<td>full_crespo4g-userdebug</td>
</tr>
</tbody>
</table>

<p class="note"><b>Note</b>: Do not use Android 4.1.1 on a Nexus 7 originally
sold with Android 4.1.2 or newer.</p>

<h2 id="flashing-a-device">Flashing a device</h2>

<p>You can flash an entire Android system in a single command; doing so verifies
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 <code>fastboot oem
unlock</code>.</p>

<p>Place the device in fastboot mode either manually by holding the appropriate
key combination at boot, or from the shell with:</p>

<pre>
$ adb reboot bootloader
</pre>

<p>After the device is in fastboot mode, run:</p>

<pre>
$ fastboot flashall -w
</pre>

<p>The <code>-w</code> option wipes the <code>/data</code> partition on the
device; this is useful for your first time flashing a particular device but is
otherwise unnecessary.</p>

<p class="note"><strong>Note</strong>: Filesystems created via fastboot on
Motorola Xoom do not function optimally. We recommend re-creating filesystems
through recovery, using: <code>$ adb reboot recovery</code>. While in recovery,
open the menu (press Power + Volume Up), wipe the cache partition, then wipe
data.</p>


<h2 id="restoring-devices-to-factory-state">Restoring devices to factory
state</h2>

<p>Factory images for Nexus 5, Nexus 10, Nexus 4, Nexus Q, Nexus 7, Galaxy Nexus
(GSM/HSPA+ "yakju" and "takju", and CDMA/LTE "mysid" and "mysidspr"), Nexus S,
and Nexus S 4G are available from
<a href="https://developers.google.com/android/nexus/images">Google's factory
image</a> page.</p>

<p>Factory images for the Motorola Xoom are distributed directly by Motorola.</p>
