Téléchargement de la source

L'arborescence des sources Android est située 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 le moment où 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 commencer par une image d'usine pour un dispositif spécifique au lieu de télécharger la source, voir Sélection d' une construction de l' appareil .

Initialisation d'un client Repo

Après l' installation du lanceur repo , 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. Donnez-lui le nom de votre choix :

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
    
  2. Configurez Git avec votre vrai nom et votre adresse e-mail. Pour utiliser l'outil Gerrit code revue, vous avez besoin d' une adresse e - mail qui est connecté à 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. Run repo init pour obtenir la dernière version de prise en pension avec ses plus récentes corrections de bugs. 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 consulter la branche master :

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

    Pour vérifier une branche autre que maître, spécifiez - le avec -b . Pour une liste des branches, voir les balises de code source et construit .

    Pour Python 2

    Pour Python 3

    Si vous obtenez un « /usr/bin/env 'python' no such file or directory un /usr/bin/env 'python' no such file or directory message d'erreur », utilisez l' une des solutions suivantes:

    Si votre Ubuntu 20.04.2 LTS est nouvellement installé ( par rapport mis à jour) version Linux:

    sudo ln -s /usr/bin/python3 /usr/bin/python

    Si vous utilisez la version Git 2,19 ou plus, vous pouvez spécifier --partial- clone lors de l' exécution repo init . Cela rend l' utilisation de Git clone partiel capacité à ne télécharger des objets Git en cas de besoin, au lieu de télécharger tout. É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 un 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 Windows uniquement: si vous obtenez un message d'erreur indiquant que les liens symboliques ne pouvaient être créés, ce qui repo init à l' échec, la référence GitHub documentation des liens symboliques pour créer ceux - ci, ou pour permettre leur soutien. Pour les non-administrateurs, voir les Permettant non aux administrateurs de créer des liens symboliques section.

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 .repo répertoire où les 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 spécifiés dans le manifeste par défaut, exécutez :

repo sync

Pour synchronisations de vitesse, passer le -c (branche courante) et -j threadcount drapeaux:

repo sync -c -j8

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

Pour la sortie suppress, passer le -q drapeau (de calme). Voir la commande prise en pension de référence pour toutes les options.

Utilisation de 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 un accès authentifié, qui utilise ensuite 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, la force l' accès authentifié en utilisant l'URI manifeste https://android.googlesource.com/a/platform/manifest . Remarquez comment le /a/ préfixe répertoire 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 à utiliser pour 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 expérience des problèmes de connectivité, se coinçant au milieu de téléchargements (généralement pendant les objets de réception). 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 l'ensemble du 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 le --mirror drapeau, que vous 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 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 transmettre ce lecteur entre les utilisateurs ou les 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

Copier et coller la clé ci - dessous, puis taper EOF pour mettre fin à l'entrée (Ctrl-D) et traiter les touches.

-----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 de code source pur et nécessite des bibliothèques propriétaires supplémentaires liées au matériel pour s'exécuter, comme pour l'accélération graphique matérielle. Voir 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 les binaires officiels pour les périphériques pris en charge en cours d' exécution branches de libération de PSBA étiquetée de pilotes de Google . Ces binaires ajoutent un accès à des capacités matérielles supplémentaires avec un code source non ouvert. Pour construire la branche principale de PSBA, utilisez la Binaires Preview à la place. Lors de la construction de la branche principale d'un appareil, utilisez les binaires pour la plus récente version numérotée ou à la date la plus récente.

Extraire les binaires propriétaires

Chaque ensemble de binaires est livré sous forme de 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/ hiérarchie de l'arborescence source.

Nettoyer

Pour vous assurer que les 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