L'arborescence des sources Android se trouve dans un référentiel Git hébergé par Google. Le référentiel Git inclut 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 source pour une ligne de code Android spécifique.
Pour démarrer avec une image d'usine pour un appareil spécifique au lieu de télécharger la source, consultez 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 :
Créez un répertoire vide pour contenir vos fichiers de travail. Donnez-lui le nom de votre choix :
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
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 active 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
Exécutez
repo init
pour obtenir la dernière version de Repo avec ses corrections de bogues les plus récentes. 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
Pour vérifier la branche master :
repo init -u https://android.googlesource.com/platform/manifest -b master
Pour extraire une branche autre que master , spécifiez-la avec
-b
. Pour obtenir une liste des branches, consultez Balises de code source et builds .Pour Python 2
Pour Python 3
Si vous obtenez un message d'erreur "
/usr/bin/env 'python' no such file or directory
", utilisez l'une des solutions suivantes :Si votre Ubuntu 20.04.2 LTS est une version Linux nouvellement installée (par opposition à mise à niveau) :
sudo ln -s /usr/bin/python3 /usr/bin/python
Si vous utilisez Git version 2.19 ou supérieure, vous pouvez spécifier
--partial-clone
lors de l'exécution derepo init
. Cela utilise la capacité de clonage partiel de Git pour télécharger uniquement les objets Git en cas de besoin, 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, utilisez ce qui suit si vous êtes développeur et que vous utilisez un réseau à faible latence :repo init -u https://android.googlesource.com/platform/manifest -b master --partial-clone --clone-filter=blob:limit=10M
Pour le système d'exploitation Windows uniquement : si vous obtenez un message d'erreur indiquant que les liens symboliques n'ont pas pu être créés, ce qui entraîne l'échec de l'
repo init
du référentiel, consultez la documentation GitHub Symbolic Links pour les créer ou pour activer leur prise en charge. Pour les non-administrateurs, consultez la section Autoriser les non-administrateurs à créer des liens symboliques .
Une initialisation réussie se termine par un message indiquant que Repo est initialisé dans votre répertoire de travail. Votre répertoire client contient maintenant un répertoire .repo
lequel les fichiers tels que le manifeste sont conservés.
Téléchargement de l'arborescence des sources Android
Pour télécharger l'arborescence source d'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 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). Voir la référence des commandes Repo pour toutes les options.
Utilisation de l'authentification
Par défaut, l'accès au code source d'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 source 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 un accès authentifié, qui utilise alors un quota distinct pour chaque utilisateur, quelle que soit l'adresse IP.
Tout d'abord, créez un mot de passe avec le générateur de mot de passe et suivez les instructions sur la page du générateur de mot de passe.
Ensuite, forcez l'accès authentifié en utilisant l'URI du manifeste https://android.googlesource.com/a/platform/manifest
. Remarquez comment le préfixe de répertoire /a/
déclenche une 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 à utiliser 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é, restant bloqués au milieu des téléchargements (généralement lors de la réception d'objets ). Le réglage des paramètres de la pile TCP/IP et l'utilisation de commandes non parallèles peuvent améliorer la situation. Vous devez disposer d'un accès root pour modifier le paramètre TCP :
sudo sysctl -w net.ipv4.tcp_window_scaling=0
repo sync -j1
Utiliser un miroir local
Lorsque vous utilisez plusieurs clients, en particulier dans les 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 (ce qui ne nécessite aucun accès réseau). Le téléchargement d'un miroir complet est plus petit que le téléchargement de deux clients et il contient 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. Remarquez 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 que vous devez 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 avec le serveur, synchronisez le miroir avec le serveur, puis le client avec 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 passer ce lecteur entre utilisateurs ou 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
Obtenir des binaires propriétaires
AOSP ne peut pas être utilisé uniquement à partir du code source pur et nécessite l'exécution de bibliothèques propriétaires supplémentaires liées au matériel, telles que l'accélération graphique matérielle. Consultez les sections ci-dessous pour les liens de téléchargement et les fichiers binaires de l'appareil pour des ressources supplémentaires.
Télécharger des binaires propriétaires
Vous pouvez télécharger des fichiers binaires officiels pour les appareils pris en charge exécutant des branches de version AOSP marquées à partir des pilotes de Google . Ces binaires ajoutent un accès à des fonctionnalités matérielles supplémentaires avec un code source non ouvert. Pour construire la branche principale AOSP, utilisez plutôt l' aperçu des fichiers binaires . Lors de la création de la branche principale d'un périphérique, utilisez les fichiers 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 fichiers 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 sont installés dans le vendor/
la hiérarchie de l'arborescence source.
Nettoyer
Pour vous assurer que les fichiers binaires nouvellement installés sont correctement pris en compte après avoir été extraits, supprimez la sortie existante de toute version précédente en utilisant :
make clobber