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/