blob: 6e8a8e26b67726cedccf8b59bfe867700e072841 [file] [log] [blame]
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>During a cold boot of a device, use the following key combinations to boot
into fastboot mode, which is a mode in the bootloader that can be used to flash
the device:</p>
<table>
<thead>
<tr>
<th>Device</th>
<th>Keys</th>
</tr>
</thead>
<tbody>
<tr>
<td>hikey</td>
<td>Link pins 1 - 2 and 5 - 6 of J15</td>
</tr>
<tr>
<td>angler</td>
<td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>bullhead</td>
<td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>shamu</td>
<td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>fugu</td>
<td>Press and hold <em>Power</em></td>
</tr>
<tr>
<td>volantis</td>
<td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>hammerhead</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>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>deb</td>
<td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>manta</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>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>grouper</td>
<td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>tilapia</td>
<td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>phantasm</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>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>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>Press and hold both <em>Volume Up</em> and <em>Volume Down</em>, then press
and hold <em>Power</em></td>
</tr>
<tr>
<td>panda</td>
<td>Press and hold <em>Input</em>, then press <em>Power</em></td>
</tr>
<tr>
<td>wingray</td>
<td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>crespo</td>
<td>Press and hold <em>Volume Up</em>, then press and hold <em>Power</em></td>
</tr>
<tr>
<td>crespo4g</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>It's possible to flash a custom system only if the bootloader allows it, and
the bootloader is locked by default. You can unlock the bootloader, but be aware
that doing so deletes the user data for privacy reasons (the unlock operation
needs to run only once). After unlocking, all data on the device is erased, i.e.
both the applications' private data and the shared data that is accessible over
USB, including photos and movies. Be sure to back up any precious files before
unlocking the bootloader.</p>
<p>With the device in fastboot mode, unlock the bootloader using:</p>
<pre><code>$ fastboot oem unlock
</code></pre>
<p>The procedure must be confirmed on-screen.</p>
<p>On Nexus 10, after unlocking the bootloader, the internal storage remains
unformatted. You can format the device using:</p>
<pre><code>$ fastboot format cache
$ fastboot format userdata
</code></pre>
<p>To re-lock the bootloader, use:</p>
<pre><code>$ fastboot oem lock
</code></pre>
<p class="note"><strong>Note</strong>: Re-locking the bootloading on a Motoroal Xoom
erases user data (including the shared USB data).</p>
<h2 id="obtaining-proprietary-binaries">Obtaining proprietary binaries</h2>
<p>AOSP cannot be used from pure source code only and requires additional
hardware-related proprietary libraries to run, specifically for hardware
graphics acceleration.</p>
<h3 id="downloading-proprietary-binaries">Downloading proprietary binaries</h3>
<p>You can download official binaries for the supported devices running tagged
AOSP release branches from <a
href="https://developers.google.com/android/nexus/drivers">Google's Nexus
driver page</a>. These binaries add access to additional hardware capabilities
with non-open source code. To instead build the AOSP master branch, use the
<a href="https://developers.google.com/android/nexus/blobs-preview">Binaries
Preview for Nexus Devices</a>. When building the master branch for a device, use
the binaries for the <a href="{@docRoot}source/build-numbers.html">most recent
numbered release</a> or with the most recent date.</p>
<h3 id="extracting-proprietary-binaries">Extracting proprietary binaries</h3>
<p>Each set of binaries comes as a self-extracting script in a compressed
archive. Uncompress each archive, run the included self-extracting script from
the root of the source tree, then confirm that you agree to the terms
of the enclosed license agreement. The binaries and their matching makefiles
will be installed in the <code>vendor/</code> hierarchy of the source tree.</p>
<h3 id="cleaning-up">Cleaning up</h3>
<p>To ensure the newly installed binaries are properly taken into account after
being extracted, delete the existing output of any previous build using:</p>
<pre><code>$ make clobber
</code></pre>
<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:</p>
<ul>
<li><a href="https://developers.google.com/android/nexus/images">https://developers.google.com/android/nexus/images</a></li>
<li><a href="https://developers.google.com/android/nexus/drivers">https://developers.google.com/android/nexus/drivers</a></li>
</ul>
<table>
<thead>
<tr>
<th>Device</th>
<th>Code name</th>
<th>Build configuration</th>
</tr>
</thead>
<tbody>
<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>PandaBoard (Archived)</td>
<td>panda</td>
<td>aosp_panda-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, and then reboots the
system. Flashing also erases all user data, similarly to <code>fastboot oem
unlock</code>.</p>
<p>To flash a device, set the device in
<a href="#booting-into-fastboot-mode">fastboot mode</a> (if necessary) and run:
<pre><code>$ fastboot -w flashall
</code></pre>
<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>