blob: 206d75afc724d42bd88ba12c6e9b37d5bf25c923 [file] [log] [blame]
<html devsite>
<head>
<title>Requirements</title>
<meta name="project_path" value="/_project.yaml" />
<meta name="book_path" value="/_book.yaml" />
</head>
<body>
<!--
Copyright 2017 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>
Before you download and build the Android source, ensure your system meets
the following requirements then see <a href="initializing.html">Establishing
a Build Environment</a> for installation instructions by operating system.
</p>
<h2 id=hardware-requirements>Hardware requirements</h2>
<p>
Your development workstation should meet or exceed these hardware
requirements:
</p>
<ul>
<li>A 64-bit environment is required for Android 2.3.x (Gingerbread) and
higher versions, including the master branch. You can compile older versions
on 32-bit systems.
</li>
<li>At least 250GB of free disk space to checkout the code and an extra 150GB
to build it. If you conduct multiple builds, you will need even more space.
<aside class="note"><strong>Note:</strong> If you are checking out a mirror
you will need more space as full Android Open Source Project (AOSP) mirrors
contain all Git repositories that have ever been used.</aside>
</li>
<li>If you are running Linux in a virtual machine, you need at
least 16GB of RAM/swap.
</li>
</ul>
<h2 id=software-requirements>Software requirements</h2>
<p>
The <a href="https://android.googlesource.com/" class="external">Android Open
Source Project (AOSP)</a> <code>master</code> branch is traditionally
developed and tested on Ubuntu Long Term Support (LTS) releases, but other
distributions may be used. See the list below for recommended versions.
</p>
<p>
Your workstation must have the software listed below. See
<a href="initializing.html">Establishing a Build Environment</a> for
additional required packages and the commands to install them.
</p>
<p>
These requirements apply to the AOSP master branch. For Android
versions 8.0 (Oreo or O) through 5.0 (Lollipop or L), consider using the included
<a href="https://android.googlesource.com/platform/build/+/master/tools/docker">Dockerfile</a>
to ease installation of all required packages. For the manual method, see
<a href="older-versions">Supporting Older Versions</a>.
</p>
<h3 id=os>OS</h3>
<p>
If you are developing against the AOSP <code>master</code> branch, use one of these operating
systems: Ubuntu 14.04 (Trusty) or the latest versions of Mac OS and Xcode with Command Line Tools
installed.
</p>
<h3 id=jdk>JDK</h3>
<p>
The <code>master</code> branch of Android in AOSP comes with a prebuilt version of OpenJDK, so no
additional installation is required.
</p>
<p>Older versions of Android require a separate installation of the JDK. On Ubuntu, use OpenJDK. See
<a href="older-versions">Supporting Older Versions</a> for precise versions and instructions.
<h3 id=packages>Key packages</h3>
<p>
The AOSP master branch comes with a prebuilt version of Make, so no additional installation is
required.
</p>
<ul>
<li><a href="http://ftp.gnu.org/gnu/make/" class="external">GNU Make 3.81 to 3.82</a> for older
versions</li>
<li><a href="http://www.python.org/download/" class="external">Python 2.7</a></li>
<li><a href="http://git-scm.com/download" class="external">Git 1.7 or higher</a></li>
</ul>
<h3 id=binaries>Device binaries</h3>
<p>
Download previews, factory images, drivers, over-the-air (OTA) updates, and
other blobs below. For details, see
<a href="building.html#obtaining-proprietary-binaries">Obtaining proprietary
binaries</a>.
</p>
<ul>
<li><a href="https://developers.google.com/android/blobs-preview" class="external">Preview
binaries (blobs)</a>. For AOSP <code>master</code> branch development.
</li>
<li><a href="https://developers.google.com/android/images" class="external">Factory
images</a>. For supported devices running tagged AOSP release branches.
</li>
<li><a href="https://developers.google.com/android/drivers" class="external">Binary
hardware support files</a>. For devices running tagged AOSP release
branches.
</li>
</ul>
<h3 id=toolchain>Build toolchain</h3>
<p>
Android 8.0 and higher support only
<a href="https://developer.android.com/ndk/guides/standalone_toolchain.html#working_with_clang" class="external">Clang/LLVM</a>
for building the Android platform. Join the
<a href="https://groups.google.com/forum/#!forum/android-llvm" class="external">android-llvm</a>
group to pose questions and get help. Report NDK/compiler issues at the
<a href="https://github.com/android-ndk/ndk" class="external">NDK GitHub</a>.
</p>
<p>
For the
<a href="https://developer.android.com/ndk/guides/index.html" class="external">Native
Development Kit (NDK)</a> and legacy kernels, GCC 4.9 included in the AOSP
master branch (under <code>prebuilts/</code>) may also be used.
</p>
</body>
</html>