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

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

Гит
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 минут, а инкрементальная сборка Android — всего несколько минут. Для сравнения, полная сборка на 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.

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

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

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

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

    sudo apt-get install repo

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

    В случае успеха перейдите к шагу 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 launcher.

  4. Проверьте версию Repo launcher:

    repo version

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

    repo launcher version 2.45

Установить альтернативный выходной каталог

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

export OUT_DIR=my_other_drive

Что дальше?