blob: 25b5c9c4c46b126bafd7a6fa5ba5ce88498df887 [file] [log] [blame] [view]
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -07001<!--
2 Copyright 2010 The Android Open Source Project
3
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
7
8 http://www.apache.org/licenses/LICENSE-2.0
9
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
15-->
16
17# Building for devices #
18
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -070019This page complements the main page about [Building](building.html) with
20information that is specific to individual devices.
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -070021
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -080022With the current release, it is possible to build for
23Nexus 10, for Nexus 7, and for some variants of Galaxy Nexus.
24The exact level of functionality for each device depends on the availability
25of the relevant proprietary hardware-specific binaries.
Jean-Baptiste Queru35f51012011-12-14 09:32:22 -080026
Jean-Baptiste Queru71753982012-11-12 17:34:24 -080027All configurations of Nexus 10 can be used. On those devices, graphics, audio,
28Wi-Fi, Bluetooth, camera, NFC, GPS and orientation sensors are functional.
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -080029
30Nexus 4 cannot be used at the moment.
31
Jean-Baptiste Querua4f6f9b2012-11-09 12:40:10 -080032The Wi-Fi variants of Nexus 7 can be used. On Nexus 7, graphics and audio are
33functional, as well as Wi-Fi and Bluetooth. Due to hardware differences, do
Jean-Baptiste Queruc6dd1022012-10-04 14:00:14 -070034not use 4.1.1 on a Nexus 7 that was originally sold with 4.1.2 or newer.
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -080035The 3G variant is not supported.
Jean-Baptiste Queru35f51012011-12-14 09:32:22 -080036
Jean-Baptiste Queruc6dd1022012-10-04 14:00:14 -070037The variants of Galaxy Nexus that can be used are the GSM/HSPA+ configuration
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070038"maguro" (only if it was originally sold with a "yakju" or "takju" operating
39system) and the VZW CDMA/LTE configuration "toro". On those devices, graphics
Jean-Baptiste Querua4f6f9b2012-11-09 12:40:10 -080040and audio are functional, as well as Wi-Fi, Bluetooth, and access to the
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070041respective cellular networks. The orientation sensors are functional.
Jean-Baptiste Queru35f51012011-12-14 09:32:22 -080042
Jean-Baptiste Queruc6dd1022012-10-04 14:00:14 -070043The Sprint CDMA/LTE configuration "toroplus" of Galaxy Nexus is supported
44experimentally. On that configuration, the cellular network is not functional,
45and the other peripherals work like they do on "toro".
46
47The Motorola Xoom can be used in the Wi-Fi configuration "wingray"
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -080048sold in the USA, with Android 4.1.2. Graphics and audio are functional
Jean-Baptiste Querua4f6f9b2012-11-09 12:40:10 -080049as well as Wi-Fi and Bluetooth and the orientation sensors.
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -070050
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -080051All configurations of Nexus S and Nexus S 4G can be used with Android 4.1.2.
Jean-Baptiste Querua4f6f9b2012-11-09 12:40:10 -080052On those devices all the peripherals are functional: graphics, audio, Wi-Fi,
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -080053Bluetooth, cell networks, sensors, camera, hardware codecs, NFC, GPS.
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070054
55In addition, [PandaBoard](http://pandaboard.org) a.k.a. "panda" can be used
56in the master branch, but is considered experimental.
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -070057The specific details to use a PandaBoard with the Android Open-Source Project
58are in the file `device/ti/panda/README` in the source tree.
59
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070060Nexus One a.k.a. "passion" is obsolete, was experimental in gingerbread,
61and can't be used with newer versions of the Android Open-Source
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -070062Project.
63
64Android Developer Phones (ADP1 and ADP2, a.k.a. "dream" and "sapphire") are
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070065obsolete, were experimental in froyo, and can't be used with
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -070066newer versions of the Android Open-Source Project.
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -070067
68## Building fastboot and adb ##
69
70If you don't already have those tools, fastboot and adb can be built with
71the regular build system. Follow the instructions on the page about
72[building](building.html), and replace the main `make` command with
73
74 $ make fastboot adb
75
76## Booting into fastboot mode ##
77
78During a cold boot, the following key combinations can be used to boot into fastboot mode,
79which is a mode in the bootloader that can be used to flash the devices:
80
81Device | Keys
82---------|------
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -080083manta | Press and hold both *Volume Up* and *Volume Down*, then press and hold *Power*
84mako | Press and hold *Volume Down*, then press and hold *Power*
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070085grouper | Press *Power* for a second, and press *Volume Down* when the bootloader logo appears
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -080086tilapia | Press *Power* for a second, and press *Volume Down* when the bootloader logo appears
Jean-Baptiste Queru60a47f32012-10-08 14:55:09 -070087phantasm | Power the device, cover it with one hand after the LEDs light up and until they turn red
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -070088maguro | Press and hold both *Volume Up* and *Volume Down*, then press and hold *Power*
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070089toro | Press and hold both *Volume Up* and *Volume Down*, then press and hold *Power*
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -080090toroplus | Press and hold both *Volume Up* and *Volume Down*, then press and hold *Power*
Conley Owens9aaa52a2012-02-03 14:13:27 -080091panda | Press and hold *Input*, then press *Power*
Jean-Baptiste Queru35f51012011-12-14 09:32:22 -080092wingray | Press and hold *Volume Down*, then press and hold *Power*
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -070093crespo | Press and hold *Volume Up*, then press and hold *Power*
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070094crespo4g | Press and hold *Volume Up*, then press and hold *Power*
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -070095
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070096Also, the command `adb reboot bootloader` can be used to reboot from
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -070097Android directly into the bootloader with no key combinations.
98
99## Unlocking the bootloader ##
100
101It's only possible to flash a custom system if the bootloader allows it.
102
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -0800103The bootloader is locked by default. With the device in fastboot mode, the
Jean-Baptiste Queru35f51012011-12-14 09:32:22 -0800104bootloader is unlocked with
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700105
106 $ fastboot oem unlock
107
108The procedure must be confirmed on-screen, and deletes the user data for
109privacy reasons. It only needs to be run once.
110
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -0800111All data on the phone is erased, i.e. both the applications' private data
Jean-Baptiste Queru93afea92011-12-16 18:25:07 -0800112and the shared data that is accessible over USB, including photos and
113movies. Be sure to make a backup of any precious files you have before
114unlocking the bootloader.
115
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -0800116On Nexus 10, after unlocking the bootloader, the internal storage is
117left unformatted and must be formatted with
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700118
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -0800119 $ fastboot format cache
120 $ fastboot format userdata
121
122The bootloader can be locked back with
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700123
124 $ fastboot oem lock
125
Jean-Baptiste Queru93afea92011-12-16 18:25:07 -0800126Note that this erases user data on Xoom (including the shared USB data).
Jean-Baptiste Queru35f51012011-12-14 09:32:22 -0800127
Jean-Baptiste Queru5da75392011-05-17 14:32:56 -0700128## Obtaining proprietary binaries ##
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700129
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -0800130The Android Open-Source Project can't be used
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -0700131from pure source code only, and requires additional hardware-related proprietary
132libraries to run, specifically for hardware graphics acceleration.
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700133
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -0800134Official binaries for Nexus S, Nexus S 4G, Galaxy Nexus, Nexus 7, Nexus 4,
135Nexus 10 and PandaBoard
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -0700136can be downloaded from
Jean-Baptiste Queru66426b32012-04-20 07:14:05 -0700137[Google's Nexus driver page](https://developers.google.com/android/nexus/drivers),
Jean-Baptiste Queru5da75392011-05-17 14:32:56 -0700138which add access to additional hardware capabilities with non-Open-Source code.
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700139
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -0700140When using the master branch for a device, the binaries for the most
Jean-Baptiste Queru993d0b82012-04-19 17:24:35 -0700141recent numbered release are the ones that should be used in the master
142branch.
143
Jean-Baptiste Queru5da75392011-05-17 14:32:56 -0700144### Extracting the proprietary binaries ###
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700145
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -0700146Each set of binaries comes as a self-extracting script in a compressed archive.
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700147After uncompressing each archive, run the included self-extracting script
148from the root of the source tree, confirm that you agree to the terms of the
Jean-Baptiste Queru5da75392011-05-17 14:32:56 -0700149enclosed license agreement, and the binaries and their matching makefiles
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700150will get installed in the `vendor/` hierarchy of the source tree.
151
Jean-Baptiste Queru5da75392011-05-17 14:32:56 -0700152### Cleaning up when adding proprietary binaries ###
153
154In order to make sure that the newly installed binaries are properly
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700155taken into account after being extracted, the existing output of any previous
156build needs to be deleted with
157
158 $ make clobber
159
160## Picking and building the configuration that matches a device ##
161
162The steps to configure and build the Android Open-Source Project
163are described in the page about [Building](building.html).
164
165The recommended builds for the various devices are available through
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -0700166the lunch menu, accessed when running the `lunch` command with no arguments:
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700167
Jean-Baptiste Queru993d0b82012-04-19 17:24:35 -0700168Device | Branch | Build configuration
169---------|------------------------------|------------------------
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -0800170manta | android-4.2_r1 or master | full_manta-userdebug
171grouper | android-4.2_r1 or master | full_grouper-userdebug
172tipalia | android-4.2_r1 or master | full_tilapia-userdebug
173maguro | android-4.2_r1 or master | full_maguro-userdebug
174toro | android-4.2_r1 or master | full_toro-userdebug
Jean-Baptiste Queruc6dd1022012-10-04 14:00:14 -0700175toroplus | master | full_toroplus-userdebug
Jean-Baptiste Queru993d0b82012-04-19 17:24:35 -0700176panda | master | full_panda-userdebug
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -0800177wingray | android-4.1.2_r1 | full_wingray-userdebug
178crespo | android-4.1.2_r1 | full_crespo-userdebug
179crespo4g | android-4.1.2_r1 | full_crespo4g-userdebug
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700180
Jean-Baptiste Queruc6dd1022012-10-04 14:00:14 -0700181Do not use 4.1.1 on a Nexus 7 that was originally sold with 4.1.2
182or newer.
183
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700184## Flashing a device ##
185
186Set the device in fastboot mode if necessary (see above).
187
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700188An entire Android system can be flashed in a single command: this writes
Jean-Baptiste Queruccdda522011-05-19 10:47:27 -0700189the boot, recovery and system partitions together after verifying that the
Jean-Baptiste Queru61745ea2011-09-08 14:44:15 -0700190system being flashed is compatible with the installed bootloader and radio,
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -0700191and reboots the system. This also erases all the user data, similarly to
192`fastboot oem unlock` mentioned earlier.
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700193
194 $ fastboot -w flashall
195
Jean-Baptiste Queru35f51012011-12-14 09:32:22 -0800196Note that filesystems created via fastboot on Motorola Xoom aren't working
197optimally, and it is strongly recommended to re-create them through recovery
198
199 $ adb reboot recovery
200
201Once in recovery, open the menu (press Power + Volume Up), wipe the cache
202partition, then wipe data.
203
Jean-Baptiste Queru93afea92011-12-16 18:25:07 -0800204## Restoring a device to its original factory state ##
205
Jean-Baptiste Queru0318a192012-04-05 08:13:08 -0700206Factory images
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -0800207for Nexus 10,
208for Nexus 4,
209for Nexus Q,
210for Nexus 7 (all variants),
211for Galaxy Nexus (GSM/HSPA+ "yakju" and "takju",
212and CDMA/LTE "mysid" and "mysidspr"),
Jean-Baptiste Queru0318a192012-04-05 08:13:08 -0700213and
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -0700214for Nexus S and Nexus S 4G (all variants)
Jean-Baptiste Queru0318a192012-04-05 08:13:08 -0700215are available from
Jean-Baptiste Queru66426b32012-04-20 07:14:05 -0700216[Google's factory image page](https://developers.google.com/android/nexus/images).
Jean-Baptiste Queru93afea92011-12-16 18:25:07 -0800217
218Factory images for the Motorola Xoom are distributed directly by Motorola.