Tutoriel Tutoriel - Construire l'AOSP (toutes versions)

  • Auteur de la discussion iDroid
  • Date de début
iDroid

iDroid

Membre VIP
Inscrit
16 Décembre 2012
Messages
2 876
Points
0
  • #1
aosp.jpg

~ Construire (builder) l'AOSP sur votre PC ~

Information
Ce tutoriel n'a pas pour but de vous aider à porter une ROM AOSP sur votre téléphone, il consiste juste à la préparation d'Ubuntu, le téléchargement du code source et la compilation. Je vous déconseille fortement de flasher sur quelconque appareil le build que vous aurez obtenu à la fin du tutoriel.

Information
Vous devez avoir au minimum 6 gigaoctets de mémoire vive (sinon ça prendra un temps fou), un processeur très performant pour de meilleurs résultats (si 2 cœurs, 3Ghz minimum, + de cœurs = + d'opérations en même temps = - de temps de compilation). Un SSD est également fort recommandable car Android est une série de minuscules fichiers, les SSD sont les spécialistes ! Cependant, c'est facultatif.
Ubuntu devra être installé sur une partition d'AU MOINS 100 gigaoctets.

1) Préparation d'Ubuntu
Je vous recommande d'utiliser la dernière version LTS d'Ubuntu en date (actuellement la 14.04, version 64 bits nécessaire) téléchargeable gratuitement sur
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !
.
Pour de meilleures performances, je vous recommande d'installer nativement Ubuntu sur votre PC. Cependant, si vous ne souhaitez pas faire de la sorte, vous avez la possibilité d'utiliser une machine virtuelle (Oracle VM VirtualBox) pour "émuler" Ubuntu (cependant un processeur assez performant sera requis).

Une fois Ubuntu 14.04 opérationnel, mis à jour et prêt à être utilisé, ouvrez un terminal.
Ce terminal vous servira de tableau de bord dans votre développement.
Installez les paquets suivants (faites juste un copier/coller puis faites Entrée) :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Vous aurez également besoin de Java (OpenJDK étant déconseillé, on va utiliser le Java propriétaire).
Commencez par supprimer toute trace de Java en exécutant cette commande :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Une fois la commande exécutée, il vous faut une version de Java. Cependant, la dernière version ne convient pas à toutes les versions :
Android Marshmallow : Java 8
Android Lollipop et Marshmallow : Java 7
Android Froyo à KitKat : Java 6

Je vous laisse vous renseignez sur Internet pour l'installation de ces derniers.

2) Préparation de l'espace de travail
Votre espace de travail sera très important. Il est nécessaire qu'il soit correctement organisé pour un meilleur rangement.
Ouvrez le fichier .bashrc présent dans votre dossier personnel avec nano (
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
).
Avec PageDown, descendez tout en bas de la page.

Ajoutez-y ceci :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Vous pouvez optionnellement rajouter une variable indiquant le dossier où se retrouvera le build. Par défaut la sortie se trouve dans le dossier du code source/out.
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Une fois la manipulation terminée, enregistrée (CTRL+O) votre fichier et quittez nano.
Rechargez .bashrc en faisant
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
.

Créez votre dossier de travail.
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
Ensuite accédez-y (arrêtez le tutoriel maintenant si vous avez pas comment entrer dans un dossier en terminal :mdr3: :mdr3: :mdr3: ) puis faites un sous-dossier pour votre source.
Nommez ce dossier en fonction de la version l'AOSP voulue (exemple : android-4.4.4_r2, etc.).

Maintenant retournez à votre dossier perso (je vous aide XD)
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Ensuite créez un dossier nommé bin.
Entrez dedans et exécutez cette commande (récupération de la clé chez Google) :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
Puis accordez-y les droits d'exécutions :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Ensuite, retournez dans votre dossier de développement puis let's go.

3) Téléchargement du code source
Branches disponibles l'AOSP :
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !

Vous devez utiliser les valeurs dans la colonne Branch. Ne pas prêter attention à Devices qui n'est destiné qu'au développement sur les appareils Nexus.

