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 les embranchements, les commits, les différences et les modifications. Pour obtenir de l'aide sur l'apprentissage de Git, consultez la documentation Git.
Dépôt
Repo est un wrapper Python pour Git qui simplifie l'exécution d'opérations complexes sur plusieurs dépôts Git. Le dépôt ne remplace pas Git pour toutes les opérations de contrôle des versions. Il facilite simplement la réalisation d'opérations Git complexes. Le dépôt utilise des fichiers manifestes pour agréger des 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 de la source Android dans une arborescence source AOSP.

Configuration matérielle requise

Votre poste de travail de développement doit disposer de la configuration matérielle suivante ou la dépasser:

  • Un système 64 bits.

  • Au moins 400 Go d'espace disque libre pour extraire et compiler le code (250 Go pour l'extraction + 150 Go pour la compilation)

  • Au moins 64 Go de RAM Google utilise des machines à 72 cœurs avec 64 Go de RAM pour créer Android. Avec cette configuration matérielle, il faut environ 40 minutes pour une version complète d'Android et seulement quelques minutes pour la compilation incrémentielle d'Android. En revanche, il faut environ six heures pour un build complet sur une machine à 6 cœurs disposant de 64 Go de RAM.

Configuration requise pour le système d'exploitation

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

Installer les packages requis

Pour compiler Android 11 ou version ultérieure, vous devez utiliser Ubuntu 18.04 ou version ultérieure. Pour installer les packages 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

Pour pouvoir utiliser AOSP, vous devez disposer d'installations OpenJDK, Make, Python 3 et Repo. La branche principale AOSP d'Android est fournie avec des versions prédéfinies d'OpenJDK, de Make et de Python 3. Aucune étape d'installation supplémentaire n'est donc 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 de dépôts fournit un script Python qui initialise un processus de récupération et télécharge l'outil de dépôt complet.

    Si l'opération réussit, passez à l'étape 4.

  3. (Facultatif) Installez manuellement Repo à l'aide des séries de commandes suivantes:

    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 permettent de configurer un fichier temporaire, de télécharger le dépôt dans le fichier et de vérifier que la clé fournie correspond à la clé requise. Si ces commandes aboutissent, la commande finale installe le lanceur de dépôts.

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

    repo version
    

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

    repo launcher version 2.40

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 la sortie sur un autre lecteur, vous pouvez pointer OUT_DIR vers ce lecteur:

export OUT_DIR=my_other_drive

Et maintenant ?