Repost d'un ancien article à moi, si des liens ne fonctionne plus ou le contenu n'est plus valide. N'hésité pas à m'en faire part, voir mieux à m'indiquer comment améliorer l'article.

J'ai décider aujourd'hui de compiler mon propre noyau(kernel) pour lui ajouter la possibilité d'utiliser mon téléphone en tant que clavier et souris à l'occasion.
Ce faisant, je me suis dit que partager ma méthode pourrait servir quelqu'un et donc je partage.

Je me baserai sur le tutoriel ici.

Première pensé, ne pas réinventer la roue! Mon téléphone personnel est un Oneplus one et plein de noyau différent existe déjà en open source. Je commence par chercher celui qui ma l'air le plus élaborer, autant partir sur quelques chose de bon... Puis je réagi ! Peut-être que pour x ou y raison, il ne sera pas compatible avec la rom que j'utilise à savoir BlissPop. Il y a plus de chance que j'ai un noyau viable en prenant celui fourni avec ma rom.

En générale pour ce qui est de faire de la compilation, je vous conseillerai Linux comme os et dans notre cas présent Ubuntu car la majorité des tutoriels disponible sont pour Ubuntu.
Pour ma part je suis sur du Archlinux, donc si ce n'est pas votre cas, vous devrais adapter quelques peu les lignes de commandes suivantes.

première chose à faire, créer un dossier android contenant un autre dossier kernel:

mkdir -p android/kernel
cd android

installer si ce n'est pas déjà fait openjdk-7-jdk:

sudo pacman -S jdk7-openjdk

Ensuite regardons les autres pré-requis... Propre à Archlinux, donc différent certainement pour les autres Os:

sudo pacman -S gcc git gnupg flex bison gperf sdl wxgtk squashfs-tools curl ncurses zlib schedtool perl-switch zip unzip libxslt python2-virtualenv bc

installer ensuite repo l'outil de Google pour gérer plusieurs repository à la fois:

yaourt repo

je copy les sources de ma rom:

repo init -u https://github.com/TeamBliss-LP/android.git -b lp5.1
repo sync

revener le lendemain...

virtualenv2 venv # Creates a directory, venv/, containing the Virtualenv
ln -s /usr/lib/python2.7/* venv/
source venv/bin/activate
source build/envsetup.sh
breakfast bacon // ou breakfast nom_de_votre_téléphone
cd kernel/
git clone git://github.com/DooMLoRD/android_prebuilt_toolchains.git toolchains
export ARCH=arm
export TOOLCHAIN=/pathtosource/prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/bin
// où on remplace pathtosource par le chemin à la base de la rom
export CROSS_COMPILE=~/android/kernel/toolchains/arm-eabi-linaro-4.6.2/bin/arm-eabi-
cd oneplus/msm8974/ // chemin à adapter ici en fonction de votre téléphone

appliquer votre patch si vous en avez un

patch -p1 < yourpatch.patch

make clean
make proper
make cyanogenmod_bacon_defconfig // config à adapter ici en fonction de votre téléphone
// le chemin des configs d'exemples arch/arm/configs/