Vous allez indiquer une de ces branches selon la version que vous voulez build.
Vous allez indiquer des infos sur votre compte Google (je pense que vous savez le faire) puis inscrivez ces commandes :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Une fois ceci terminé, initialisons le repo.
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Le téléchargement du manifest se déroule, il indique à la commande repo sync les fichiers à télécharger. Cela dure que quelques secondes.

Ensuite, l'étape ultime, le téléchargement du code :D Par palier de débits, je vous autorise à fixer un job (nombres de téléchargements simultanés).
512Ko/s = -j4
1Mo/s = -j8
2Mo/s = -j16
Fibre bas-débit = -j32
Fibre 100Mpb/s (max théorique) = -j64


Faites un speedtest, et divisez par 8 la valeur obtenue (conversion bit -> byte/octet), comparez avec ce qu'il y a juste en haut.

Information
Une ROM custom compilée ne pèse que 200 mégaoctets environ, mais il ne faut pas se laisser impressionner par les plus de 10 gigaoctets du code source. Je vous recommande de laisser votre ordinateur tourner la nuit et pendant le travail/les cours.

Pour finir, entrez la commande suivante :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Le téléchargement débute, il est déconseillé de l'interrompre (même si cela reste possible de le reprendre) car des fichiers à moitié téléchargés seront considérés comme téléchargés, donc peuvent créer des instabilités lors du build.

4) Préparation et compilation
Je vous retrouve après quelques heures de téléchargement.
J'espère que vous avez le cœur bien amoché car on n'a parcouru que la moitié du chemin ! Il reste la compilation, temps variable selon votre couple processeur/mémoire vive/stockage. Évidemment un PC haut-de-gamme compilera bien plus vite qu'un simple netbook (compiler sur un netbook est une HORREUR).

Activez le CCACHE, il vous permettra de compiler plus rapidement :)
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

On va Fluncher, lol non luncher. Lunch est une commande qui vous permet de définir le périphérique de sortie (si vous avez porté les sources dans le code source vous sélectionnerez votre périphérique, mais pas cette fois, on est en phase de test actuellement ;)

Récupérez tous les fichiers de configuration en faisant
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Ensuite on va lunch, lol, périphérique-typedebuild
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Une fois l'initialisation terminée, on va commencer la compilation... La fameuse !
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

La compilation utilisera votre processeur à 100%, vous ne pourrez rien faire d'autre (si mais ce sera inutilisable et vous risquerez de causer des instabilités), encore une fois faites ça la nuit ou pendant les cours ou le travail.

5) Test de votre ROM
Voilà, c'est enfin terminé. Pour savoir si la compilation s'est déroulée sans problèmes, allez dans votre dossier de sortie (out par défaut) -> target -> product -> generic. Vérifiez la présence de system.img, si c'est bon -> félicitations ! Vous avez compilé avec succès votre ROM.

Si ça n'a pas fonctionné, postez les 20 dernières lignes du terminal ici et expliquez le problème.

Pour tester votre ROM via émulateur, vous avez juste à entrer
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
dans le terminal, un émulateur va automatiquement s'ouvrir et lancer la ROM compilée !

--------

Ce tutoriel peut servir de base afin de porter une ROM AOSP à un périphérique mais les sources et vendor devront être ajoutées manuellement.

+TUTObyiDroid
 
L

lohanbarth

  • #2
:hello: et merci à toi pour le partage.
 
iDroid

iDroid

Membre VIP
Inscrit
16 Décembre 2012
Messages
2 876
Points
0
  • #3
Salut :)

De rien ^_^
 
C

cocopipou

Membre
Inscrit
4 Mars 2016
Messages
9
Points
1
  • #4
Bonsoir iDroid,

Votre tutoriel est un de mes points de départ dans l'optique d'essayer de porter ou de développer une rom personnalisée pour mon Lenovo P2.
Avant de revenir vers vous avec un article plus long pour décrire les problèmes rencontrés et que rencontrent aussi d'autres aspi-développeurs, j'ai une question toute simple : Où se trouve l'emulateur ?

J'ai eu beau taper "emulator" : rien ne se passe.
Peut-être n'est-il pas dans le path ?
Cet emulator est-il créé lors de la compil android ou faut-il l'installer ?

J'ai fait deux tests aboutis avec android-8.1.0_r14.

Merci d'avance
 
Haut Bas