Cuisinez votre ROM Android !
Signature : | Mis en ligne le : 18/01/2013
Catégorie(s) :
  • GNU/Linux Magazine HS
  • Commentez
    Article publié dans :
    Achetez
    Linux Magazine HS 60 :
    Version Papier
    Version PDF
    Page 1/3
    Page suivante »

    1. AOSP

    Les sources d'Android sont disponibles par l'intermédiaire de l'Android Open Source Project (AOSP). Ce projet contient tout le nécessaire pour compiler une image Android. AOSP est une sorte de distribution Linux ; il contient les sources du framework Android, de Bionic (la libc), de la machine virtuelle Dalvik, etc. Mais il intègre aussi les sources d'autres projets (sqlite3, libzip, tcpdump, ...). Bien sûr, la toolchain, ainsi que les scripts de compilation, sont disponibles.

    1.1. Préparation de l'environnement

    Toutes les instructions nécessaires à la compilation d'une image sont disponibles sur http://source.android.com/source/initializing.html Nous nous contenterons d'en faire une rapide résumé.

    Il faut commencer par récupérer certains paquets (java-sun, git, …), puis le script de téléchargement des sources (repo). On peut ensuite commencer le téléchargement :

    Il y a un peu plus de 6Go à télécharger (vous pouvez prendre un café).

    J'ai fait mes tests sur la version 4.0.3_r1, qui est la dernière en date. Vous pouvez aussi utiliser la branche master, qui est la branche de développement (pour ça, il suffit d'omettre l'option -b).

    La documentation préconise d'utiliser une Ubuntu 10.04 ; avec cette distribution, la compilation devrait se dérouler sans problème.

    Personnellement, j'ai utilisé une Gentoo, ainsi qu'une Fedora 16, et on arrive au même résultat, mais au prix de quelques erreurs de compilation sur la route (#include manquant par exemple). Normalement, saisir l'erreur GCC dans Google donne la solution.

    La compilation nécessite l'utilisation de make en version 3.81 pour cette branche, mais cette contrainte n'est plus valable pour la branche master. Pour Fedora, il suffit de récupérer le RPM de make dans les archives de la Fedora 13.

    1.2. Compilation

    Une fois l'environnement en place, rendez-vous dans le répertoire des sources et entrez les commandes suivantes :

    Le fichier envsetup.sh fournit différentes commandes utilisées pour la compilation et en particulier lunch. Cette dernière vous demande pour quel matériel vous souhaitez compiler ; l'option full-eng compilera pour l'émulateur.

    On lance la compilation proprement dite avec make.

    Si la compilation réussit, les images seront dans out/target/product/generic/et nommées system.img, ramdisk.img, userdata.img.

    Attention, inutile d'installer ces images sur votre téléphone, AOSP ne fournit pas les drivers à part pour certains matériels comme le Galaxy Nexus (maguro), la PandaBoard (panda), ...Et bien sûr l'émulateur.

    Dans cet article, nous ferons tous nos tests sur l'émulateur.

    1.3. Émulateur

    Vous pouvez maintenant lancer l'émulateur avec l'image que vous venez de compiler. Pour cela, dans le même terminal où vous avez fait la compilation, lancez :

    L'émulateur Android doit apparaître.

    Vous pouvez accéder à un shell avec la commande suivante (depuis n'importe quel terminal cette fois-ci) :

    2. Script de construction

    Comme on l'a vu, AOSP utilise make pour construire une image. En pratique, chaque sous-projet contient un fichier Android.mk à la racine ; ce fichier est un fragment de Makefile. Il utilise divers variables et macros définies dans le dossier build.

    Lors de la compilation, le système recherche tous les fichiers Android.mket les assemble dans un grand Makefile. make peut alors créer son arbre de dépendances et compiler chaque sous-projet.

    3. Mise en pratique : Webkey

    3.1. Qu'est-ce que Webkey ?

    Pour comprendre le fonctionnement du système de compilation, nous allons voir comment intégrer une nouvelle application à une image. J'ai choisi Webkey comme exemple. C'est une application qui permet de contrôler un système Android depuis un navigateur.

    Captures d'écran de la partie navigateur et Android

    Cette application est intéressante, car elle est constituée d'un exécutable (sous forme de démon) et d'une application Android.

    Commençons par récupérer les sources de Webkey à l'adresse suivante : http://androidwebkey.com/html/webkey/webkey-2.03.zip

    Après avoir décompressé l'archive, si on navigue dans les sources, on constate que l'auteur se préoccupe peu des bonnes pratiques de distribution logicielle. On trouve l’exécutable dans les sources, ainsi que les fichiers *.o et *.a. On voit tout de même apparaître deux dossiers intéressants : le dossier service avec le binaire Webkey et le dossier java avec l'application Android.

    3.2. Compilation du binaire

    3.2.1. Mise en place des sources

    Dans AOSP, les sources des binaires issues d'autres projets sont placées dans le dossier external. Il nous faut donc copier le dossier service issu de l'archive vers un dossier external/webkey. On se place maintenant dans external/webkey, et on fait un peu de ménage :

    Vous souhaitez commenter cet article ?
    Brèves Flux RSS
    Édito : GNU/Linux Magazine Hors-Série N°72
    Édito : Linux Pratique N°84
    Édito : MISC N°74
    Édito : GNU/Linux Magazine N°173
    Édito : MISC Hors-Série N°9
    Communication RSS Com. RSS Presse
    HACKITO ERGO SUM
    GNU/Linux Magazine, partenaire du SymfonyLive Paris
    Opensilicium, partenaire de RTS EMBEDDED
    Linux Pratique et Linux Essentiel, Partenaire de l’Open World Forum
    Gnu/Linux Magazine, Partenaire des JDEV 2013
    Rechercher un article dans notre base documentaire :
    En kiosque Flux RSS

    Le tout nouveau GNU/Linux Magazine HS est disponible dès maintenant chez votre marchand de journaux et sur notre site marchand.

    Découvrez le sommaire de ce numéro et un aperçu de ce magazine...

    Lire la suite...

    Le tout nouveau Linux Pratique est disponible dès maintenant chez votre marchand de journaux et sur notre site marchand.

    Découvrez le sommaire de ce numéro et un aperçu de ce magazine...

    Lire la suite...

    Le tout nouveau Misc est disponible dès maintenant chez votre marchand de journaux et sur notre site marchand.

    Découvrez le sommaire de ce numéro et un aperçu de ce magazine...

    Lire la suite...

    Le tout nouveau GNU/Linux Magazine est disponible dès maintenant chez votre marchand de journaux et sur notre site marchand.

    Découvrez le sommaire de ce numéro et un aperçu de ce magazine...

    Lire la suite...

    Le tout nouveau Misc HS est disponible dès maintenant chez votre marchand de journaux et sur notre site marchand.

    Découvrez le sommaire de ce numéro et un aperçu de ce magazine...

    Lire la suite...

    Le tout nouveau Open Silicium est disponible dès maintenant chez votre marchand de journaux et sur notre site marchand.

    Découvrez le sommaire de ce numéro et un aperçu de ce magazine...

    Lire la suite...