Comment créer une ROM personnalisée à partir d’un projet Open Source Android

Si vous êtes familier avec l’enracinement de votre téléphone Android ou le téléchargement de ROM personnalisées, telles que le très populaire CyanogenMod ou son système d’exploitation successeur, vous vous êtes peut–être demandé – comment les gens construisent-ils ces ROM? Combien de travail va exactement dans le développement d’une ROM personnalisée?

Ce guide vous expliquera les bases du développement de votre propre ROM Android personnalisée. Il convient de noter qu’il s’agit d’une entreprise massive – si vous n’avez aucune expérience dans le codage ou la manipulation de terminaux Linux, vous voudrez peut-être acquérir des connaissances avant de plonger dans ce deep-end. Mais si vous avez au moins une idée de base de ces choses, je vais essayer d’expliquer les choses aussi simplement que possible, afin que vous puissiez suivre.

Fondamentalement, ce que nous faisons est de télécharger le code source Android brut (AOSP) et de le modifier à notre guise. Parce qu’il y a tellement de sources parmi lesquelles choisir pour différents appareils, ce guide fera simplement référence à la source principale connue sous le nom d’AOSP (Android Open Source Project).

Maintenant, la chose à propos de l’AOSP est que le code source pur n’inclut pas les propriétés matérielles spécifiques au périphérique. En termes simples, le matériel comme votre caméra et votre GPU ne fonctionnera pas « prêt à l’emploi » lors du développement avec l’AOSP. En fait, votre appareil ne démarrera même pas sans ces binaires matériels.

Si vous développez pour un téléphone de marque Google (Pixel, Nexus, etc.), vous pouvez trouver les binaires matériels directement à partir de Google, et ce guide vous guidera à travers leur obtention et leur intégration dans votre ROM. Cependant, si vous développez une ROM pour un téléphone de marque (Sony, Samsung, etc.) well eh bien, bénissez votre cœur, car vous allez faire un tour.

Certains fabricants ont leurs propres projets open-source ou publient des outils de développement pour les développeurs potentiels, tandis que d’autres fabricants gardent un œil sur leurs codes propriétaires. Voici une brève liste des projets open source des fabricants les plus populaires:

Centre de publication Open Source Samsung
Monde des développeurs Sony
Support Lenovo
Centre de publication Open Source Huawei
Développeurs Motorola

Avec cela, continuons en supposant que nous construisons une ROM pour l’expérience Android la plus basique, vanille, pour un appareil Google Pixel. Avec ces connaissances à votre portée, vous pourrez vous développer vous-même et commencer à développer des versions personnalisées de ROM spécifiques du fabricant.

Exigences pour ce guide:

  • Projet Open Source Android
  • Téléphone Pixel XL ou émulateur Android pour Linux
  • Système d’exploitation Linux 64 bits – Ubuntu ou Linux Mint sont les distributions les plus conviviales pour les débutants, alors que BBQLinux a été développé spécifiquement pour les développeurs Android.
  • Python
  • Un ordinateur costaud (la compilation du code prend beaucoup de mémoire et d’espace!)

Configuration de votre environnement de génération

Commençons par configurer l’émulateur Android sur votre machine Linux. Que vous ayez ou non un appareil Google Pixel XL, il est toujours plus sûr d’essayer votre nouvelle ROM sur un émulateur Android avant de la flasher sur votre appareil. Mon préféré est Genymotion, alors je vais vous guider dans l’installation de cet émulateur particulier. Cependant, vous pouvez également consulter ce guide « Meilleurs émulateurs Android », car la plupart d’entre eux ont également une compatibilité Linux.

Rendez-vous sur le site Web de Genymotion, enregistrez un compte, vérifiez-le par e-mail et téléchargez l’exécutable sur votre bureau Linux.

Ouvrez maintenant un terminal Linux et tapez :

Chmod +x genymotion-xxxxx.bin (remplacez xxxx par le numéro de version dans le nom du fichier)
./ genymotion – xxxxxx.bin

Appuyez sur Y pour créer le répertoire Genymotion. Tapez maintenant le terminal :

cd genymotion & &./genymotion

Maintenant, il vous demandera de commencer le processus d’installation, alors continuez à cliquer sur Suivant jusqu’à ce que vous arriviez à la fenêtre Ajouter des périphériques virtuels. Sélectionnez « Pixel XL » sous l’option Modèle d’appareil, puis terminez l’installation. Vous pouvez tester le périphérique virtuel si vous le souhaitez, ce sera essentiellement comme avoir un téléphone Pixel XL sur votre bureau.

