blob: 36e14406f9c627c8640a208729a0fe5f4a72b920 [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 Queru5955ba52012-11-09 10:59:40 -080027All configurations of Nexus 10 can be used, and on those
28devices all the peripherals are functional: graphics, audio, Wifi, Bluetooth,
29sensors, cameras, hardware codecs, NFC, GPS.
30
31Nexus 4 cannot be used at the moment.
32
33The WiFi variants of Nexus 7 can be used. On Nexus 7, graphics and audio are
Jean-Baptiste Queruc6dd1022012-10-04 14:00:14 -070034functional, as well as WiFi and Bluetooth. Due to hardware differences, do
35not 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 -080036The 3G variant is not supported.
Jean-Baptiste Queru35f51012011-12-14 09:32:22 -080037
Jean-Baptiste Queruc6dd1022012-10-04 14:00:14 -070038The variants of Galaxy Nexus that can be used are the GSM/HSPA+ configuration
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070039"maguro" (only if it was originally sold with a "yakju" or "takju" operating
40system) and the VZW CDMA/LTE configuration "toro". On those devices, graphics
41and audio are functional, as well as WiFi, Bluetooth, and access to the
42respective cellular networks. The orientation sensors are functional.
Jean-Baptiste Queru35f51012011-12-14 09:32:22 -080043
Jean-Baptiste Queruc6dd1022012-10-04 14:00:14 -070044The Sprint CDMA/LTE configuration "toroplus" of Galaxy Nexus is supported
45experimentally. On that configuration, the cellular network is not functional,
46and the other peripherals work like they do on "toro".
47
48The Motorola Xoom can be used in the Wi-Fi configuration "wingray"
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -080049sold in the USA, with Android 4.1.2. Graphics and audio are functional
50as well as WiFi and Bluetooth and the orientation sensors.
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -070051
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -080052All configurations of Nexus S and Nexus S 4G can be used with Android 4.1.2.
53On those devices all the peripherals are functional: graphics, audio, Wifi,
54Bluetooth, cell networks, sensors, camera, hardware codecs, NFC, GPS.
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070055
56In addition, [PandaBoard](http://pandaboard.org) a.k.a. "panda" can be used
57in the master branch, but is considered experimental.
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -070058The specific details to use a PandaBoard with the Android Open-Source Project
59are in the file `device/ti/panda/README` in the source tree.
60
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070061Nexus One a.k.a. "passion" is obsolete, was experimental in gingerbread,
62and can't be used with newer versions of the Android Open-Source
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -070063Project.
64
65Android Developer Phones (ADP1 and ADP2, a.k.a. "dream" and "sapphire") are
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070066obsolete, were experimental in froyo, and can't be used with
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -070067newer versions of the Android Open-Source Project.
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -070068
69## Building fastboot and adb ##
70
71If you don't already have those tools, fastboot and adb can be built with
72the regular build system. Follow the instructions on the page about
73[building](building.html), and replace the main `make` command with
74
75 $ make fastboot adb
76
77## Booting into fastboot mode ##
78
79During a cold boot, the following key combinations can be used to boot into fastboot mode,
80which is a mode in the bootloader that can be used to flash the devices:
81
82Device | Keys
83---------|------
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -080084manta | Press and hold both *Volume Up* and *Volume Down*, then press and hold *Power*
85mako | Press and hold *Volume Down*, then press and hold *Power*
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070086grouper | Press *Power* for a second, and press *Volume Down* when the bootloader logo appears
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -080087tilapia | Press *Power* for a second, and press *Volume Down* when the bootloader logo appears
Jean-Baptiste Queru60a47f32012-10-08 14:55:09 -070088phantasm | 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 -070089maguro | Press and hold both *Volume Up* and *Volume Down*, then press and hold *Power*
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070090toro | Press and hold both *Volume Up* and *Volume Down*, then press and hold *Power*
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -080091toroplus | Press and hold both *Volume Up* and *Volume Down*, then press and hold *Power*
Conley Owens9aaa52a2012-02-03 14:13:27 -080092panda | Press and hold *Input*, then press *Power*
Jean-Baptiste Queru35f51012011-12-14 09:32:22 -080093wingray | Press and hold *Volume Down*, then press and hold *Power*
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -070094crespo | Press and hold *Volume Up*, then press and hold *Power*
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070095crespo4g | Press and hold *Volume Up*, then press and hold *Power*
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -070096
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070097Also, the command `adb reboot bootloader` can be used to reboot from
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -070098Android directly into the bootloader with no key combinations.
99
100## Unlocking the bootloader ##
101
102It's only possible to flash a custom system if the bootloader allows it.
103
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -0800104The bootloader is locked by default. With the device in fastboot mode, the
Jean-Baptiste Queru35f51012011-12-14 09:32:22 -0800105bootloader is unlocked with
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700106
107 $ fastboot oem unlock
108
109The procedure must be confirmed on-screen, and deletes the user data for
110privacy reasons. It only needs to be run once.
111
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -0800112All data on the phone is erased, i.e. both the applications' private data
Jean-Baptiste Queru93afea92011-12-16 18:25:07 -0800113and the shared data that is accessible over USB, including photos and
114movies. Be sure to make a backup of any precious files you have before
115unlocking the bootloader.
116
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -0800117On Nexus 10, after unlocking the bootloader, the internal storage is
118left unformatted and must be formatted with
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700119
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -0800120 $ fastboot format cache
121 $ fastboot format userdata
122
123The bootloader can be locked back with
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700124
125 $ fastboot oem lock
126
Jean-Baptiste Queru93afea92011-12-16 18:25:07 -0800127Note that this erases user data on Xoom (including the shared USB data).
Jean-Baptiste Queru35f51012011-12-14 09:32:22 -0800128
Jean-Baptiste Queru5da75392011-05-17 14:32:56 -0700129## Obtaining proprietary binaries ##
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700130
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -0800131The Android Open-Source Project can't be used
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -0700132from pure source code only, and requires additional hardware-related proprietary
133libraries to run, specifically for hardware graphics acceleration.
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700134
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -0800135Official binaries for Nexus S, Nexus S 4G, Galaxy Nexus, Nexus 7, Nexus 4,
136Nexus 10 and PandaBoard
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -0700137can be downloaded from
Jean-Baptiste Queru66426b32012-04-20 07:14:05 -0700138[Google's Nexus driver page](https://developers.google.com/android/nexus/drivers),
Jean-Baptiste Queru5da75392011-05-17 14:32:56 -0700139which add access to additional hardware capabilities with non-Open-Source code.
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700140
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -0700141When using the master branch for a device, the binaries for the most
Jean-Baptiste Queru993d0b82012-04-19 17:24:35 -0700142recent numbered release are the ones that should be used in the master
143branch.
144
Jean-Baptiste Queru5da75392011-05-17 14:32:56 -0700145### Extracting the proprietary binaries ###
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700146
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -0700147Each set of binaries comes as a self-extracting script in a compressed archive.
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700148After uncompressing each archive, run the included self-extracting script
149from the root of the source tree, confirm that you agree to the terms of the
Jean-Baptiste Queru5da75392011-05-17 14:32:56 -0700150enclosed license agreement, and the binaries and their matching makefiles
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700151will get installed in the `vendor/` hierarchy of the source tree.
152
Jean-Baptiste Queru5da75392011-05-17 14:32:56 -0700153### Cleaning up when adding proprietary binaries ###
154
155In order to make sure that the newly installed binaries are properly
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700156taken into account after being extracted, the existing output of any previous
157build needs to be deleted with
158
159 $ make clobber
160
161## Picking and building the configuration that matches a device ##
162
163The steps to configure and build the Android Open-Source Project
164are described in the page about [Building](building.html).
165
166The recommended builds for the various devices are available through
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -0700167the lunch menu, accessed when running the `lunch` command with no arguments:
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700168
Jean-Baptiste Queru993d0b82012-04-19 17:24:35 -0700169Device | Branch | Build configuration
170---------|------------------------------|------------------------
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -0800171manta | android-4.2_r1 or master | full_manta-userdebug
172grouper | android-4.2_r1 or master | full_grouper-userdebug
173tipalia | android-4.2_r1 or master | full_tilapia-userdebug
174maguro | android-4.2_r1 or master | full_maguro-userdebug
175toro | android-4.2_r1 or master | full_toro-userdebug
Jean-Baptiste Queruc6dd1022012-10-04 14:00:14 -0700176toroplus | master | full_toroplus-userdebug
Jean-Baptiste Queru993d0b82012-04-19 17:24:35 -0700177panda | master | full_panda-userdebug
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -0800178wingray | android-4.1.2_r1 | full_wingray-userdebug
179crespo | android-4.1.2_r1 | full_crespo-userdebug
180crespo4g | android-4.1.2_r1 | full_crespo4g-userdebug
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700181
Jean-Baptiste Queruc6dd1022012-10-04 14:00:14 -0700182Do not use 4.1.1 on a Nexus 7 that was originally sold with 4.1.2
183or newer.
184
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700185## Flashing a device ##
186
187Set the device in fastboot mode if necessary (see above).
188
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700189An entire Android system can be flashed in a single command: this writes
Jean-Baptiste Queruccdda522011-05-19 10:47:27 -0700190the boot, recovery and system partitions together after verifying that the
Jean-Baptiste Queru61745ea2011-09-08 14:44:15 -0700191system being flashed is compatible with the installed bootloader and radio,
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -0700192and reboots the system. This also erases all the user data, similarly to
193`fastboot oem unlock` mentioned earlier.
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700194
195 $ fastboot -w flashall
196
Jean-Baptiste Queru35f51012011-12-14 09:32:22 -0800197Note that filesystems created via fastboot on Motorola Xoom aren't working
198optimally, and it is strongly recommended to re-create them through recovery
199
200 $ adb reboot recovery
201
202Once in recovery, open the menu (press Power + Volume Up), wipe the cache
203partition, then wipe data.
204
Jean-Baptiste Queru93afea92011-12-16 18:25:07 -0800205## Restoring a device to its original factory state ##
206
Jean-Baptiste Queru0318a192012-04-05 08:13:08 -0700207Factory images
Jean-Baptiste Queru5955ba52012-11-09 10:59:40 -0800208for Nexus 10,
209for Nexus 4,
210for Nexus Q,
211for Nexus 7 (all variants),
212for Galaxy Nexus (GSM/HSPA+ "yakju" and "takju",
213and CDMA/LTE "mysid" and "mysidspr"),
Jean-Baptiste Queru0318a192012-04-05 08:13:08 -0700214and
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -0700215for Nexus S and Nexus S 4G (all variants)
Jean-Baptiste Queru0318a192012-04-05 08:13:08 -0700216are available from
Jean-Baptiste Queru66426b32012-04-20 07:14:05 -0700217[Google's factory image page](https://developers.google.com/android/nexus/images).
Jean-Baptiste Queru93afea92011-12-16 18:25:07 -0800218
219Factory images for the Motorola Xoom are distributed directly by Motorola.