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

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

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

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

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

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

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

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

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

Ваша рабочая станция разработки должна работать под управлением Ubuntu 18.04 или более поздней версии.

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

Для сборки 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 libncurses5 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

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

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

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

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

Выполните следующие действия, чтобы установить Repo:

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

    $ sudo apt-get update
    
  2. Запустите следующую команду, чтобы установить программу запуска Repo:

    $ 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.

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

    $ repo version
    

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

    repo launcher version 2.40

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

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

$ export OUT_DIR=my_other_drive