blob: 9c2ab82483307487e75625dd85e268b853ccc28b [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 Queruc10820f2012-07-17 13:33:48 -070022With the current release, it is possible to build for Nexus 7, for some
23variants of Galaxy Nexus, for a variant of the Motorola Xoom, and for
24all variants of Nexus S and Nexus S 4G. The exact level of functionality
25for each device depends on the availability of the relevant proprietary
26hardware-specific binaries.
Jean-Baptiste Queru35f51012011-12-14 09:32:22 -080027
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070028All variants of Nexus 7 can be used. On Nexus 7, graphics and audio are
29functional, as well as WiFi and Bluetooth.
Jean-Baptiste Queru35f51012011-12-14 09:32:22 -080030
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070031The variants of Galaxy Nexus that be used are the GSM/HSPA+ configuration
32"maguro" (only if it was originally sold with a "yakju" or "takju" operating
33system) and the VZW CDMA/LTE configuration "toro". On those devices, graphics
34and audio are functional, as well as WiFi, Bluetooth, and access to the
35respective cellular networks. The orientation sensors are functional.
Jean-Baptiste Queru35f51012011-12-14 09:32:22 -080036
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070037The Motorola Xoom is can be used in the Wi-Fi configuration "wingray"
38sold in the USA. Graphics and audio are functional as well as WiFi and
39Bluetooth and the orientation sensors.
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -070040
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070041All configurations of Nexus S and Nexus S 4G can be used, and on those
42devices all the peripherals are functional: graphics, audio, Wifi, Bluetooth,
43cell networks, sensors, camera, hardware codecs, NFC, GPS.
44
45In addition, [PandaBoard](http://pandaboard.org) a.k.a. "panda" can be used
46in the master branch, but is considered experimental.
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -070047The specific details to use a PandaBoard with the Android Open-Source Project
48are in the file `device/ti/panda/README` in the source tree.
49
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070050Nexus One a.k.a. "passion" is obsolete, was experimental in gingerbread,
51and can't be used with newer versions of the Android Open-Source
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -070052Project.
53
54Android Developer Phones (ADP1 and ADP2, a.k.a. "dream" and "sapphire") are
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070055obsolete, were experimental in froyo, and can't be used with
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -070056newer versions of the Android Open-Source Project.
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -070057
58## Building fastboot and adb ##
59
60If you don't already have those tools, fastboot and adb can be built with
61the regular build system. Follow the instructions on the page about
62[building](building.html), and replace the main `make` command with
63
64 $ make fastboot adb
65
66## Booting into fastboot mode ##
67
68During a cold boot, the following key combinations can be used to boot into fastboot mode,
69which is a mode in the bootloader that can be used to flash the devices:
70
71Device | Keys
72---------|------
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070073grouper | Press *Power* for a second, and press *Volume Down* when the bootloader logo appears
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -070074maguro | Press and hold both *Volume Up* and *Volume Down*, then press and hold *Power*
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070075toro | Press and hold both *Volume Up* and *Volume Down*, then press and hold *Power*
Conley Owens9aaa52a2012-02-03 14:13:27 -080076panda | Press and hold *Input*, then press *Power*
Jean-Baptiste Queru35f51012011-12-14 09:32:22 -080077wingray | Press and hold *Volume Down*, then press and hold *Power*
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -070078crespo | Press and hold *Volume Up*, then press and hold *Power*
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070079crespo4g | Press and hold *Volume Up*, then press and hold *Power*
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -070080passion | Press and hold the trackball, then press *Power*
81sapphire | Press and hold *Back*, then press *Power*
82dream | Press and hold *Back*, then press *Power*
83
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070084Also, the command `adb reboot bootloader` can be used to reboot from
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -070085Android directly into the bootloader with no key combinations.
86
87## Unlocking the bootloader ##
88
89It's only possible to flash a custom system if the bootloader allows it.
90
91This is the default setup on ADP1 and ADP2.
92
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -070093On Nexus One, Nexus S, Nexus S 4G, Xoom, Galaxy Nexus, and Nexus 7,
Jean-Baptiste Queru35f51012011-12-14 09:32:22 -080094the bootloader is locked by default. With the device in fastboot mode, the
95bootloader is unlocked with
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -070096
97 $ fastboot oem unlock
98
99The procedure must be confirmed on-screen, and deletes the user data for
100privacy reasons. It only needs to be run once.
101
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -0700102Note that on the Nexus S, Nexus S 4G, Motorola Xoom, Galaxy Nexus,
103and on Nexus 7,
Jean-Baptiste Queru93afea92011-12-16 18:25:07 -0800104all data on the phone is erased, i.e. both the applications' private data
105and the shared data that is accessible over USB, including photos and
106movies. Be sure to make a backup of any precious files you have before
107unlocking the bootloader.
108
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700109On Nexus One, the operation voids the warranty and is irreversible.
110
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -0700111On Nexus S, Nexus S 4G, Xoom, Galaxy Nexus, and Nexus 7,
Jean-Baptiste Queru35f51012011-12-14 09:32:22 -0800112the bootloader can be locked back with
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700113
114 $ fastboot oem lock
115
Jean-Baptiste Queru93afea92011-12-16 18:25:07 -0800116Note that this erases user data on Xoom (including the shared USB data).
Jean-Baptiste Queru35f51012011-12-14 09:32:22 -0800117
Jean-Baptiste Queru5da75392011-05-17 14:32:56 -0700118## Obtaining proprietary binaries ##
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700119
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -0700120Starting with Ice Cream Sandwich, the Android Open-Source Project can't be used
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -0700121from pure source code only, and requires additional hardware-related proprietary
122libraries to run, specifically for hardware graphics acceleration.
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700123
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -0700124Official binaries for Nexus S, Nexus S 4G, Galaxy Nexus, Nexus 7, and PandaBoard
125can be downloaded from
Jean-Baptiste Queru66426b32012-04-20 07:14:05 -0700126[Google's Nexus driver page](https://developers.google.com/android/nexus/drivers),
Jean-Baptiste Queru5da75392011-05-17 14:32:56 -0700127which add access to additional hardware capabilities with non-Open-Source code.
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700128
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -0700129When using the master branch for a device, the binaries for the most
Jean-Baptiste Queru993d0b82012-04-19 17:24:35 -0700130recent numbered release are the ones that should be used in the master
131branch.
132
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -0700133There are limited binaries for Nexus One, and none for ADP2 or ADP1.
Jean-Baptiste Queru5da75392011-05-17 14:32:56 -0700134
135### Extracting the proprietary binaries ###
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700136
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -0700137Each set of binaries comes as a self-extracting script in a compressed archive.
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700138After uncompressing each archive, run the included self-extracting script
139from the root of the source tree, confirm that you agree to the terms of the
Jean-Baptiste Queru5da75392011-05-17 14:32:56 -0700140enclosed license agreement, and the binaries and their matching makefiles
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700141will get installed in the `vendor/` hierarchy of the source tree.
142
Jean-Baptiste Queru5da75392011-05-17 14:32:56 -0700143### Cleaning up when adding proprietary binaries ###
144
145In order to make sure that the newly installed binaries are properly
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700146taken into account after being extracted, the existing output of any previous
147build needs to be deleted with
148
149 $ make clobber
150
151## Picking and building the configuration that matches a device ##
152
153The steps to configure and build the Android Open-Source Project
154are described in the page about [Building](building.html).
155
156The recommended builds for the various devices are available through
Jean-Baptiste Queru3e466b02011-10-06 14:34:00 -0700157the lunch menu, accessed when running the `lunch` command with no arguments:
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700158
Jean-Baptiste Queru993d0b82012-04-19 17:24:35 -0700159Device | Branch | Build configuration
160---------|------------------------------|------------------------
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -0700161grouper | android-4.1.1_r4 or master | full_grouper-userdebug
162maguro | android-4.1.1_r4 or master | full_maguro-userdebug
163toro | android-4.1.1_r4 or master | full_toro-userdebug
Jean-Baptiste Queru993d0b82012-04-19 17:24:35 -0700164panda | master | full_panda-userdebug
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -0700165wingray | android-4.1.1_r4 or master | full_wingray-userdebug
166crespo | android-4.1.1_r4 or master | full_crespo-userdebug
167crespo4g | android-4.1.1_r4 or master | full_crespo4g-userdebug
Jean-Baptiste Queru993d0b82012-04-19 17:24:35 -0700168passion | android-2.3.7_r1 | full_passion-userdebug
169sapphire | android-2.2.3_r1 | full_sapphire-userdebug
170dream | android-2.2.3_r1 | full_dream-userdebug
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700171
172## Flashing a device ##
173
174Set the device in fastboot mode if necessary (see above).
175
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700176An entire Android system can be flashed in a single command: this writes
Jean-Baptiste Queruccdda522011-05-19 10:47:27 -0700177the boot, recovery and system partitions together after verifying that the
Jean-Baptiste Queru61745ea2011-09-08 14:44:15 -0700178system being flashed is compatible with the installed bootloader and radio,
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -0700179and reboots the system. This also erases all the user data, similarly to
180`fastboot oem unlock` mentioned earlier.
Jean-Baptiste Querub4d39b42011-04-11 13:53:58 -0700181
182 $ fastboot -w flashall
183
Jean-Baptiste Queru35f51012011-12-14 09:32:22 -0800184Note that filesystems created via fastboot on Motorola Xoom aren't working
185optimally, and it is strongly recommended to re-create them through recovery
186
187 $ adb reboot recovery
188
189Once in recovery, open the menu (press Power + Volume Up), wipe the cache
190partition, then wipe data.
191
Jean-Baptiste Queru93afea92011-12-16 18:25:07 -0800192## Restoring a device to its original factory state ##
193
Jean-Baptiste Queru0318a192012-04-05 08:13:08 -0700194Factory images
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -0700195for Nexus 7,
196for Galaxy Nexus (GSM/HSPA+ "yakju" and "takju", and CDMA/LTE "mysid"),
Jean-Baptiste Queru0318a192012-04-05 08:13:08 -0700197and
Jean-Baptiste Queruc10820f2012-07-17 13:33:48 -0700198for Nexus S and Nexus S 4G (all variants)
Jean-Baptiste Queru0318a192012-04-05 08:13:08 -0700199are available from
Jean-Baptiste Queru66426b32012-04-20 07:14:05 -0700200[Google's factory image page](https://developers.google.com/android/nexus/images).
Jean-Baptiste Queru93afea92011-12-16 18:25:07 -0800201
202Factory images for the Motorola Xoom are distributed directly by Motorola.
203
Jean-Baptiste Queru0318a192012-04-05 08:13:08 -0700204No factory images are available for Nexus One.