Compiler android sur ubuntu 9.10

Bijour à tous …
Après quelques semaines sans article, il me fallait du lourd pour affirmer ma virilité mon côté geek … j’ai donc décidé d’écrire un petit truc sur android parce que j’ai rien d’autre à foutre et que je voulais voir tourner mes proc à plein régime …


Pour ce faire il vous faudra :

  1. de la patience
  2. de la patience
  3. de la patience
  4. de la patience
  5. un ordi (facultatif si vous pouvez compiler de tête … pour ma part j’y arrive pas encore :s)
  6. 4Go de ram + un bon CPU
  7. linux

Il vous faudra aussi installer une machine java très ancienne (1.5) à télécharger ici. Installez-là en mode utilisateur simple dans un dossier dédié à la compilation d’android, chez moi : ~/Android/.

Ensuite, le super script, les quelques variables au début du fichier sont à modifier, le reste est automatisé.
Ce que fait le script :

      Téléchargement du fichier repo
      Récupération/Mise à jour du dépot d’android (très lourd, il faut 1 heures pour dl 2Giga de données)
      Compilation des sources d’android (tout les binaires, … c’est très long)
      et c’est tout!!

Faudra quand même attendre 3 ou 4 heures lors de la première compilation/récupération des fichiers…

#!/bin/bash
JDK15=/home/$USER/Documents/Android/jdk1.5.0_21/bin
BINDIR=/home/$USER/Documents/Android
MYDROID=/home/$USER/Documents/Android/mydroid
TYPE_MACHINE=`uname -m`
PATH=$JDK15:$PATH
#Need 1.5 https://cds.sun.com/is-bin/INTERSHOP.enfinity/WFS/CDS-CDS_Developer-Site/en_US/-/USD/ViewProductDetail-Start?ProductRef=jdk-1.5.0_21-oth-JPR@CDS-CDS_Developer
##############DON'T TOUCH BELOW... OR SUFFER HUNDREDS PAINS ... MUUAAHAHAHAHAHAHAHAHAAHAHHAAAA
echo "Lancement de SIACAKDLM"
echo "Système d'install automatisé de compilation d'android pour kikoolol dépressif en 1337n355 mode"
echo "Temps requis pour arriver à la fin de ce script après execution : 2h00"
echo "Installation des fichiers requis ..."
sudo apt-get -yqq install git-core gnupg sun-java6-jdk flex bison gperf libsdl-dev ncurses-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev valgrind
if [ $TYPE_MACHINE == "x86_64" ]
then
echo "Zetes en 64bits ... on en rajoute une couche ;)"
sudo apt-get -yqq install ia32-libs lib32z1-dev lib32ncurses5-dev gcc-multilib g++-multilib lib32readline5-dev
fi
if [ ! -f $BINDIR/repo ]
then
echo "Récupération du fichier repo"
wget -qO $BINDIR/repo http://android.git.kernel.org/repo && chmod +x $BINDIR/repo
fi
if [ ! -d $MYDROID ]
then
echo "Création du dossier $MYDROID"
mkdir $MYDROID
fi
cd $MYDROID
if [ ! -d $MYDROID/prebuilt/ ]
then
$BINDIR/repo init -u git://android.git.kernel.org/platform/manifest.git
fi
echo "Mise à jour du dépôt ... ça prend du temps ... beaucoup de temps :s"
$BINDIR/repo sync
export CCOMPILER=$MYDROID/prebuilt/linux-x86/toolchain/arm-eabi-4.4.0/bin/arm-eabi-

cd $MYDROID && source build/envsetup.sh && sed -n -e "s/^add_lunch_combo//gp" vendor/*/vendorsetup.sh && lunch generic-eng && make -j4

Les fichiers de sorties de trouvent dans : $MYDROID/out/target/product/generic (les .img contiennent l’os , les logiciels et tout le bazard qu’embarque android).
Voilà, laisser mouliner, puis tester-le en machine virtuelle avant l’install sur votre phone (en n’oubliant pas bien sûr de faire une sauvegarde ;)).

Pour tester votre système android fraichement compilé, il vous suffit d’utiliser AVD (fournit avec le SDK de dev de google), d’aller dans le dossier .android/avd/le nom d’une machine générée/, et d’y mettre votre image système (et vos autres img si ça vous chante).

Ce qui m’a donné la version éclair pour mon émulateur :

Quelques liens sympa (dont je me suis grandement inspirés, que j’ai plagiés) :

  1. [EN]Explicatif sur le fonctionnement d’android
  2. Article plus poussé en français d’unixgarden
  3. L’astuce pour tester son system.img
  4. le tuto de compilation de cyanogen + packaging pour aller plus haut loin

La compilation et l’installation d’un cyanogenmod sera pour plus tard 😉

2 réflexions sur “ Compiler android sur ubuntu 9.10 ”

  1. On trouve facilement comment compiler Android mais par contre pour installer ce qu’on a compiler c’est une autre histoire.

    Serais-tu me dire comment faire pour installer ses img (ramdisk.img, system.img et userdata.img) sur une tablette/téléphone Android ?

  2. en fait, ça dépend du téléphone et de ses périphériques, généralement faut passer via adb par la commande flash (system, recovery , …), ça reste risqué.

    Sinon, si tu te base sur cyanogen, ils ont un script pour générer les .zip qu’on peut mettre à la racine de la SD et flasher en passant par le recovery. (Le script a peut-être été porté dans la branche d’android, dnoc dès que t’a les sources tu peux générer le zip).

Les commentaires sont fermés.