Загрузите исходный код Android

Исходный код Android находится в наборе репозиториев Git, размещенных Google. Репозиторий Git содержит всю историю исходного кода Android, включая изменения в исходном коде и время их внесения. На этой странице описано, как загрузить исходный код.

Инициализируйте клиент репозитория.

Настройте свой клиент для доступа к репозиторию исходного кода Android:

  1. Создайте рабочую директорию и перейдите в неё:

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
  2. Инициализируйте рабочую директорию для системы контроля версий:

    repo init --partial-clone --no-use-superproject -b android-latest-release -u https://android.googlesource.com/platform/manifest

    Параметр -b используется для идентификации инициализируемой ветки. Список веток и имен тегов см. в разделе «Теги исходного кода и сборки» . Используйте имена тегов или имена веток с параметром -b .

    Опция -u обязательна и используется для указания файла манифеста , который представляет собой XML-файл, определяющий местоположение различных проектов Git в исходном коде Android в вашей рабочей директории. В этом примере имя файла манифеста не указано, поэтому команда использует файл манифеста по умолчанию ( default.xml ).

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

    repo has been initialized in path_to_working_directory

Информацию о формате файла манифеста см. в репозитории Manifest Format .

Список всех команд Repo см. в справочнике команд Repo .

Скачайте исходный код Android.

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

repo sync -c -j8

Аргумент -c указывает Repo получить текущую ветку манифеста с сервера. Команда -j8 распределяет синхронизацию между потоками для более быстрого завершения.

Эта операция займет чуть больше часа.

Если во время загрузки возникнут какие-либо проблемы, обратитесь к разделу «Устранение неполадок и исправление проблем с синхронизацией» .

Скачать проприетарные бинарные файлы

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

  • Если вы загружаете main ветку и собираете проект для устройств Nexus или Pixel, загрузите последние бинарные файлы с сайта предварительного просмотра бинарных файлов .
  • Если вы загружаете и собираете main ветку и выполняете сборку для своего устройства, вам необходимо предоставить бинарные файлы, специфичные для вашего устройства.
  • Если вы загружаете и собираете помеченную, не основную ветку и выполняете сборку для устройства Nexus или Pixel, загрузите исполняемый файл, специфичный для данного устройства, из раздела «Диспетчерские файлы для устройств Nexus и Pixel» .

Извлечь проприетарные бинарные файлы

Каждый набор бинарных файлов представляет собой самораспаковывающийся скрипт в сжатом архиве. Чтобы распаковать и разместить эти бинарные файлы в нужном месте в дереве исходного кода:

  1. Распакуйте архив.
  2. Запустите прилагаемый самораспаковывающийся скрипт оболочки из корневого каталога исходного кода AOSP.
  3. Согласитесь с условиями прилагаемого лицензионного соглашения. Бинарные файлы и соответствующие им make-файлы устанавливаются в иерархию vendor/ в исходном коде.

(необязательно) Проверить легитимность кода

Если вас беспокоит легитимность исходного кода, например, принадлежит ли он Google, вы можете проверить теги Git для ветки.

Для проверки тегов Git:

  1. Скопируйте и вставьте следующий блок ключей в текстовый файл, например, keyfile.asc .

    -----BEGIN PGP PUBLIC KEY BLOCK-----
    Version: GnuPG v1.4.2.2 (GNU/Linux)
    
    mQGiBEnnWD4RBACt9/h4v9xnnGDou13y3dvOx6/t43LPPIxeJ8eX9WB+8LLuROSV
    lFhpHawsVAcFlmi7f7jdSRF+OvtZL9ShPKdLfwBJMNkU66/TZmPewS4m782ndtw7
    8tR1cXb197Ob8kOfQB3A9yk2XZ4ei4ZC3i6wVdqHLRxABdncwu5hOF9KXwCgkxMD
    u4PVgChaAJzTYJ1EG+UYBIUEAJmfearb0qRAN7dEoff0FeXsEaUA6U90sEoVks0Z
    wNj96SA8BL+a1OoEUUfpMhiHyLuQSftxisJxTh+2QclzDviDyaTrkANjdYY7p2cq
    /HMdOY7LJlHaqtXmZxXjjtw5Uc2QG8UY8aziU3IE9nTjSwCXeJnuyvoizl9/I1S5
    jU5SA/9WwIps4SC84ielIXiGWEqq6i6/sk4I9q1YemZF2XVVKnmI1F4iCMtNKsR4
    MGSa1gA8s4iQbsKNWPgp7M3a51JCVCu6l/8zTpA+uUGapw4tWCp4o0dpIvDPBEa9
    b/aF/ygcR8mh5hgUfpF9IpXdknOsbKCvM9lSSfRciETykZc4wrRCVGhlIEFuZHJv
    aWQgT3BlbiBTb3VyY2UgUHJvamVjdCA8aW5pdGlhbC1jb250cmlidXRpb25AYW5k
    cm9pZC5jb20+iGAEExECACAFAknnWD4CGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX
    gAAKCRDorT+BmrEOeNr+AJ42Xy6tEW7r3KzrJxnRX8mij9z8tgCdFfQYiHpYngkI
    2t09Ed+9Bm4gmEO5Ag0ESedYRBAIAKVW1JcMBWvV/0Bo9WiByJ9WJ5swMN36/vAl
    QN4mWRhfzDOk/Rosdb0csAO/l8Kz0gKQPOfObtyYjvI8JMC3rmi+LIvSUT9806Up
    hisyEmmHv6U8gUb/xHLIanXGxwhYzjgeuAXVCsv+EvoPIHbY4L/KvP5x+oCJIDbk
    C2b1TvVk9PryzmE4BPIQL/NtgR1oLWm/uWR9zRUFtBnE411aMAN3qnAHBBMZzKMX
    LWBGWE0znfRrnczI5p49i2YZJAjyX1P2WzmScK49CV82dzLo71MnrF6fj+Udtb5+
    OgTg7Cow+8PRaTkJEW5Y2JIZpnRUq0CYxAmHYX79EMKHDSThf/8AAwUIAJPWsB/M
    pK+KMs/s3r6nJrnYLTfdZhtmQXimpoDMJg1zxmL8UfNUKiQZ6esoAWtDgpqt7Y7s
    KZ8laHRARonte394hidZzM5nb6hQvpPjt2OlPRsyqVxw4c/KsjADtAuKW9/d8phb
    N8bTyOJo856qg4oOEzKG9eeF7oaZTYBy33BTL0408sEBxiMior6b8LrZrAhkqDjA
    vUXRwm/fFKgpsOysxC6xi553CxBUCH2omNV6Ka1LNMwzSp9ILz8jEGqmUtkBszwo
    G1S8fXgE0Lq3cdDM/GJ4QXP/p6LiwNF99faDMTV3+2SAOGvytOX6KjKVzKOSsfJQ
    hN0DlsIw8hqJc0WISQQYEQIACQUCSedYRAIbDAAKCRDorT+BmrEOeCUOAJ9qmR0l
    EXzeoxcdoafxqf6gZlJZlACgkWF7wi2YLW3Oa+jv2QSTlrx4KLM=
    =Wi5D
    -----END PGP PUBLIC KEY BLOCK-----
    
  2. Выполните следующую команду, чтобы добавить открытый ключ в базу данных ключей GnuPG. Этот ключ используется для подписи аннотированных тегов, представляющих релизы.

    gpg --import keyfile.asc
  3. После импорта ключей вы можете проверить любой тег, выполнив следующую команду:

    git tag -v TAG_NAME