Introduction

Ce petit papier va expliquer une compilation complète d'Android generic, à noter que pour le moment, seul la compilation pour le dream, n'est dispo, pas pour le sapphire (Htc Magic), mais ayant testé les 2 les binaires qui en découlent sont identiques. Donc je préconise une compilation générique, une compilation kernel, puis l'ajout des fichiers init à la main pour sapphire.

Prérequis

Pour compiler il va te falloir un environnement de travail propre. Il faut un système d'exploitation 32 bits, qui tourne sur un kernel linux, je pense que le plus générique possible fera l'affaire, un i386 sera bien donc j'ai choisis pour se faire : Debian lenny 32 bits i386 installer sur un kvm (kernel virtual machine) Gentoo 64 bits pure (sans une octet 32).

Une fois la machine installer, réelle ou virtuelle, cela n'as pas d'importance, la connexion avec Android n'est pas forcément faites avec cette machines ni même la construction de rom en ce qui me concerne. J'ai dédié une machine virtuelle à la compilation d'Android. Il faut matériellement parlant 1.5 de ram sur cette machine virtuelle, mais je pense que 2Go ne seront pas de trop, cela ne sert que pour la compilation du full android, à noter que pour compiler uniquement le kernel je ne met que 380 de ram.

Modification des sources.list pour avoir les binaires proprios :

# vim /etc/apt/sources.list
deb http://ftp2.fr.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp2.fr.debian.org/debian/ lenny main contrib non-free

deb http://security.debian.org/ lenny/updates main contrib non-free
deb-src http://security.debian.org/ lenny/updates main contrib non-free

deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free

Mise à jour de la liste des paquets et upgrade s'il y a besoin :

# aptitude update && aptitude safe-upgrade

Installation des dépendances :

# aptitude install git-core gnupg sun-java5-jdk flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev libreadline5 libreadline5-dev readline-common

Pour finir d'installer les dépendances il faut compiler python 2.4 depuis les sources, car il faut le support readline d'actif :

# wget "http://www.python.org/ftp/python/2.4.6/Python-2.4.6.tar.bz2"
# tar xvjf Python-2.4.6.tar.bz2 && cd Python-2.4.6/
# ./configure --disable-ipv6 --with-readline && make && make install
Si on téléchargeait les sources ?

Premièrement nous allons créer un environnement de travail agréable, avec tout ce qu'il faut, un bon shell etc.. Personnellement j'utilise zsh, je donnerais donc la configuration du shell que j'utilise un ~/.zshrc.

# mkdir -p /root/Build/bin/ /root/Build/luoAndroid
# export PATH="$PATH:/root/Build/bin"
# cd ~/Build && wget "http://android.git.kernel.org/repo" -O bin/repo

ou
# curl http://android.git.kernel.org/repo >~/Build/bin/repo

On continue.
# chmod a+x ~/Build/bin/repo
# cd ~/Build/luoAndroid/
# repo init -u git://android.git.us.kernel.org/platform/manifest.git -b cupcake
# vim .repo/manifest.xml

Remplacer la 4ème ligne par celle là :
fetch="git://android.git.us.kernel.org/"

(je choisis .us, car j'ai rencontré des soucis en laissant par défaut parfois.) Ps: le mail valide n'est pas nécessaire.

Il suffit de se placer à la racine et ensuite d'étider un fichier de configuration pour ajouter un support de langue, et des modules par exemple.

# cd ~/Build/luoAndroid/
# vim buildspec.mk

TARGET_PRODUCT:=generic
CUSTOM_LOCALES:=en_US fr_FR
LOCAL_MODULE:=aes bison bluez bsdiff bzip2 clearsilver dbus dhcpcd dosfstools dropbear e2fsprogs elfcopy elfutils embunit emma esd expat fdlibm freetype gdata genext2fs giflib googleclient icu4c iptables jdiff jhead jpeg libffi libpcap libpng libxml2 netcat netperf neven opencore openssl oprofile ping ppp protobuf safe-iop skia sonivox sqlite srec strace tagsoup tcpdump tinyxml tremor webkit wpa_supplicant xdelta3 yaffs2 zlib backup latencytop libpagemap librank procmem procrank showmap showslab su timeinfo

# make

Vous récupérerez le travail dans ~/Build/luoAndroid/out/.

android/compile_android_en_entier.txt · Last modified: 2010/05/28 19:41 by lamusic