Исходный код Android находится в наборе хранилищ Git, размещенных Google. В репозитории Git хранится вся история исходного кода Android, включая изменения и время их внесения. На этой странице описано, как скачать исходный код.
Инициализируйте клиент Repo
Настройте клиент для доступа к репозиторию исходного кода Android:
Создайте рабочий каталог и перейдите в него:
mkdir WORKING_DIRECTORYcd WORKING_DIRECTORYИнициализируйте рабочий каталог для управления источниками:
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
Подробнее о формате файла манифеста…
Список всех команд Repo можно найти в справочнике по командам Repo.
Как скачать исходный код Android
Чтобы скачать дерево исходного кода Android в рабочий каталог, выполните следующую команду:
repo sync -c -j8Аргумент -c указывает Repo, что нужно получить текущую ветку манифеста с сервера. Команда -j8 разделяет синхронизацию на несколько потоков, чтобы ускорить ее выполнение.
Эта операция займет чуть больше часа.
Если во время скачивания возникнут проблемы, ознакомьтесь со статьей Устранение неполадок с синхронизацией.
Скачать проприетарные двоичные файлы
AOSP может работать непосредственно на эмуляторах Cuttlefish, но не может использоваться на оборудовании без дополнительных проприетарных библиотек для конкретных устройств. Вот как получить эти двоичные файлы:
- Если вы скачиваете ветку
mainи создаете сборку для устройства Nexus или Pixel, скачайте последние исполняемые файлы с сайта предварительных версий исполняемых файлов. - Если вы скачиваете и собираете ветку
mainдля своего устройства, вам нужно предоставить двоичные файлы для этого устройства. - Если вы скачиваете и собираете помеченную ветвь, которая не является основной, и выполняете сборку для устройства Nexus или Pixel, скачайте исполняемый файл для конкретного устройства на странице Исполняемые файлы драйверов для устройств Nexus и Pixel.
Извлечение проприетарных двоичных файлов
Каждый набор двоичных файлов поставляется в виде самораспаковывающегося скрипта в сжатом архиве. Чтобы извлечь и поместить эти двоичные файлы в правильное место дерева исходного кода, выполните следующие действия:
- Распакуйте архив.
- Запустите самораспаковывающийся сценарий командной строки из корневого каталога дерева исходного кода AOSP.
- Примите условия прилагаемого лицензионного соглашения. Исполняемые файлы и соответствующие им make-файлы устанавливаются в иерархии
vendor/дерева исходного кода.
Проверка кода (необязательно)
Если вы сомневаетесь в подлинности исходного кода, например в том, что он получен от Google, вы можете проверить теги Git для ветки.
Чтобы проверить теги Git:
Скопируйте и вставьте следующий блок ключа в текстовый файл, например
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-----Чтобы ввести открытый ключ в базу данных ключей GnuPG, выполните следующую команду: Ключ используется для подписания аннотированных тегов, представляющих выпуски.
gpg --import keyfile.ascПосле импорта ключей вы можете проверить любой тег, выполнив следующую команду:
git tag -v TAG_NAME