Google is committed to advancing racial equity for Black communities. See how.
Cette page a été traduite par l'API Cloud Translation.
Switch to English

Téléchargement de la source

L'arborescence des sources Android se trouve dans un référentiel Git hébergé par Google. Le référentiel Git comprend des métadonnées pour la source Android, y compris les modifications apportées à la source et la date à laquelle les modifications ont été apportées. Cette page décrit comment télécharger l'arborescence des sources pour une ligne de code Android spécifique.

Pour commencer avec une image d'usine pour un appareil spécifique au lieu de télécharger la source, voir Sélection d'une version d'appareil .

Initialisation d'un client Repo

Après avoir installé le Repo Launcher , configurez votre client pour accéder au référentiel source Android:

  1. Créez un répertoire vide pour contenir vos fichiers de travail. Si vous utilisez macOS, cela doit être sur un système de fichiers sensible à la casse. Donnez-lui le nom que vous aimez:

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
    
  2. Configurez Git avec votre vrai nom et votre adresse e-mail. Pour utiliser l'outil de révision de code Gerrit, vous avez besoin d'une adresse e-mail associée à un compte Google enregistré . Assurez-vous qu'il s'agit d'une adresse en direct où vous pouvez recevoir des messages. Le nom que vous fournissez ici apparaît dans les attributions pour vos soumissions de code.

    git config --global user.name "Your Name"
    git config --global user.email "you@example.com"
    
  3. Exécutez repo init pour obtenir la dernière version de Repo avec ses correctifs de bogues les plus récents. Vous devez spécifier une URL pour le manifeste, qui spécifie où les différents référentiels inclus dans la source Android sont placés dans votre répertoire de travail.

    repo init -u https://android.googlesource.com/platform/manifest
    

    Remarque: si l' repo init échoue sur macOS en raison d'une erreur de certificat, vous devrez peut-être d'abord exécuter:

    # macOS only
    open /Applications/Python\ 3.6/Install\ Certificates.command
    

    Pour extraire une branche autre que master , spécifiez-la avec -b . Pour obtenir la liste des branches, consultez Balises et builds de code source .

    repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
    

Si vous utilisez Git version 2.19 ou supérieure, vous pouvez spécifier --partial-clone lors de l'exécution du repo init qui utilisera la capacité de clonage partiel de Git, qui télécharge uniquement les objets Git lorsque cela est nécessaire au lieu de tout télécharger. Étant donné que l'utilisation de clones partiels signifie que de nombreuses opérations doivent communiquer avec le serveur, ceci est recommandé pour les développeurs qui utilisent un réseau à faible latence:

repo init -u https://android.googlesource.com/platform/manifest -b master --partial-clone --clone-filter=blob:limit=10M

Une initialisation réussie se termine par un message indiquant que Repo est initialisé dans votre répertoire de travail. Votre répertoire client doit maintenant contenir un répertoire .repo où des fichiers tels que le manifeste sont conservés.

Téléchargement de l'arborescence des sources Android

Pour télécharger l'arborescence des sources Android dans votre répertoire de travail à partir des référentiels comme spécifié dans le manifeste par défaut, exécutez:

repo sync

Pour accélérer les synchronisations, passez plutôt les indicateurs -c (branche actuelle) et -j threadcount :

repo sync -c -j8

Les fichiers source Android sont téléchargés dans votre répertoire de travail sous leurs noms de projet.

Pour supprimer la sortie, passez l'indicateur -q (silencieux). Consultez la référence des commandes Repo pour toutes les options.

Utiliser l'authentification

Par défaut, l'accès au code source Android est anonyme. Pour protéger les serveurs contre une utilisation excessive, chaque adresse IP est associée à un quota.

Lors du partage d'une adresse IP avec d'autres utilisateurs (par exemple, lors de l'accès aux référentiels sources au-delà d'un pare-feu NAT), les quotas peuvent se déclencher même pour des modèles d'utilisation réguliers (par exemple, si de nombreux utilisateurs synchronisent de nouveaux clients à partir de la même adresse IP dans un courte période).

Dans ce cas, vous pouvez utiliser l'accès authentifié, qui utilise ensuite un quota distinct pour chaque utilisateur, quelle que soit l'adresse IP.

La première étape consiste à créer un mot de passe avec le générateur de mot de passe et à suivre les instructions sur la page du générateur de mot de passe.

