Merge "Update build numbers for LVY48E"
diff --git a/src/accessories/headset/requirements.jd b/src/accessories/headset/requirements.jd
index f8ed1e9..a9c1621 100644
--- a/src/accessories/headset/requirements.jd
+++ b/src/accessories/headset/requirements.jd
@@ -57,7 +57,7 @@
<h3 id=one_button>One button</h3>
-<img src="images/media_one.png" width="80%" alt="Button functions for one-button headsets handling a media stream.">
+<img src="images/media_one.png" alt="Button functions for one-button headsets handling a media stream.">
</span>
<p class="img-caption"><strong>Figure 1.</strong> Button functions for one-button headsets handling a media stream.</p>
diff --git a/src/devices/hal.jd b/src/devices/hal.jd
deleted file mode 100644
index e464a88..0000000
--- a/src/devices/hal.jd
+++ /dev/null
@@ -1,124 +0,0 @@
-page.title=The Hardware Abstraction Layer
-@jd:body
-
-<!--
- Copyright 2013 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>
- The hardware abstraction layer (HAL) defines a standard interface for hardware vendors to
- implement and allows Android to be agnostic about lower-level driver
- implementations. The HAL allows you to implement functionality
- without affecting or modifying the higher level system. HAL implementations
- are packaged into modules (<code>.so</code>) file and loaded by the Android
- system at the appropriate time.
-<h2 id="structure">
- Standard HAL structure
-</h2>
-<p>
- Each hardware-specific HAL interface has properties that are common to all HAL interfaces. These
- properties are defined in <code>hardware/libhardware/include/hardware/hardware.h</code> and
- guarantees that HALs have a predictable structure.
- This interface allows the Android system to load the correct versions of your
- HAL modules in a consistent way. There are two general components
- that a HAL interface consists of: a module and a device.
-</p>
-<p>
- A module represents your packaged HAL implementation, which is stored as a shared library (<code>.so file</code>). It contains
- metadata such as the version, name, and author of the module, which helps Android find and load it correctly. The
- <code>hardware/libhardware/include/hardware/hardware.h</code> header file defines a
- struct, <code>hw_module_t</code>, that represents a module and contains information such as
- the module version, author, and name.</p>
-
- <p>In addition, the <code>hw_module_t</code> struct contains
- a pointer to another struct, <code>hw_module_methods_t</code>, that contains a pointer to
- an "open" function for the module. This open function is used to initate communication with
- the hardware that the HAL is serving as an abstraction for. Each hardware-specific HAL usually
- extends the generic <code>hw_module_t</code> struct with additional information
- for that specific piece of hardware. For example in the camera HAL, the <code>camera_module_t</code> struct
- contains a <code>hw_module_t</code> struct along with other camera-specific function pointers:
-</p>
-
-<pre>
-typedef struct camera_module {
- hw_module_t common;
- int (*get_number_of_cameras)(void);
- int (*get_camera_info)(int camera_id, struct camera_info *info);
-} camera_module_t;
-</pre>
-
-<p>When you implement a HAL and create the module struct, you must name it
- <code>HAL_MODULE_INFO_SYM</code>. For instance, here is an example from the Galaxy Nexus audio HAL:</p>
-<pre>
-struct audio_module HAL_MODULE_INFO_SYM = {
- .common = {
- .tag = HARDWARE_MODULE_TAG,
- .module_api_version = AUDIO_MODULE_API_VERSION_0_1,
- .hal_api_version = HARDWARE_HAL_API_VERSION,
- .id = AUDIO_HARDWARE_MODULE_ID,
- .name = "Tuna audio HW HAL",
- .author = "The Android Open Source Project",
- .methods = &hal_module_methods,
- },
-};
-</pre>
-<p>
- A device abstracts the actual hardware of your product. For example, an audio module can contain
- a primary audio device, a USB audio device, or a Bluetooth A2DP audio device. A device
- is represented by the <code>hw_device_t</code> struct. Like a module, each type of device
- defines a more-detailed version of the generic <code>hw_device_t</code> that contains
- function pointers for specific features of the hardware. For example, the
- <code>audio_hw_device_t</code> struct type contains function pointers to audio device operations:
-</p>
-
-<pre>
-struct audio_hw_device {
- struct hw_device_t common;
-
- /**
- * used by audio flinger to enumerate what devices are supported by
- * each audio_hw_device implementation.
- *
- * Return value is a bitmask of 1 or more values of audio_devices_t
- */
- uint32_t (*get_supported_devices)(const struct audio_hw_device *dev);
- ...
-};
-typedef struct audio_hw_device audio_hw_device_t;
-</pre>
-
-<p>
- In addition to these standard properties, each hardware-specific HAL interface can define more of its
- own features and requirements. See the <a href="{@docRoot}guide/reference/files.html">HAL reference documentation</a>
- as well as the individual instructions for each HAL for more information on how to implement a specific interface.
-</p>
-
-<h2 id="modules">HAL modules</h2>
-<p>HAL implementations are built into modules (<code>.so</code>) files and are dynamically linked by Android when appropriate.
- You can build your modules by creating <code>Android.mk</code> files for each of your HAL implementations
- and pointing to your source files. In general, your shared libraries must be named in a certain format, so that
- they can be found and loaded properly. The naming scheme varies slightly from module to module, but they follow
- the general pattern of: <code><module_type>.<device_name></code>.</p>
-
- <p>For more information about setting up the build for each HAL, see its respective documentation.</p>
-
-</p>
diff --git a/src/index.jd b/src/index.jd
index 44dc6a4..7711873 100644
--- a/src/index.jd
+++ b/src/index.jd
@@ -42,6 +42,47 @@
<div class="landing-docs">
<div class="col-8">
<h3>What's New</h3>
+<a href="{@docRoot}index.html">
+ <h4>Google Feedback Integration</h4></a>
+ <p>Now every source.android.com page contains a prominent <strong>Send
+ Feedback</strong> button in the footer so partners and the open source community may
+ directly convey their desired improvements to this site.</p>
+
+<a href="{@docRoot}source/index.html">
+ <h4>Source and Devices tab Improvements</h4></a>
+ <p>The <strong><a href="{@docRoot}source/requirements.html">Download
+ and Building</a></strong> section of the <em>Source</em> tab has been reorganized to
+ match expected development workflow. <strong><a
+ href="{@docRoot}source/add-device.html">Adding a New Device</a></strong> has
+ been introduced to explain how Android Makefiles are produced. <strong><a
+ href="{@docRoot}source/using-repo.html">Using Repo</a></strong> now contains an
+ example for obtaining command-specific help. And the <em>Devices</em> main page now
+ describes the <strong><a href="{@docRoot}devices/index.html#structure">standard
+ hardware abstraction layer (HAL) structure</a></strong>.</p>
+
+<a href="{@docRoot}accessories/headset/index.html">
+ <h4>Audio Headset Requirements and Testing</h4></a>
+ <p><strong><a
+ href="{@docRoot}accessories/headset/requirements.html">Requirements</a></strong>
+ and <strong><a href="{@docRoot}accessories/headset/testing.html">Testing</a></strong>
+ information has been added for wired audio headsets. Those pages and the
+ existing specification have been moved to a distinct <strong><a
+ href="{@docRoot}accessories/headset/index.html">Headset</a></strong>
+ section.</p>
+
+<a href="{@docRoot}compatibility/downloads.html">
+ <h4>CTS 4.4 R4</h4></a>
+ <p>Packages for the 4.4 R4 version of the Android Compatibility Test
+ Suite (CTS) are available for <strong><a
+ href="/compatibility/downloads.html#android-44">download</a></strong>.</p>
+
+<a href="/source/build-numbers.html">
+ <h4>Build Numbers for Nexus 6 and Nexus Player</h4></a>
+ <p>Build numbers <strong><a
+ href="/source/build-numbers.html#source-code-tags-and-builds">LMY48J
+ and LYZ28J</a></strong> have been added for Nexus Player and Nexus 6
+ (T-Mobile ONLY), respectively.</p>
+
<a href="{@docRoot}devices/audio/latency_app.html#videos">
<h4>Videos and Other Resources for Audio Implementation</h4></a>
<p>The Audio team offers video on <strong><a
@@ -51,54 +92,6 @@
improving audio performance</a></strong> and related clarifications to text
throughout the <strong><a href="{@docRoot}devices/audio/index.html">Audio
section</a></strong>.</p>
-
-<a href="{@docRoot}compatibility/downloads.html">
- <h4>CTS 5.1 R2</h4></a>
- <p>Packages for the 5.1 R2 version of the Android Compatibility Test
- Suite (CTS) are available for <strong><a
- href="{@docRoot}compatibility/downloads.html#android-51">download</a></strong>.</p>
-
-<a href="{@docRoot}devices/tech/security/selinux/customize.html">
- <h4>SELinux neverallow Rules</h4></a>
- <p>New guidance has been offered on the use of Security-Enhanced Linux (SELinux) <strong><a
- href="{@docRoot}devices/tech/security/selinux/customize.html#neverallow"><code>neverallow</code>
- rules</a></strong>, which prohibit behavior that should never occur.</p>
-
-<a href="{@docRoot}source/build-numbers.html">
- <h4>Build Numbers for Nexus 6 and 7</h4></a>
- <p>Build numbers <strong><a
- href="{@docRoot}source/build-numbers.html#source-code-tags-and-builds">LYZ28E and
- LMY48G</a></strong> have been added for Nexus 6 (T-Mobile ONLY) and Nexus 7 (flo),
- respectively.</p>
-
-<a href="{@docRoot}devices/tech/security/overview/updates-resources.html">
- <h4>Security Updates and Resources</h4></a>
- <p><strong><a href="{@docRoot}devices/tech/security/overview/updates-resources.html">Security
- Updates and Resources</a></strong> has been rewritten entirely to describe the
- processes for <strong><a
- href="{@docRoot}devices/tech/security/overview/updates-resources.html#report-issues">reporting
- security issues</a></strong>, <strong><a
- href="{@docRoot}devices/tech/security/overview/updates-resources.html#triaging_bugs">triaging
- bugs</a></strong>,
- <strong><a
- href="{@docRoot}devices/tech/security/overview/updates-resources.html#notifying_partners">notifying
- partners</a></strong>, and much more.</p>
-
-<a href="{@docRoot}devices/tech/ota/sign_builds.html">
- <h4>Sign OTA Packages and Release Keys</h4></a>
- <p>Signing Builds for Release now contains sections on <strong><a
- href="{@docRoot}devices/tech/ota/sign_builds.html#release-keys">Release
- Keys</a></strong> and <strong><a
- href="{@docRoot}devices/tech/ota/sign_builds.html#sign-ota-packages">Signing OTA
- packages</a></strong> that provide easy recipes for signing flashable
- images and over-the-air (OTA) updates.</p>
-
-<a href="{@docRoot}compatibility/android-cdd.pdf">
- <h4>5.1 Compatibility Definition Document</h4></a>
- <p>The Android <strong><a
- href="{@docRoot}compatibility/android-cdd.pdf">5.1 Compatibility Definition
- Document (CDD)</a></strong> has been published to reflect the
- requirements of the latest version of Android.</p>
</div>
<div class="col-8">
@@ -130,7 +123,10 @@
<a href="https://android.googlesource.com/platform/docs/source.android.com/">
<h4>Help this Site</h4></a>
- <p>Please note, source.android.com is maintained in the Android Open Source Project. See the <strong><a
+ <p>Use the <strong>Send Feedback</strong> button at the bottom of any
+ page to request improvements to the content or identify errors. In addition,
+ source.android.com is maintained in the Android Open Source Project. See the
+ <strong><a
href="https://android.googlesource.com/platform/docs/source.android.com/+log/master">docs/source.android.com
project log in AOSP</a></strong> for the complete list of changes to this site.
Contribute your own updates to that same project and help maintain source.android.com.</p>
diff --git a/src/source/64-bit-builds.jd b/src/source/64-bit-builds.jd
index 2373886..ad174fb 100644
--- a/src/source/64-bit-builds.jd
+++ b/src/source/64-bit-builds.jd
@@ -1,4 +1,4 @@
-page.title=Android Platform 64-bit Build Instructions
+page.title=Understanding 64-bit Builds
@jd:body
<!--
diff --git a/src/source/configure-products.jd b/src/source/add-device.jd
similarity index 97%
rename from src/source/configure-products.jd
rename to src/source/add-device.jd
index 01fc788..8dd5c6b 100644
--- a/src/source/configure-products.jd
+++ b/src/source/add-device.jd
@@ -1,4 +1,4 @@
-page.title=Configuring the Products
+page.title=Adding a New Device
@jd:body
<!--
@@ -24,7 +24,10 @@
</div>
</div>
-<p>Use the information in this page to create the Makefiles for your device and product.</p>
+<p>Use the information in this page to create the Makefiles for your device and
+product. Please note, unlike the other pages in this section, the contents here
+are applicable only when creating an entirely new device type and are intended
+for company build and product teams only.</p>
<h2 id="build-layers">Understand Build Layers</h2>
diff --git a/src/source/building-dream.jd b/src/source/building-dream.jd
deleted file mode 100644
index 13ec46a..0000000
--- a/src/source/building-dream.jd
+++ /dev/null
@@ -1,62 +0,0 @@
-page.title=Building for an Android Dev Phone
-@jd:body
-
-<!--
- Copyright 2013 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><em>The information on this page is a bit out of date. We'll update this
-page as soon as we can.</em></p>
-<p>The basic manifest for 1.6 defines which projects are
-needed to do a generic build for the emulator or for unlocked Dream devices
-(e.g. the Android Dev Phone 1). You need to have an appropriate device running
-a matching official image.</p>
-<p>To build donut for dream (your
-device needs to be an ADP1 running an official 1.6 system):</p>
-<ol>
-<li>
-<p>Follow the <a href="downloading.html">normal steps</a> to setup repo and check out the sources.</p>
-</li>
-<li>
-<p>At the root of your source tree, run <code>. build/envsetup.sh</code> like you normally would for an emulator build.</p>
-</li>
-<li>
-<p>Run <code>make adb</code> if you don't already have adb in your path.</p>
-</li>
-<li>
-<p>run <code>adb root</code>.</p>
-</li>
-<li>
-<p>in <code>vendor/htc/dream-open/</code> there is a script called "extract-files.sh" that must be run (from that directory) to extract some proprietary binaries from your device (*). You only need to do this once.</p>
-</li>
-<li>
-<p>run <code>lunch aosp_dream_us-eng</code> to specifically configure the build system for dream (the default is the equivalent of "lunch generic-eng", which doesn't contain dream-specific files).</p>
-</li>
-<li>
-<p>run make from the top of the source tree.</p>
-</li>
-<li>
-<p>from this point, the fastboot tool (which is put automatically in your path) can be used to flash a device: boot the device into the bootloader by holding the back key while pressing the power key, and run <code>fastboot -w flashall</code>.</p>
-</li>
-</ol>
-<p class="note"><strong>Note:</strong> These instructions work for the sapphire (ADP2) build target, as
-well. Simply replace "dream" with "sapphire" above.</p>
diff --git a/src/source/building-running.jd b/src/source/building-running.jd
deleted file mode 100644
index d9eb0bf..0000000
--- a/src/source/building-running.jd
+++ /dev/null
@@ -1,158 +0,0 @@
-page.title=Building the System
-@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>The following instructions to build the Android source tree apply to all
-branches, including <code>master</code>. The basic sequence of build commands
-is as follows:</p>
-
-<h2 id="initialize">Initialize</h2>
-<p>Initialize the environment with the <code>envsetup.sh</code> script. Note
-that replacing <code>source</code> with <code>.</code> (a single dot) saves a few characters,
-and the short form is more commonly used in documentation.</p>
-<pre><code>$ source build/envsetup.sh
-</code></pre>
-<p>or</p>
-<pre><code>$ . build/envsetup.sh
-</code></pre>
-
-<h2 id="choose-a-target">Choose a Target</h2>
-<p>Choose which target to build with <code>lunch</code>. The exact configuration can be passed as
-an argument. For example, the following command:</p>
-<pre><code>$ lunch aosp_arm-eng
-</code></pre>
-<p>refers to a complete build for the emulator, with all debugging enabled.</p>
-<p>If run with no arguments <code>lunch</code> will prompt you to choose a target from the menu. </p>
-<p>All build targets take the form <code>BUILD-BUILDTYPE</code>, where the <code>BUILD</code> is a codename
-referring to the particular feature combination.</p>
-
-<p>The BUILDTYPE is one of the following:</p>
-<table>
-<thead>
-<tr>
-<th>Buildtype</th>
-<th>Use</th>
-</tr>
-</thead>
-<tbody>
-<tr>
-<td>user</td>
-<td>limited access; suited for production</td>
-</tr>
-<tr>
-<td>userdebug</td>
-<td>like "user" but with root access and debuggability; preferred for debugging</td>
-</tr>
-<tr>
-<td>eng</td>
-<td>development configuration with additional debugging tools</td>
-</tr>
-</tbody>
-</table>
-<p>For more information about building for and running on actual hardware, see
-<a href="building-devices.html">Building for Devices</a>.</p>
-
-<h2 id="build-the-code">Build the code</h2>
-<p>Build everything with <code>make</code>. GNU make can handle parallel
-tasks with a <code>-jN</code> argument, and it's common to use a number of
-tasks N that's between 1 and 2 times the number of hardware
-threads on the computer being used for the build. For example, on a
-dual-E5520 machine (2 CPUs, 4 cores per CPU, 2 threads per core),
-the fastest builds are made with commands between <code>make -j16</code> and
-<code>make -j32</code>.</p>
-<pre><code>$ make -j4
-</code></pre>
-<h2 id="run-it">Run It!</h2>
-<p>You can either run your build on an emulator or flash it on a device. Please note that you have already selected your build target with <code>lunch</code>, and it is unlikely at best to run on a different target than it was built for.</p>
-<h3 id="flash-a-device">Flash a Device</h3>
-<p>To flash a device, you will need to use <code>fastboot</code>, which should be included in your path after a successful build. Place the device in fastboot mode either manually by holding the appropriate key combination at boot, or from the shell with</p>
-<pre><code>$ adb reboot bootloader
-</code></pre>
-<p>Once the device is in fastboot mode, run </p>
-<pre><code>$ fastboot flashall -w
-</code></pre>
-<p>The <code>-w</code> option wipes the <code>/data</code> partition on the device; this is useful for your first time flashing a particular device but is otherwise unnecessary.</p>
-<p>For more information about building for and running on actual hardware, see
-<a href="building-devices.html">Building for Devices.</a></p>
-<h3 id="emulate-an-android-device">Emulate an Android Device</h3>
-<p>The emulator is added to your path automatically by the build process. To run the emulator, type</p>
-<pre><code>$ emulator
-</code></pre>
-<h2 id="using-ccache">Using ccache</h2>
-<p>ccache is a compiler cache for C and C++ that can help make builds faster.
-In the root of the source tree, do the following:</p>
-<pre><code>$ export USE_CCACHE=1
-$ export CCACHE_DIR=/<path_of_your_choice>/.ccache
-$ prebuilts/misc/linux-x86/ccache/ccache -M 50G
-</code></pre>
-<p>The suggested cache size is 50-100G.</p>
-<p>On Linux, you can watch ccache being used by doing the following:</p>
-<pre><code>$ watch -n1 -d prebuilts/misc/linux-x86/ccache/ccache -s
-</code></pre>
-<p>On Mac OS, you should replace <code>linux-x86</code> with <code>darwin-x86</code>.</p>
-<p>When using Ice Cream Sandwich (4.0.x) or older, you should replace
-<code>prebuilts/misc</code> with <code>prebuilt</code>.</p>
-<h2 id="troubleshooting-common-build-errors">Troubleshooting Common Build Errors</h2>
-<h3 id="wrong-java-version">Wrong Java Version</h3>
-<p>If you are attempting to build a version of Android inconsistent with your
-version of Java, <code>make</code> will abort with a message such as</p>
-<pre><code>************************************************************
-You are attempting to build with the incorrect version
-of java.
-
-Your version is: WRONG_VERSION.
-The correct version is: RIGHT_VERSION.
-
-Please follow the machine setup instructions at
- https://source.android.com/source/download.html
-************************************************************
-</code></pre>
-<p>This may be caused by:</p>
-<ul>
-<li>
-<p>Failing to install the correct JDK as specified in <a href="initializing.html">Initializing the Build Environment</a>.</p>
-</li>
-<li>
-<p>Another JDK previously installed appearing in your path. Prepend the correct JDK to the beginning of your PATH or remove the problematic JDK.</p>
-</li>
-</ul>
-<h3 id="python-version-3">Python Version 3</h3>
-<p>Repo is built on particular functionality from Python 2.x and is unfortunately incompatible with Python 3. In order to use repo, please install Python 2.x:</p>
-<pre><code>$ apt-get install python
-</code></pre>
-<h3 id="case-insensitive-filesystem">Case Insensitive Filesystem</h3>
-<p>If you are building on an HFS filesystem on Mac OS, you may encounter an error such as</p>
-<pre><code>************************************************************
-You are building on a case-insensitive filesystem.
-Please move your source tree to a case-sensitive filesystem.
-************************************************************
-</code></pre>
-<p>Please follow the instructions in <a href="initializing.html">Initializing the Build Environment</a> for creating a case-sensitive disk image.</p>
-<h3 id="no-usb-permission">No USB Permission</h3>
-<p>On most Linux systems, unprivileged users cannot access USB ports by default. If you see a permission denied error, follow the instructions
-<a href="initializing.html">Initializing the Build Environment</a> for configuring USB access. </p>
-<p>If adb was already running and cannot connect to the device after
-getting those rules set up, it can be killed with <code>adb kill-server</code>.
-That will cause adb to restart with the new configuration.</p>
diff --git a/src/source/building.jd b/src/source/building.jd
index 78401da..ecb52db 100644
--- a/src/source/building.jd
+++ b/src/source/building.jd
@@ -1,8 +1,8 @@
-page.title=Downloading and Building
+page.title=Building the System
@jd:body
<!--
- Copyright 2014 The Android Open Source Project
+ 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.
@@ -16,50 +16,143 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-<p>The Android build is routinely tested in-house on recent versions of
-Ubuntu LTS (14.04), but most distributions should have the required
-build tools available. We welcome reports of successes or failures on other
-distributions.</p>
+<div id="qv-wrapper">
+ <div id="qv">
+ <h2>In this document</h2>
+ <ol id="auto-toc">
+ </ol>
+ </div>
+</div>
-<p>Before you download and build the Android source, ensure your system meets
-the following requirements:</p>
+<p>The following instructions to build the Android source tree apply to all
+branches, including <code>master</code>. The basic sequence of build commands
+is as follows:</p>
+<h2 id="initialize">Set up environment</h2>
+<p>Initialize the environment with the <code>envsetup.sh</code> script. Note
+that replacing <code>source</code> with <code>.</code> (a single dot) saves a few characters,
+and the short form is more commonly used in documentation.</p>
+<pre><code>$ source build/envsetup.sh
+</code></pre>
+<p>or</p>
+<pre><code>$ . build/envsetup.sh
+</code></pre>
+
+<h2 id="choose-a-target">Choose a Target</h2>
+<p>Choose which target to build with <code>lunch</code>. The exact configuration can be passed as
+an argument. For example, the following command:</p>
+<pre><code>$ lunch aosp_arm-eng
+</code></pre>
+<p>refers to a complete build for the emulator, with all debugging enabled.</p>
+<p>If run with no arguments <code>lunch</code> will prompt you to choose a target from the menu. </p>
+<p>All build targets take the form <code>BUILD-BUILDTYPE</code>, where the <code>BUILD</code> is a codename
+referring to the particular feature combination.</p>
+
+<p>The BUILDTYPE is one of the following:</p>
+<table>
+<thead>
+<tr>
+<th>Buildtype</th>
+<th>Use</th>
+</tr>
+</thead>
+<tbody>
+<tr>
+<td>user</td>
+<td>limited access; suited for production</td>
+</tr>
+<tr>
+<td>userdebug</td>
+<td>like "user" but with root access and debuggability; preferred for debugging</td>
+</tr>
+<tr>
+<td>eng</td>
+<td>development configuration with additional debugging tools</td>
+</tr>
+</tbody>
+</table>
+<p>For more information about building for and running on actual hardware, see
+<a href="running.html">Running Builds</a>.</p>
+
+<h2 id="build-the-code">Build the code</h2>
+<p>Build everything with <code>make</code>. GNU make can handle parallel
+tasks with a <code>-jN</code> argument, and it's common to use a number of
+tasks N that's between 1 and 2 times the number of hardware
+threads on the computer being used for the build. For example, on a
+dual-E5520 machine (2 CPUs, 4 cores per CPU, 2 threads per core),
+the fastest builds are made with commands between <code>make -j16</code> and
+<code>make -j32</code>.</p>
+<pre><code>$ make -j4
+</code></pre>
+<h2 id="run-it">Run It!</h2>
+<p>You can either run your build on an emulator or flash it on a device. Please note that you have already selected your build target with <code>lunch</code>, and it is unlikely at best to run on a different target than it was built for.</p>
+<h3 id="flash-a-device">Flash a Device</h3>
+<p>To flash a device, you will need to use <code>fastboot</code>, which should be included in your path after a successful build. Place the device in fastboot mode either manually by holding the appropriate key combination at boot, or from the shell with</p>
+<pre><code>$ adb reboot bootloader
+</code></pre>
+<p>Once the device is in fastboot mode, run </p>
+<pre><code>$ fastboot flashall -w
+</code></pre>
+<p>The <code>-w</code> option wipes the <code>/data</code> partition on the device; this is useful for your first time flashing a particular device but is otherwise unnecessary.</p>
+<p>For more information about building for and running on actual hardware, see
+<a href="running.html">Running Builds</a>.</p>
+<h3 id="emulate-an-android-device">Emulate an Android Device</h3>
+<p>The emulator is added to your path automatically by the build process. To run the emulator, type</p>
+<pre><code>$ emulator
+</code></pre>
+<h2 id="using-ccache">Using ccache</h2>
+<p>ccache is a compiler cache for C and C++ that can help make builds faster.
+In the root of the source tree, do the following:</p>
+<pre><code>$ export USE_CCACHE=1
+$ export CCACHE_DIR=/<path_of_your_choice>/.ccache
+$ prebuilts/misc/linux-x86/ccache/ccache -M 50G
+</code></pre>
+<p>The suggested cache size is 50-100G.</p>
+<p>On Linux, you can watch ccache being used by doing the following:</p>
+<pre><code>$ watch -n1 -d prebuilts/misc/linux-x86/ccache/ccache -s
+</code></pre>
+<p>On Mac OS, you should replace <code>linux-x86</code> with <code>darwin-x86</code>.</p>
+<p>When using Ice Cream Sandwich (4.0.x) or older, you should replace
+<code>prebuilts/misc</code> with <code>prebuilt</code>.</p>
+<h2 id="troubleshooting-common-build-errors">Troubleshooting Common Build Errors</h2>
+<h3 id="wrong-java-version">Wrong Java Version</h3>
+<p>If you are attempting to build a version of Android inconsistent with your
+version of Java, <code>make</code> will abort with a message such as</p>
+<pre><code>************************************************************
+You are attempting to build with the incorrect version
+of java.
+
+Your version is: WRONG_VERSION.
+The correct version is: RIGHT_VERSION.
+
+Please follow the machine setup instructions at
+ https://source.android.com/source/download.html
+************************************************************
+</code></pre>
+<p>This may be caused by:</p>
<ul>
-
- <li>A Linux or Mac OS system. It is also possible
- to build Android in a virtual machine on unsupported systems such as Windows.
- If you are running Linux in a virtual machine, you need at
- least 16GB of RAM/swap and 100GB or more of disk space in order to
- build the Android tree. See disk size requirements below.
- </li>
-
- <li>A 64-bit environment is required for Gingerbread (2.3.x) and newer versions, including the master
- branch. You can compile older versions on 32-bit systems.
- </li>
-
- <li>At least 100GB of free disk space for a checkout, 150GB for a single
- build, and 200GB or more for multiple builds. If you employ ccache, you will
- need even more space.</p>
- </li>
-
- <li>
- Python 2.6 -- 2.7, which you can download from <a href="http://www.python.org/download/">python.org</a>.</p>
- </li>
-
- <li>
- GNU Make 3.81 -- 3.82, which you can download from <a href="http://ftp.gnu.org/gnu/make/">gnu.org</a>,</p>
- </li>
-
- <li>
- JDK 7 to build the master branch of Android in the <a
- href="https://android.googlesource.com/">Android Open Source Project
- (AOSP)</a>; JDK 6 to build Gingerbread through KitKat; JDK 5 for Cupcake through
- Froyo. See <a href="initializing.html">Initializing a Build Environment</a>
- for installation instructions by operating system.</p>
- </li>
-
- <li>
- Git 1.7 or newer. You can find it at <a href="http://git-scm.com/download">git-scm.com</a>.</p>
- </li>
-
+<li>
+<p>Failing to install the correct JDK as specified in <a href="initializing.html">Initializing the Build Environment</a>.</p>
+</li>
+<li>
+<p>Another JDK previously installed appearing in your path. Prepend the correct JDK to the beginning of your PATH or remove the problematic JDK.</p>
+</li>
</ul>
+<h3 id="python-version-3">Python Version 3</h3>
+<p>Repo is built on particular functionality from Python 2.x and is unfortunately incompatible with Python 3. In order to use repo, please install Python 2.x:</p>
+<pre><code>$ apt-get install python
+</code></pre>
+<h3 id="case-insensitive-filesystem">Case Insensitive Filesystem</h3>
+<p>If you are building on an HFS filesystem on Mac OS, you may encounter an error such as</p>
+<pre><code>************************************************************
+You are building on a case-insensitive filesystem.
+Please move your source tree to a case-sensitive filesystem.
+************************************************************
+</code></pre>
+<p>Please follow the instructions in <a href="initializing.html">Initializing the Build Environment</a> for creating a case-sensitive disk image.</p>
+<h3 id="no-usb-permission">No USB Permission</h3>
+<p>On most Linux systems, unprivileged users cannot access USB ports by default. If you see a permission denied error, follow the instructions
+<a href="initializing.html">Initializing the Build Environment</a> for configuring USB access. </p>
+<p>If adb was already running and cannot connect to the device after
+getting those rules set up, it can be killed with <code>adb kill-server</code>.
+That will cause adb to restart with the new configuration.</p>
diff --git a/src/source/cla-corporate.jd b/src/source/cla-corporate.jd
deleted file mode 100644
index efed92e..0000000
--- a/src/source/cla-corporate.jd
+++ /dev/null
@@ -1,81 +0,0 @@
-page.title=Corporate Contributor License Agreement
-@jd:body
-
-<!--
- Copyright 2013 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>In order to clarify the intellectual property license granted with Contributions from any person or entity, the Android Open Source Project (the "Project") must have a Contributor License Grant ("Grant") on file that has been signed by each Contributor, indicating agreement to the license terms below. This license is for your protection as a Contributor as well as the protection of the Project and the Android Open Source Project Leads (the "Project Leads"); it does not change your rights to use your own Contributions for any other purpose.</p>
-<p>This version of the Grant allows an entity (the "Corporation") to submit Contributions to the Project Leads, to authorize Contributions submitted by its designated employees to the Project Leads, and to grant copyright and patent licenses thereto. If you have not already done so, please complete and send an original signed Grant to</p>
-<blockquote>
- Google Inc.<br/>
- Attn: Open Source Program Office<br/>
- 1600 Amphitheatre Pkwy<br/>
- Building 43<br/>
- Mountain View, CA 94043<br/>
- U.S.A.
-</blockquote>
-
-<p>Scanned agreements may also be emailed in PDF form to cla-submissions@google.com.</p>
-<p>If necessary, you may send it by facsimile to (650) 887-1625. Please read this document carefully before signing and keep a copy for your records.</p>
-<pre>Corporation name: ___________________________________________________<br><br><br><br>Corporation address: ________________________________________________<br><br><br><br>_____________________________________________________________________<br><br><br><br>_____________________________________________________________________<br><br><br><br>Point of Contact: ___________________________________________________<br><br><br><br>E-Mail: ____________________________________________________________<br><br><br><br>Telephone: _____________________<br><br><br><br>Fax: ___________________________<br><br></pre>
-
-<p>You accept and agree to the following terms and conditions for Your present and future Contributions submitted to the Project. Except for the license granted herein to the Project Leads and recipients of software distributed by the Project Leads, You reserve all right, title, and interest in and to Your Contributions.</p>
-<ol>
-<li>
-<p>Definitions.</p>
-<p>"You" (or "Your") shall mean the copyright owner or legal entity authorized by the copyright owner that is making this Grant to the Project Leads. For legal entities, the entity making a Contribution and all other entities that control, are controlled by, or are under common control with that entity are considered to be a single Contributor. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.</p>
-<p>"Contribution" shall mean the code, documentation or other original works of authorship expressly identified in Schedule B, as well as any original work of authorship, including any modifications or additions to an existing work, that is intentionally submitted by You to the Project Leads for inclusion in, or documentation of, any of the products managed or maintained by the Project Leads (the "Work"). For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Project Leads or their representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Project Leads for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by You as "Not a Contribution."</p>
-</li>
-<li>
-<p>Grant of Copyright License. Subject to the terms and conditions of this Grant, You hereby grant to the Project Leads and to recipients of software distributed by the Project Leads a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Your Contributions and such derivative works.</p>
-</li>
-<li>
-<p>Grant of Patent License. Subject to the terms and conditions of this Grant, You hereby grant to the Project Leads and to recipients of software distributed by the Project Leads a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by You that are necessarily infringed by Your Contribution(s) alone or by combination of Your Contribution(s) with the Work to which such Contribution(s) was submitted. If any entity institutes patent litigation against You or any other entity (including a cross-claim or counterclaim in a lawsuit) alleging that your Contribution, or the Work to which you have contributed, constitutes direct or contributory patent infringement, then any patent licenses granted to that entity under this Grant for that Contribution or Work shall terminate as of the date such litigation is filed.</p>
-</li>
-<li>
-<p>You represent that You are legally entitled to grant the above license. You represent further that each employee of the Corporation designated on Schedule A below (or in a subsequent written modification to that Schedule) is authorized to submit Contributions on behalf of the Corporation.</p>
-</li>
-<li>
-<p>You represent that each of Your Contributions is Your original creation (see section 7 for submissions on behalf of others).</p>
-</li>
-<li>
-<p>You are not expected to provide support for Your Contributions, except to the extent You desire to provide support. You may provide support for free, for a fee, or not at all. Unless required by applicable law or agreed to in writing, You provide Your Contributions on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE.</p>
-</li>
-<li>
-<p>Should You wish to submit work that is not Your original creation, You may submit it to the Project Leads separately from any Contribution, identifying the complete details of its source and of any license or other restriction (including, but not limited to, related patents, trademarks, and license agreements) of which you are personally aware, and conspicuously marking the work as "Submitted on behalf of a third-party: [named here]".<br></p></p>
-</li>
-<li>
-<p>It is your responsibility to notify the Project Leads when any change is required to the list of designated employees authorized to submit Contributions on behalf of the Corporation, or to the Corporation's Point of Contact with the Project.</p>
-</li>
-</ol>
-<pre>
-<br><br>
-Please sign: __________________________________ Date: _______________<br><br>
-Title: _______________________________________________________________<br><br>
-Corporation: __________________________________________________________
-</pre>
-
-<h3 id="schedule-a">Schedule A</h3>
-<p>[Initial list of designated employees. NB: authorization is not tied to particular Contributions.]</p>
-<h3 id="schedule-b">Schedule B</h3>
-<p>[Identification of optional concurrent software grant. Would be left blank or omitted if there is no concurrent software grant.]</p>
diff --git a/src/source/cla-corporate.pdf b/src/source/cla-corporate.pdf
deleted file mode 100644
index 09dc022..0000000
--- a/src/source/cla-corporate.pdf
+++ /dev/null
Binary files differ
diff --git a/src/source/cla-individual.jd b/src/source/cla-individual.jd
deleted file mode 100644
index 27f32cf..0000000
--- a/src/source/cla-individual.jd
+++ /dev/null
@@ -1,63 +0,0 @@
-page.title=Contributor License Agreement for Individuals
-@jd:body
-
-<div id="qv-wrapper">
- <div id="qv">
- <h2>In this document</h2>
- <ol id="auto-toc">
- </ol>
- </div>
-</div>
-
-<p><em>Please visit the <a href="https://android-review.googlesource.com/#/settings/new-agreement">code review tool</a>
-to execute the grant online.This page provides the text of the Individual Contributor License Grant for your quick review.</em></p>
-<p>In order to clarify the intellectual property license granted with Contributions from any person or entity, the Android Open Source Project (the "Project") must have a Contributor License Grant ("Grant") on file that has been signed by each Contributor, indicating agreement to the license terms below. This license is for your protection as a Contributor as well as the protection of the Project and the Android Open Source Project Leads (the "Project Leads"); it does not change your rights to use your own Contributions for any other purpose. If you have not already done so, please complete and send an original signed Grant to</p>
-<blockquote>
- Google Inc.<br/>
- Attn: Open Source Program Office<br/>
- 1600 Amphitheatre Pkwy<br/>
- Building 43<br/>
- Mountain View, CA 94043<br/>
- U.S.A.
-</blockquote>
-
-<p>Scanned agreements may also be emailed in PDF form to
-cla-submissions@google.com, sent by facsimile to (650) 887-1625, or
-<a href="https://android-review.googlesource.com/#/settings/new-agreement">signed electronically</a>.</p>
-<p>Please read this document carefully before signing and keep a copy for your records.</p>
-<pre>
-<br><br>
-Full name: ____________________________ E-Mail: ______________________<br><br>
-Mailing Address: ______________________ Telephone: ___________________<br><br>
-_______________________________________ Facsimile: ___________________<br><br>
-_______________________________________ Country: ___________________
-</pre>
-
-<p>You accept and agree to the following terms and conditions for Your present and future Contributions submitted to the Project. Except for the license granted herein to the Project Leads and recipients of software distributed by the Project Leads, You reserve all right, title, and interest in and to Your Contributions.</p>
-<ol>
-<li>
-<p>Definitions. </p>
-<p>"You" (or "Your") shall mean the copyright owner or legal entity authorized by the copyright owner that is making this Grant. For legal entities, the entity making a Contribution and all other entities that control, are controlled by, or are under common control with that entity are considered to be a single Contributor. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. "Contribution" shall mean any original work of authorship, including any modifications or additions to an existing work, that is intentionally submitted by You to the Project Leads for inclusion in, or documentation of, any of the products managed or maintained by the Project Leads (the "Work"). For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Project Leads or their representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Project Leads for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by You as "Not a Contribution."</p>
-</li>
-<li>
-<p>Grant of Copyright License. Subject to the terms and conditions of this Grant, You hereby grant to the Project Leads and to recipients of software distributed by the Project Leads a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Your Contributions and such derivative works.</p>
-</li>
-<li>
-<p>Grant of Patent License. Subject to the terms and conditions of this Grant, You hereby grant to the Project Leads and to recipients of software distributed by the Project Leads a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by You that are necessarily infringed by Your Contribution(s) alone or by combination of Your Contribution(s) with the Work to which such Contribution(s) was submitted. If any entity institutes patent litigation against You or any other entity (including a cross-claim or counterclaim in a lawsuit) alleging that your Contribution, or the Work to which you have contributed, constitutes direct or contributory patent infringement, then any patent licenses granted to that entity under this Grant for that Contribution or Work shall terminate as of the date such litigation is filed.</p>
-</li>
-<li>
-<p>You represent that you are legally entitled to grant the above license. If your employer(s) has rights to intellectual property that you create that includes your Contributions, you represent that you have received permission to make Contributions on behalf of that employer, that your employer has waived such rights for your Contributions to the Project Leads, or that your employer has executed a separate Corporate Contributor License Grant with the Project Leads.</p>
-</li>
-<li>
-<p>You represent that each of Your Contributions is Your original creation (see section 7 for submissions on behalf of others). You represent that Your Contribution submissions include complete details of any third-party license or other restriction (including, but not limited to, related patents and trademarks) of which you are personally aware and which are associated with any part of Your Contributions.</p>
-</li>
-<li>
-<p>You are not expected to provide support for Your Contributions, except to the extent You desire to provide support. You may provide support for free, for a fee, or not at all. Unless required by applicable law or agreed to in writing, You provide Your Contributions on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON- INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE.</p>
-</li>
-<li>
-<p>Should You wish to submit work that is not Your original creation, You may submit it to the Project Leads separately from any Contribution, identifying the complete details of its source and of any license or other restriction (including, but not limited to, related patents, trademarks, and license agreements) of which you are personally aware, and conspicuously marking the work as "Submitted on behalf of a third-party: [named here]".<br></p></p>
-</li>
-<li>
-<p>You agree to notify the Project Leads of any facts or circumstances of which you become aware that would make these representations inaccurate in any respect.</p>
-</li>
-</ol>
diff --git a/src/source/community/groups-charter.jd b/src/source/community/groups-charter.jd
deleted file mode 100644
index d743041..0000000
--- a/src/source/community/groups-charter.jd
+++ /dev/null
@@ -1,43 +0,0 @@
-page.title=Android Discussion Groups Charter
-@jd:body
-
-<div id="qv-wrapper">
- <div id="qv">
- <h2>In this document</h2>
- <ol id="auto-toc">
- </ol>
- </div>
-</div>
-
-<h2 id="audience">Audience</h2>
-<p>
-These discussion groups are intended for developers working with the Android platform. Everyone is welcome to join in, provided you follow our community's policies described below. Our users help each other, and many experts post to these groups, including members of the Open Handset Alliance.
-</p>
-<p>
-No topic is off-limits, provided it relates to Android in some way. However, since these are very busy lists, search the archives before posting your question; you may find your question has already been answered.
-</p>
-
-<h2 id="mailing">Mailing list rules</h2>
-<p>We love simplicity and hate restrictions, so we keep our policies minimal. The rules
-below describe what's expected of subscribers to the Android mailing lists.</h2>
-
-<ul>
- <li><em>Please be friendly</em>: Showing courtesy and respect to others is a vital part of the Android culture, and we expect everyone participating in the Android community to join us in accepting nothing less. Being courteous does not mean we can't constructively disagree with each other, but it does mean that we must be polite when we do so. There's never a reason to be antagonistic or dismissive toward anyone; if you think there is, think again before you post. Mobile development is serious business, but it's also a lot of fun. Let's keep it that way. Let's strive to be one of the friendliest communities in all of open source.
- </li>
- <li><em>Allowed discussion topics<em>: Most of our groups are for technical discussions of Android or users helping each other. Generally we don't put hard restrictions on the topics discussed in the group: as long as the topic is relevant to Android in some way, it's welcome on our groups. We welcome announcements and discussion of products, libraries, publications, and other interesting Android-related news, but please do not cross-post. Post only to the most relevant group for your message. We even welcome (polite!) discussion of articles and ideas critical of Android--after all, we can't improve if we don't listen.
- </li>
- <li><em>Working Lists</em>: Some of our groups are considered "working lists", by which we mean that the list is intended to be used in support of the completion of specific tasks. On these groups, we don't welcome off-topic conversations, and will generally ask you to take general discussions to a different list. Since these are lists where people are trying to get work done, we will be pretty aggressive about keeping the noise level low. We ask that you respect our contributors' time and keep general discussions to appropriate lists.
- </li>
- <li><em>Spam</em>: We hate spam almost as passionately as we love courtesy and respect, so we reserve the right to limit discussions that amount to spam. Outright spam will result in the spammer being immediately and permanently banned from the list.
- </li>
-</ul>
-<p>
-The most important rule is friendliness. Remember: disrespect and rudeness are not welcome in our community under any circumstances. We don't have a formal policy on dealing with troublemakers, and we hope we never need one. That said, we do pledge to do our best to be fair, and we will always try to warn someone before banning him or her.
-</p>
-<h2 id="contacting">Contacting the moderators</h2>
-<p>
-If you see anyone being rude, call them out on it. This is your group too, and you don't have to accept someone else being disrespectful just because it wasn't directed at you. Just remember to be polite and courteous yourself! Don't add fuel to the fire.
-</p>
-<p>
-But if you see an outrageous violation, want to report spam, feel very strongly about something, or even if you just want to chat, then contact the mailing list's owners. It's what we're here for!
-</p>
\ No newline at end of file
diff --git a/src/source/flashing.jd b/src/source/flashing.jd
deleted file mode 100644
index 06c8e2b..0000000
--- a/src/source/flashing.jd
+++ /dev/null
@@ -1,29 +0,0 @@
-page.title=Flashing
-@jd:body
-
-<!--
- Copyright 2013 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.
--->
-<p>To flash a device, you will need to use <code>fastboot</code>. Place the device in fastboot mode either manually by holding the appropriate key combination at boot, or from the shell with</p>
-<pre><code>$ adb reboot bootloader
-</code></pre>
-<p>Once the device is in fastboot mode, run </p>
-<pre><code>$ fastboot flashall -w
-</code></pre>
-<p>The <code>-w</code> option wipes the <code>/data</code> partition on the device; this is useful for your first time flashing a particular device, but is otherwise unnecessary.</p>
-<h1 id="emulating">Emulating</h1>
-<p>To run the emulator, type</p>
-<pre><code>$ emulator
-</code></pre>
diff --git a/src/source/getting-started.jd b/src/source/getting-started.jd
deleted file mode 100644
index 7c93494..0000000
--- a/src/source/getting-started.jd
+++ /dev/null
@@ -1,22 +0,0 @@
-page.title=Getting Started
-@jd:body
-
-<!--
- Copyright 2013 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.
--->
-<p>Thanks for your interest in Android! To begin working with the platform, whether
-you're creating a custom version of Android for existing devices or if you are
-building a hardware device from scratch, you'll need to set up your machine to download and build the
-source.
diff --git a/src/source/git-repo.html b/src/source/git-repo.html
deleted file mode 100644
index e85ebc2..0000000
--- a/src/source/git-repo.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<html>
-<head>
-<meta http-equiv="refresh" content="0;url=/source/developing.html" />
-</head>
-<body>
-</body>
-</html>
diff --git a/src/source/git-resources.jd b/src/source/git-resources.jd
index 5606b2d..0d15bac 100644
--- a/src/source/git-resources.jd
+++ b/src/source/git-resources.jd
@@ -1,4 +1,4 @@
-page.title=Git Resources
+page.title=Learning Git
@jd:body
<!--
diff --git a/src/source/initializing.jd b/src/source/initializing.jd
index 6c52343..bf2e528 100644
--- a/src/source/initializing.jd
+++ b/src/source/initializing.jd
@@ -1,4 +1,4 @@
-page.title=Initializing a Build Environment
+page.title=Establishing a Build Environment
@jd:body
<!--
@@ -47,9 +47,10 @@
<p>For Gingerbread (2.3.x) and newer versions, including the <code>master</code>
branch, a 64-bit environment is required. Older versions can be
compiled on 32-bit systems.</p>
-<p class="note"><strong>Note:</strong> See the <a href="building.html">Downloading and
-Building</a> page for the list of hardware and software requirements. Then
-follow the detailed instructions for Ubuntu and Mac OS below.</p>
+<p class="note"><strong>Note:</strong> See the <a
+href="requirements.html">Requirements</a> for the complete list of hardware and
+software requirements. Then follow the detailed instructions for Ubuntu and Mac
+OS below.</p>
<h3 id="installing-the-jdk">Installing the JDK</h3>
<p>The <code>master</code> branch of Android in the <a
@@ -66,7 +67,7 @@
</code></pre>
<p>If you encounter version errors for Java, set its
-path as described in the <a href="building-running.html#wrong-java-version">Wrong
+path as described in the <a href="building.html#wrong-java-version">Wrong
Java Version</a> section.</p>
<p>To develop older versions of Android, download and install the corresponding version of the <a
diff --git a/src/source/overview.html b/src/source/overview.html
deleted file mode 100644
index b8f56fc..0000000
--- a/src/source/overview.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<html>
-<head>
-<meta http-equiv="refresh" content="0;url=/source/index.html" />
-</head>
-<body>
-</body>
-</html>
diff --git a/src/source/requirements.jd b/src/source/requirements.jd
new file mode 100644
index 0000000..c063ca3
--- /dev/null
+++ b/src/source/requirements.jd
@@ -0,0 +1,64 @@
+page.title=Requirements
+@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.
+-->
+<p>The Android build is routinely tested in-house on recent versions of
+Ubuntu LTS (14.04), but most distributions should have the required
+build tools available.</p>
+
+<p>Before you download and build the Android source, ensure your system meets
+the following requirements:</p>
+
+<ul>
+
+ <li>A Linux or Mac OS system. It is also possible
+ to build Android in a virtual machine on unsupported systems such as Windows.
+ If you are running Linux in a virtual machine, you need at
+ least 16GB of RAM/swap and 100GB or more of disk space in order to
+ build the Android tree. See disk size requirements below.
+ </li>
+
+ <li>A 64-bit environment is required for Gingerbread (2.3.x) and newer versions, including the master
+ branch. You can compile older versions on 32-bit systems.
+ </li>
+
+ <li>At least 100GB of free disk space for a checkout, 150GB for a single
+ build, and 200GB or more for multiple builds. If you employ ccache, you will
+ need even more space.</p>
+ </li>
+
+ <li>
+ Python 2.6 -- 2.7, which you can download from <a href="http://www.python.org/download/">python.org</a>.</p>
+ </li>
+
+ <li>
+ GNU Make 3.81 -- 3.82, which you can download from <a href="http://ftp.gnu.org/gnu/make/">gnu.org</a>,</p>
+ </li>
+
+ <li>
+ JDK 7 to build the master branch of Android in the <a
+ href="https://android.googlesource.com/">Android Open Source Project
+ (AOSP)</a>; JDK 6 to build Gingerbread through KitKat; JDK 5 for Cupcake through
+ Froyo. See <a href="initializing.html">Initializing a Build Environment</a>
+ for installation instructions by operating system.</p>
+ </li>
+
+ <li>
+ Git 1.7 or newer. You can find it at <a href="http://git-scm.com/download">git-scm.com</a>.</p>
+ </li>
+
+</ul>
diff --git a/src/source/building-devices.jd b/src/source/running.jd
similarity index 96%
rename from src/source/building-devices.jd
rename to src/source/running.jd
index f0d978e..393bb16 100644
--- a/src/source/building-devices.jd
+++ b/src/source/running.jd
@@ -1,4 +1,4 @@
-page.title=Building for devices
+page.title=Running Builds
@jd:body
<!--
@@ -25,7 +25,7 @@
</div>
<p>This page complements the main page about
-<a href="building-running.html">Building and Running</a> with
+<a href="building.html">Building the System</a> with
information that is specific to individual devices.</p>
<h2 class="nexus-devices">Nexus devices</h2>
@@ -54,7 +54,8 @@
<h2 id="building-fastboot-and-adb">Building fastboot and adb</h2>
<p>If you don't already have those tools, fastboot and adb can be built with
the regular build system. Follow the instructions on the page about
-<a href="building-running.html">Building and Running</a>, and replace the main <code>make</code> command with</p>
+<a href="building.html">Building a System</a>, and replace the main
+<code>make</code> command with:</p>
<pre><code>$ make fastboot adb
</code></pre>
@@ -194,8 +195,6 @@
<pre><code>$ make clobber
</code></pre>
<h2 id="picking-and-building-the-configuration-that-matches-a-device">Picking and building the configuration that matches a device</h2>
-<p>The steps to configure and build the Android Open Source Project
-are described in the <a href="building.html">Building</a> page.</p>
<p>The recommended builds for the various devices are available through
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>
<p><a href="https://developers.google.com/android/nexus/images">https://developers.google.com/android/nexus/images</a></p>
diff --git a/src/source/source_toc.cs b/src/source/source_toc.cs
index cbe8191..52b5bac 100644
--- a/src/source/source_toc.cs
+++ b/src/source/source_toc.cs
@@ -33,18 +33,16 @@
<li class="nav-section">
<div class="nav-section-header">
- <a href="<?cs var:toroot ?>source/building.html">
+ <a href="<?cs var:toroot ?>source/requirements.html">
<span class="en">Downloading and Building</span>
</a>
</div>
<ul>
- <li><a href="<?cs var:toroot ?>source/initializing.html">Initializing the Build Environment</a></li>
+ <li><a href="<?cs var:toroot ?>source/initializing.html">Establishing a Build Environment</a></li>
<li><a href="<?cs var:toroot ?>source/downloading.html">Downloading the Source</a></li>
- <li><a href="<?cs var:toroot ?>source/configure-products.html">Configuring the Products</a></li>
- <li><a href="<?cs var:toroot ?>source/building-running.html">Building and Running</a></li>
- <li><a href="<?cs var:toroot ?>source/building-devices.html">Building for Devices</a></li>
+ <li><a href="<?cs var:toroot ?>source/building.html">Building the System</a></li>
+ <li><a href="<?cs var:toroot ?>source/running.html">Running Builds</a></li>
<li><a href="<?cs var:toroot ?>source/building-kernels.html">Building Kernels</a></li>
- <li><a href="<?cs var:toroot ?>source/64-bit-builds.html">64-bit Build Instructions</a></li>
<li><a href="<?cs var:toroot ?>source/known-issues.html">Known Issues</a></li>
</ul>
</li>
@@ -57,7 +55,9 @@
<ul>
<li><a href="<?cs var:toroot ?>source/using-repo.html">Using Repo</a></li>
<li><a href="<?cs var:toroot ?>source/using-eclipse.html">Using Eclipse</a></li>
- <li><a href="<?cs var:toroot ?>source/git-resources.html">Git Resources</a></li>
+ <li><a href="<?cs var:toroot ?>source/git-resources.html">Learning Git</a></li>
+ <li><a href="<?cs var:toroot ?>source/add-device.html">Adding a New Device</a></li>
+ <li><a href="<?cs var:toroot ?>source/64-bit-builds.html">Understanding 64-bit Builds</a></li>
</ul>
</li>
diff --git a/src/source/version-control.html b/src/source/version-control.html
deleted file mode 100644
index e85ebc2..0000000
--- a/src/source/version-control.html
+++ /dev/null
@@ -1,7 +0,0 @@
-<html>
-<head>
-<meta http-equiv="refresh" content="0;url=/source/developing.html" />
-</head>
-<body>
-</body>
-</html>