Configurer pour le développement AOSP (9.0 ou version ultérieure)

Avant de télécharger et de compiler la branche main de la source Android, assurez-vous que votre matériel répond aux exigences requises et que le logiciel requis est correctement installé. Vous devez également connaître les termes suivants:

Git
Git est un système de contrôle des versions distribué sans frais et Open Source. Android utilise Git pour les opérations locales telles que la création de branches, les commits, les différences et les modifications. Pour en savoir plus sur Git, consultez la documentation Git.
Dépôt
Repo est un wrapper Python autour de Git qui simplifie l'exécution d'opérations complexes sur plusieurs dépôts Git. Repo ne remplace pas Git pour toutes les opérations de contrôle des versions. Il ne facilite que les opérations Git complexes. Le dépôt utilise des fichiers manifestes pour agréger les projets Git dans le superprojet Android.
Fichier manifeste
Un fichier manifeste est un fichier XML qui spécifie l'emplacement des différents projets Git dans la source Android dans un arbre de sources AOSP.

Configuration matérielle requise

Votre poste de travail de développement doit répondre aux exigences matérielles suivantes ou les dépasser:

  • Un système x86 64 bits.

  • Au moins 400 Go d'espace disque disponible pour le check-out et la compilation du code (250 Go pour le check-out et 150 Go pour la compilation).

  • Au moins 64 Go de RAM Google utilise des machines à 72 cœurs avec 64 Go de RAM pour compiler Android. Avec cette configuration matérielle, la compilation complète d'Android prend environ 40 minutes et la compilation incrémentielle d'Android ne prend que quelques minutes. En revanche, une compilation complète avec une machine à 6 cœurs et 64 Go de RAM prend environ six heures.

Configuration requise pour le système d'exploitation

Votre poste de travail de développement doit exécuter une distribution Linux 64 bits avec GNU C Library (glibc) 2.17 ou version ultérieure.

Installer les packages requis

Pour compiler Android 11 ou une version ultérieure, vous devez utiliser Ubuntu 18.04 ou une version ultérieure. Pour installer les paquets requis pour Ubuntu 18.04 ou version ultérieure, exécutez la commande suivante :

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

Parmi les packages installés, cette commande installe Git, qui permet de télécharger la source AOSP.

Installer le logiciel requis

Avant de pouvoir travailler avec AOSP, vous devez installer OpenJDK, Make, Python 3 et Repo. La branche principale d'Android, AOSP, est fournie avec des versions précompilées d'OpenJDK, de Make et de Python 3. Par conséquent, aucune étape d'installation supplémentaire n'est requise. La section suivante explique comment installer Repo.

Installer Repo

Pour installer Repo, procédez comme suit:

  1. Téléchargez les informations actuelles du package:

    sudo apt-get update
  2. Exécutez la commande suivante pour installer le lanceur de dépôts :

    sudo apt-get install repo

    Le lanceur Repo fournit un script Python qui initialise un "checkout" et télécharge l'outil Repo complet.

    Si vous y parvenez, passez à l'étape 4.

  3. (Facultatif) Installez manuellement Repo à l'aide de la série de commandes suivante :

    export REPO=$(mktemp /tmp/repo.XXXXXXXXX)
    curl -o ${REPO} https://storage.googleapis.com/git-repo-downloads/repo
    gpg --recv-keys 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65
    curl -s https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ${REPO} && install -m 755 ${REPO} ~/bin/repo

    Les trois premières commandes configurent un fichier temporaire, téléchargent Repo dans le fichier et vérifient que la clé fournie correspond à la clé requise. Si ces commandes aboutissent, la commande finale installe le lanceur Repo.

  4. Vérifiez la version du lanceur de dépôts:

    repo version

    Le résultat doit indiquer une version 2.4 ou ultérieure, par exemple:

    repo launcher version 2.45

Définir un autre répertoire de sortie

Par défaut, le résultat de chaque compilation est stocké dans le sous-répertoire out/ de l'arborescence source correspondante. Vous pouvez remplacer ce répertoire en exportant la variable d'environnement OUT_DIR. Par exemple, si vous souhaitez stocker votre sortie sur un autre disque, vous pouvez diriger OUT_DIR vers ce disque:

export OUT_DIR=my_other_drive

Et maintenant ?