Home | History | Annotate | Download | only in source
      1 page.title=Building for devices
      2 @jd:body
      3 
      4 <!--
      5     Copyright 2013 The Android Open Source Project
      6 
      7     Licensed under the Apache License, Version 2.0 (the "License");
      8     you may not use this file except in compliance with the License.
      9     You may obtain a copy of the License at
     10 
     11         http://www.apache.org/licenses/LICENSE-2.0
     12 
     13     Unless required by applicable law or agreed to in writing, software
     14     distributed under the License is distributed on an "AS IS" BASIS,
     15     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     16     See the License for the specific language governing permissions and
     17     limitations under the License.
     18 -->
     19 <div id="qv-wrapper">
     20   <div id="qv">
     21     <h2>In this document</h2>
     22     <ol id="auto-toc">
     23     </ol>
     24   </div>
     25 </div>
     26 
     27 <p>This page complements the main page about
     28 <a href="building-running.html">Building and Running</a> with
     29 information that is specific to individual devices.</p>
     30 
     31 <p>With the current release, it is possible to build for
     32 Nexus 4, Nexus 7, and for some variants of Galaxy Nexus.
     33 The exact level of functionality for each device depends on the availability
     34 of the relevant proprietary hardware-specific binaries.</p>
     35 <p>For Nexus 4 and Nexus 7, all configurations can be used,
     36 and all the hardware is functional.
     37 Due to hardware differences, do not use 4.1.1 on a Nexus 7 that
     38 was originally sold with 4.1.2 or newer.</p>
     39 <p>All configurations of Nexus 10 "manta" can be used with 4.2.2.
     40 On those devices, graphics, audio,
     41 Wi-Fi, Bluetooth, camera, NFC, GPS and orientation sensors are functional.</p>
     42 <p>The variants of Galaxy Nexus that can be used are the GSM/HSPA+ configuration
     43 "maguro" (only if it was originally sold with a "yakju" or "takju" operating
     44 system) and the VZW CDMA/LTE configuration "toro". On those devices, graphics
     45 and audio are functional, as well as Wi-Fi, Bluetooth, and access to the
     46 respective cellular networks. NFC and the orientation sensors are functional.</p>
     47 <p>The Sprint CDMA/LTE configuration "toroplus" of Galaxy Nexus is supported
     48 experimentally, in the jb-mr1-dev-plus-aosp branch. On that configuration,
     49 the cellular network is not functional,
     50 and the other peripherals work like they do on "toro".</p>
     51 <p>The Motorola Xoom can be used in the Wi-Fi configuration "wingray"
     52 sold in the USA, with Android 4.1.2. Graphics and audio are functional
     53 as well as Wi-Fi and Bluetooth and the orientation sensors.</p>
     54 <p>All configurations of Nexus S and Nexus S 4G can be used with Android 4.1.2.
     55 On those devices all the hardware is functional.</p>
     56 <p>In addition, <a href="http://pandaboard.org">PandaBoard</a> a.k.a. "panda" can be used
     57 in the jb-mr1-dev-plus-aosp branch, but is considered experimental.
     58 The specific details to use a PandaBoard with the Android Open-Source Project
     59 are in the file <code>device/ti/panda/README</code> in the source tree.</p>
     60 
     61 <h2 id="building-fastboot-and-adb">Building fastboot and adb</h2>
     62 <p>If you don't already have those tools, fastboot and adb can be built with
     63 the regular build system. Follow the instructions on the page about
     64 <a href="building-running.html">Building and Running</a>, and replace the main <code>make</code> command with</p>
     65 <pre><code>$ make fastboot adb
     66 </code></pre>
     67 <h2 id="booting-into-fastboot-mode">Booting into fastboot mode</h2>
     68 <p>During a cold boot, the following key combinations can be used to boot into fastboot mode,
     69 which is a mode in the bootloader that can be used to flash the devices:</p>
     70 <table>
     71 <thead>
     72 <tr>
     73 <th>Device</th>
     74 <th>Keys</th>
     75 </tr>
     76 </thead>
     77 <tbody>
     78 <tr>
     79 <td>shamu</td>
     80 <td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
     81 </tr>
     82 <tr>
     83 <td>fugu</td>
     84 <td>Press and hold <em>Power</em></td>
     85 </tr>
     86 <tr>
     87 <td>volantis</td>
     88 <td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
     89 </tr>
     90 <tr>
     91 <td>hammerhead</td>
     92 <td>Press and hold both <em>Volume Up</em> and <em>Volume Down</em>, then press
     93 and hold <em>Power</em></td>
     94 </tr>
     95 <tr>
     96 <td>flo</td>
     97 <td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
     98 </tr>
     99 <tr>
    100 <td>deb</td>
    101 <td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
    102 </tr>
    103 <tr>
    104 <td>manta</td>
    105 <td>Press and hold both <em>Volume Up</em> and <em>Volume Down</em>, then press and hold <em>Power</em></td>
    106 </tr>
    107 <tr>
    108 <td>mako</td>
    109 <td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
    110 </tr>
    111 <tr>
    112 <td>grouper</td>
    113 <td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
    114 </tr>
    115 <tr>
    116 <td>tilapia</td>
    117 <td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
    118 </tr>
    119 <tr>
    120 <td>phantasm</td>
    121 <td>Power the device, cover it with one hand after the LEDs light up and until they turn red</td>
    122 </tr>
    123 <tr>
    124 <td>maguro</td>
    125 <td>Press and hold both <em>Volume Up</em> and <em>Volume Down</em>, then press and hold <em>Power</em></td>
    126 </tr>
    127 <tr>
    128 <td>toro</td>
    129 <td>Press and hold both <em>Volume Up</em> and <em>Volume Down</em>, then press and hold <em>Power</em></td>
    130 </tr>
    131 <tr>
    132 <td>toroplus</td>
    133 <td>Press and hold both <em>Volume Up</em> and <em>Volume Down</em>, then press and hold <em>Power</em></td>
    134 </tr>
    135 <tr>
    136 <td>panda</td>
    137 <td>Press and hold <em>Input</em>, then press <em>Power</em></td>
    138 </tr>
    139 <tr>
    140 <td>wingray</td>
    141 <td>Press and hold <em>Volume Down</em>, then press and hold <em>Power</em></td>
    142 </tr>
    143 <tr>
    144 <td>crespo</td>
    145 <td>Press and hold <em>Volume Up</em>, then press and hold <em>Power</em></td>
    146 </tr>
    147 <tr>
    148 <td>crespo4g</td>
    149 <td>Press and hold <em>Volume Up</em>, then press and hold <em>Power</em></td>
    150 </tr>
    151 </tbody>
    152 </table>
    153 <p>Also, the command <code>adb reboot bootloader</code> can be used to reboot from
    154 Android directly into the bootloader with no key combinations.</p>
    155 <h2 id="unlocking-the-bootloader">Unlocking the bootloader</h2>
    156 <p>It's only possible to flash a custom system if the bootloader allows it.</p>
    157 <p>The bootloader is locked by default. With the device in fastboot mode, the
    158 bootloader is unlocked with</p>
    159 <pre><code>$ fastboot oem unlock
    160 </code></pre>
    161 <p>The procedure must be confirmed on-screen, and deletes the user data for
    162 privacy reasons. It only needs to be run once.</p>
    163 <p>All data on the phone is erased, i.e. both the applications' private data
    164 and the shared data that is accessible over USB, including photos and
    165 movies. Be sure to make a backup of any precious files you have before
    166 unlocking the bootloader.</p>
    167 <p>On Nexus 10, after unlocking the bootloader, the internal storage is
    168 left unformatted and must be formatted with</p>
    169 <pre><code>$ fastboot format cache
    170 $ fastboot format userdata
    171 </code></pre>
    172 <p>The bootloader can be locked back with</p>
    173 <pre><code>$ fastboot oem lock
    174 </code></pre>
    175 <p>Note that this erases user data on Xoom (including the shared USB data).</p>
    176 <h2 id="obtaining-proprietary-binaries">Obtaining proprietary binaries</h2>
    177 <p>The Android Open-Source Project can't be used
    178 from pure source code only, and requires additional hardware-related proprietary
    179 libraries to run, specifically for hardware graphics acceleration.</p>
    180 <p>Official binaries for the supported devices running tagged AOSP release
    181 branches can be downloaded from <a
    182 href="https://developers.google.com/android/nexus/drivers">Google's Nexus
    183 driver page</a>. These add access to additional hardware capabilities with
    184 non-open-source code. To instead build the AOSP master branch, use the <a
    185 href="https://developers.google.com/android/nexus/blobs-preview">Binaries
    186 Preview for Nexus Devices</a>.</p>
    187 <p>When building the master branch for a device, the binaries for the most
    188 recent numbered release or with the most recent date are the ones that should
    189 be used.</p>
    190 <h3 id="extracting-the-proprietary-binaries">Extracting the proprietary binaries</h3>
    191 <p>Each set of binaries comes as a self-extracting script in a compressed archive.
    192 After uncompressing each archive, run the included self-extracting script
    193 from the root of the source tree, confirm that you agree to the terms of the
    194 enclosed license agreement, and the binaries and their matching makefiles
    195 will get installed in the <code>vendor/</code> hierarchy of the source tree.</p>
    196 <h3 id="cleaning-up-when-adding-proprietary-binaries">Cleaning up when adding proprietary binaries</h3>
    197 <p>In order to make sure that the newly installed binaries are properly
    198 taken into account after being extracted, the existing output of any previous
    199 build needs to be deleted with</p>
    200 <pre><code>$ make clobber
    201 </code></pre>
    202 <h2 id="picking-and-building-the-configuration-that-matches-a-device">Picking and building the configuration that matches a device</h2>
    203 <p>The steps to configure and build the Android Open Source Project
    204 are described in the <a href="building.html">Building</a> page.</p>
    205 <p>The recommended builds for the various devices are available through
    206 the lunch menu, accessed when running the <code>lunch</code> command with no arguments. Factory images and binaries for Nexus devices can be downloaded from:</p>
    207 <p><a href="https://developers.google.com/android/nexus/images">https://developers.google.com/android/nexus/images</a></p>
    208 <p><a href="https://developers.google.com/android/nexus/drivers">https://developers.google.com/android/nexus/drivers</a></p>
    209 <table>
    210 <thead>
    211 <tr>
    212   <th>Device</th>
    213 <th>Code name</th>
    214 <th>Build configuration</th>
    215 </tr>
    216 </thead>
    217 <tbody>
    218 <tr>
    219   <td>Nexus 6</td>
    220 <td>shamu</td>
    221 <td>aosp_shamu-userdebug</td>
    222 </tr>
    223 </tr>
    224 <tr>
    225   <td>Nexus Player</td>
    226 <td>fugu</td>
    227 <td>aosp_fugu-userdebug</td>
    228 </tr>
    229 <tr>
    230   <td>Nexus 9</td>
    231 <td>volantis (flounder)</td>
    232 <td>aosp_flounder-userdebug</td>
    233 </tr>
    234 <tr>
    235   <td>Nexus 5 (GSM/LTE)</td>
    236 <td>hammerhead</td>
    237 <td>aosp_hammerhead-userdebug</td>
    238 </tr>
    239 <tr>
    240   <td>Nexus 7 (Wi-Fi)</td>
    241 <td>razor (flo)</td>
    242 <td>aosp_flo-userdebug</td>
    243 </tr>
    244 <tr>
    245   <td>Nexus 7 (Mobile)</td>
    246 <td>razorg (deb)</td>
    247 <td>aosp_deb-userdebug</td>
    248 </tr>
    249 <tr>
    250   <td>Nexus 10</td>
    251 <td>mantaray (manta)</td>
    252 <td>full_manta-userdebug</td>
    253 </tr>
    254 <tr>
    255   <td>Nexus 4</td>
    256 <td>occam (mako)</td>
    257 <td>full_mako-userdebug</td>
    258 </tr>
    259 <tr>
    260   <td>Nexus 7 (Wi-Fi)</td>
    261 <td>nakasi (grouper)</td>
    262 <td>full_grouper-userdebug</td>
    263 </tr>
    264 <tr>
    265   <td>Nexus 7 (Mobile)</td>
    266 <td>nakasig (tilapia)</td>
    267 <td>full_tilapia-userdebug</td>
    268 </tr>
    269 <tr>
    270   <td>Galaxy Nexus (GSM/HSPA+)</td>
    271 <td>yakju (maguro)</td>
    272 <td>full_maguro-userdebug</td>
    273 </tr>
    274 <tr>
    275   <td>Galaxy Nexus (Verizon)</td>
    276 <td>mysid (toro)</td>
    277 <td>aosp_toro-userdebug</td>
    278 </tr>
    279 <tr>
    280   <td>Galaxy Nexus (Experimental)</td>
    281 <td>mysidspr (toroplus)</td>
    282 <td>aosp_toroplus-userdebug</td>
    283 </tr>
    284 <tr>
    285   <td>PandaBoard (Archived)</td>
    286 <td>panda</td>
    287 <td>aosp_panda-userdebug</td>
    288 </tr>
    289 <tr>
    290   <td>Motorola Xoom (U.S. Wi-Fi)</td>
    291 <td>wingray</td>
    292 <td>full_wingray-userdebug</td>
    293 </tr>
    294 <tr>
    295   <td>Nexus S</td>
    296 <td>soju (crespo)</td>
    297 <td>full_crespo-userdebug</td>
    298 </tr>
    299 <tr>
    300   <td>Nexus S 4G</td>
    301 <td>sojus (crespo4g)</td>
    302 <td>full_crespo4g-userdebug</td>
    303 </tr>
    304 </tbody>
    305 </table>
    306 <p>Do not use 4.1.1 on a Nexus 7 that was originally sold with 4.1.2
    307 or newer.</p>
    308 <h2 id="flashing-a-device">Flashing a device</h2>
    309 <p>Set the device in fastboot mode if necessary (see above).</p>
    310 <p>An entire Android system can be flashed in a single command: this writes
    311 the boot, recovery and system partitions together after verifying that the
    312 system being flashed is compatible with the installed bootloader and radio,
    313 and reboots the system. This also erases all the user data, similarly to
    314 <code>fastboot oem unlock</code> mentioned earlier.</p>
    315 <pre><code>$ fastboot -w flashall
    316 </code></pre>
    317 <p>Note that filesystems created via fastboot on Motorola Xoom aren't working
    318 optimally, and it is strongly recommended to re-create them through recovery</p>
    319 <pre><code>$ adb reboot recovery
    320 </code></pre>
    321 <p>Once in recovery, open the menu (press Power + Volume Up), wipe the cache
    322 partition, then wipe data.</p>
    323 <h2 id="restoring-a-device-to-its-original-factory-state">Restoring a device to
    324 its original factory state</h2>
    325 <p>Factory images for Nexus 5, Nexus 10, Nexus 4, Nexus Q, Nexus 7, Galaxy
    326 Nexus (GSM/HSPA+ "yakju" and "takju",
    327 and CDMA/LTE "mysid" and "mysidspr"), Nexus S, and Nexus S 4G are available
    328 from <a href="https://developers.google.com/android/nexus/images">Google's
    329 factory image</a> page.</p>
    330 <p>Factory images for the Motorola Xoom are distributed directly by Motorola.</p>
    331