La deuxième étape consiste à forcer l'accès authentifié à l'aide de l'URI du manifeste https://android.googlesource.com/a/platform/manifest . Remarquez comment le préfixe de répertoire /a/ déclenche l'authentification obligatoire. Vous pouvez convertir un client existant pour utiliser l'authentification obligatoire avec la commande suivante:

repo init -u https://android.googlesource.com/a/platform/manifest

Dépannage des problèmes de réseau

Lors du téléchargement derrière un proxy (ce qui est courant dans certains environnements d'entreprise), vous devrez peut-être spécifier explicitement le proxy qui est ensuite utilisé par Repo:

export HTTP_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>
export HTTPS_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>

Plus rarement, les clients Linux rencontrent des problèmes de connectivité, se bloquant au milieu des téléchargements (généralement lors de la réception d'objets ). Il a été rapporté que la modification des paramètres de la pile TCP / IP et l'utilisation de commandes non parallèles peuvent améliorer la situation. Vous avez besoin d'un accès root pour modifier le paramètre TCP:

sudo sysctl -w net.ipv4.tcp_window_scaling=0
repo sync -j1

Utilisation d'un miroir local

Lorsque vous utilisez plusieurs clients, en particulier dans des situations où la bande passante est rare, il est préférable de créer un miroir local de tout le contenu du serveur et de synchroniser les clients à partir de ce miroir (qui ne nécessite aucun accès au réseau). Le téléchargement d'un miroir complet est plus petit que le téléchargement de deux clients, tout en contenant plus d'informations.

Ces instructions supposent que le miroir est créé dans /usr/local/aosp/mirror . Tout d'abord, créez et synchronisez le miroir lui-même. Notez l'indicateur --mirror , que vous ne pouvez spécifier que lors de la création d'un nouveau client:

mkdir -p /usr/local/aosp/mirror
cd /usr/local/aosp/mirror
repo init -u https://android.googlesource.com/mirror/manifest --mirror
repo sync

Lorsque le miroir est synchronisé, vous pouvez créer de nouveaux clients à partir de celui-ci. Notez qu'il est important de spécifier un chemin absolu:

mkdir -p /usr/local/aosp/master
cd /usr/local/aosp/master
repo init -u /usr/local/aosp/mirror/platform/manifest.git
repo sync

Enfin, pour synchroniser un client contre le serveur, synchronisez le miroir contre le serveur, puis le client contre le miroir:

cd /usr/local/aosp/mirror
repo sync
cd /usr/local/aosp/master
repo sync

Il est possible de stocker le miroir sur un serveur LAN et d'y accéder via NFS, SSH ou Git. Il est également possible de le stocker sur un lecteur amovible et de le transmettre aux utilisateurs ou aux machines.

Vérification des balises Git

Chargez la clé publique suivante dans votre base de données de clés GnuPG. La clé est utilisée pour signer les balises annotées qui représentent les versions.

gpg --import

Copiez et collez la clé ci-dessous, puis tapez EOF ( Ctrl-D ) pour terminer la saisie et traiter les clés.

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

Après avoir importé les clés, vous pouvez vérifier n'importe quelle balise avec:

git tag -v TAG_NAME

Obtenez des binaires propriétaires

AOSP ne peut pas être utilisé uniquement à partir de code source pur et nécessite des bibliothèques propriétaires supplémentaires liées au matériel, comme pour l'accélération graphique matérielle. Consultez les sections ci-dessous pour les liens de téléchargement et les fichiers binaires des appareils pour des ressources supplémentaires.

Télécharger des binaires propriétaires

Vous pouvez télécharger des binaires officiels pour les appareils pris en charge exécutant des branches de version AOSP étiquetées à partir des pilotes de Google . Ces binaires ajoutent l'accès à des capacités matérielles supplémentaires avec du code non open source. Pour créer la branche principale AOSP, utilisez plutôt l' aperçu des binaires . Lors de la création de la branche principale d'un périphérique, utilisez les binaires de la version numérotée la plus récente ou avec la date la plus récente.

Extraire les binaires propriétaires

Chaque ensemble de binaires se présente sous la forme d'un script auto-extractible dans une archive compressée. Décompressez chaque archive, exécutez le script auto-extractible inclus à partir de la racine de l'arborescence source, puis confirmez que vous acceptez les termes du contrat de licence ci-joint. Les binaires et leurs makefiles correspondants seront installés dans le vendor/ hiérarchie de l'arborescence source.

Nettoyer

Pour vous assurer que les binaires nouvellement installés sont correctement pris en compte après leur extraction, supprimez la sortie existante de toute construction précédente en utilisant:

make clobber