Настройка для разработки AOSP (9.0 или более поздней версии)

Прежде чем загружать и собирать последнюю версию исходного кода Android (android17-release), убедитесь, что ваше оборудование соответствует необходимым требованиям и что необходимое программное обеспечение установлено должным образом. Вам также следует ознакомиться со следующими терминами:

Гит
Git — это бесплатная система контроля версий с открытым исходным кодом. Android использует Git для локальных операций, таких как создание ветвей, коммиты, сравнение изменений и редактирование. Для получения помощи в изучении Git обратитесь к документации Git .
Репо
Repo — это Python-обертка над Git, упрощающая выполнение сложных операций с несколькими репозиториями Git. Repo не заменяет Git для всех операций контроля версий, он лишь упрощает выполнение сложных операций Git. Repo использует файлы манифеста для объединения проектов Git в суперпроект Android.
файл манифеста
Файл манифеста — это XML-файл, определяющий местоположение различных проектов Git в исходном коде Android в дереве исходного кода AOSP.

Соответствует требованиям к оборудованию

Ваша рабочая станция для разработки должна соответствовать или превосходить следующие аппаратные требования:

  • 64-битная система x86.

  • Для загрузки и сборки кода требуется не менее 400 ГБ свободного места на диске (250 ГБ для загрузки + 150 ГБ для сборки).

  • Минимум 64 ГБ оперативной памяти. Google использует 72-ядерные машины с 64 ГБ оперативной памяти для сборки Android. При такой конфигурации оборудования полная сборка Android занимает приблизительно 40 минут, а инкрементальная сборка — всего несколько минут. Для сравнения, на 6-ядерной машине с 64 ГБ оперативной памяти полная сборка занимает приблизительно 6 часов.

Соответствует требованиям операционной системы

На вашей рабочей станции для разработки должна быть установлена ​​любая 64-битная дистрибуция Linux с библиотекой GNU C (glibc) версии 2.17 или более поздней.

Установите необходимые пакеты.

Для сборки Android 11 или более поздней версии необходимо использовать Ubuntu 18.04 или более позднюю версию. Для установки необходимых пакетов для Ubuntu 18.04 или более поздней версии выполните следующую команду:

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

В числе устанавливаемых пакетов эта команда устанавливает Git, который используется для загрузки исходного кода AOSP.

Установите необходимое программное обеспечение.

Прежде чем начать работу с AOSP, необходимо установить OpenJDK, Make, Python 3 и Repo. В последней версии Android уже установлены предустановленные версии OpenJDK, Make и Python 3, поэтому дополнительные шаги по установке не требуются. В следующем разделе объясняется, как установить Repo.

Установить репозиторий

Для установки репозитория выполните следующие действия:

  1. Загрузите актуальную информацию о пакете:

    sudo apt-get update
  2. Для установки средства запуска репозитория выполните следующую команду:

    sudo apt-get install repo

    Программа запуска репозитория предоставляет скрипт на Python, который инициализирует процесс извлечения данных и загружает полный набор инструментов репозитория.

    В случае успеха перейдите к шагу 4.

  3. (необязательно) Установите Repo вручную, используя следующую последовательность команд:

    export REPO=$(mktemp /tmp/repo.XXXXXXXXX)
    curl -o ${REPO} https://storage.googleapis.com/git-repo-downloads/repo
    gpg --recv-keys 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65
    curl -s https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ${REPO} && install -m 755 ${REPO} ~/bin/repo

    Первые три команды создают временный файл, загружают Repo в этот файл и проверяют, совпадает ли предоставленный ключ с требуемым. Если эти команды выполнены успешно, последняя команда устанавливает средство запуска Repo.

  4. Проверьте версию программы запуска репозитория:

    repo version

    В выходных данных должна отображаться версия 2.4 или выше, например:

    repo launcher version 2.45

Укажите альтернативный каталог для вывода.

По умолчанию выходные данные каждой сборки сохраняются в подкаталоге out/ соответствующего дерева исходного кода. Вы можете изменить этот каталог, экспортировав переменную среды OUT_DIR . Например, если вы хотите сохранить выходные данные на другом диске, вы можете указать OUT_DIR на этот диск:

export OUT_DIR=my_other_drive

Что дальше?