Configurons maintenant Python:

$ apt-get install python

Maintenant, nous devons configurer le kit de développement Java sur votre machine Linux. Ouvrez le terminal Linux et tapez les commandes suivantes :

su sudo apt-get update
su sudo apt-get install openjdk-8-jdk

Vous devez maintenant configurer le système Linux pour autoriser l’accès au périphérique USB. Exécutez le code suivant dans le terminal Linux:

Cela téléchargera le 51-Android requis.fichier txt qui permet l’accès au périphérique USB susmentionné. Ouvrez le.fichier txt et modifiez-le pour inclure votre nom d’utilisateur Linux, puis placez le.fichier txt à l’emplacement suivant : (en tant qu’utilisateur root). Branchez maintenant votre appareil sur votre ordinateur via USB pour que les nouvelles règles prennent automatiquement effet.

Téléchargement de la source Android

L’AOSP est hébergé sur Git, nous allons donc utiliser un outil appelé Repo pour communiquer avec Git.

Nous devons d’abord configurer un dossier /bin dans votre répertoire personnel. Tapez les commandes suivantes dans le terminal Linux :

mkmkdir~/bin
PATHPATH=~/bin:PATHPATH

Maintenant, nous allons télécharger l’outil de dépôt, tapez donc dans le terminal Linux:

curlcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chchmod a + x ~/bin/repo

Une fois le dépôt installé, nous devons maintenant créer un répertoire vide pour contenir vos fichiers de travail. Tapez donc ceci dans le terminal Linux:

mkmkdir WORKING_DIRECTORY
cd cd WORKING_DIRECTORY

Maintenant, nous allons configurer Git avec votre nom et votre adresse e–mail – utilisez une adresse Gmail que vous vérifiez régulièrement, sinon vous ne pourrez pas utiliser l’outil de révision de code Gerrit.

user git config – utilisateur global.nom « Votre nom »
conf git config – utilisateur global.courriel [email protected]

Maintenant, nous allons dire à Repo d’extraire le dernier manifeste maître d’AOSP de Git :

$repo init-u https://android.googlesource.com/platform/manifest

Si cela a été fait avec succès, vous recevrez un message indiquant que Repo a été initialisé dans votre répertoire de travail. Vous trouverez également un « .répertoire « repo » dans le répertoire client. Alors maintenant, nous allons télécharger l’arborescence des sources Android avec:

syncrepo sync

Création de la source Android

C’est là que les binaires matériels mentionnés au début de ce guide entrent en jeu. Rendez-vous sur la page des pilotes AOSP et téléchargez les binaires Pixel XL pour Android 7.1.0 (NDE63P). Vous souhaitez télécharger à la fois l’image du fournisseur et les composants matériels. Ceux-ci sont des archives compressées, alors extrayez-les sur votre bureau et exécutez le script auto-extractible à partir du dossier racine. Choisissez d’installer les binaires à la racine du répertoire de TRAVAIL que nous avons créé précédemment.

Tapez maintenant dans votre terminal Linux:

make make clobber
sourcesource build/envsetup.sh

Maintenant, nous allons choisir la cible à construire, alors tapez:

lunchlunch aosp_marlin-userdebug
setsetpaths
make make-j4

Là, nous avons maintenant « construit » une ROM Android à partir de la source. Testons-le donc dans l’émulateur, en tapant dans le terminal:

$emulator

Alors jouez un peu dans l’émulateur. Comme vous pouvez le voir, une expérience Android purement vanillée est assez minime, et c’est pourquoi les fabricants personnalisent l’AOSP à leurs besoins. Vous pouvez donc flasher cette ROM que nous venons de construire sur votre appareil si vous le vouliez, mais sans ajouter d’améliorations, une expérience Android purement vanillée serait en effet une chose très ennuyeuse.

Donc, ce que les fabricants vont généralement faire avec l’AOSP, c’est le fork, ajouter leurs propres binaires propriétaires, personnaliser l’interface utilisateur, ajouter un logo de démarrage, etc. Le fabricant ne fait que peindre sur la ROM Android d’origine, et ce sera également votre prochain objectif.

Restez à l’écoute, car la deuxième partie de ce guide passera par l’ajout de polices, de thèmes et d’une animation de démarrage à votre ROM!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.