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

la source connu sous le nom AOSP (Android Open Source Project) .



Maintenant, le problème avec l'AOSP est que le code source pur n'inclus pas propriétés matérielles spécifiques au périphérique. En termes simples, du matériel tel que votre caméra et votre GPU ne fonctionnera pas «hors de la boîte» 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 de Google , et ce guide vous expliquera comment les obtenir et les intégrer à votre ROM. Cependant, si vous développez une ROM pour un téléphone de marque (Sony, Samsung, etc.) ... eh bien, bénissez votre cœur, car vous êtes prêt à faire un tour.



Certains les fabricants ont leurs propres projets open source ou lancent des outils de développement pour les futurs développeurs, 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 Samsung Open Source
Monde des développeurs Sony
Assistance Lenovo
Centre de publication Open Source de Huawei
Développeurs Motorola



Avec cela à l'écart, continuons en supposant que nous construisons une ROM pour l'expérience Android la plus basique, la vanille, pour un appareil Google Pixel. Avec ces connaissances à votre actif, vous serez en mesure de vous diversifier et de commencer à développer des versions personnalisées de ROM de fabricants spécifiques.

Conditions requises pour ce guide:

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

Configuration de votre environnement de construction

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 en le faisant clignoter sur votre appareil. Mon préféré est Genymotion, je vais donc vous expliquer comment installer cet émulateur en particulier. Cependant, vous pouvez également consulter ce guide ' Meilleurs émulateurs Android », Car la plupart d'entre eux sont également compatibles avec Linux.

Dirigez-vous vers le Site Web 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 de fichier)
./genymotion-xxxxxx.bin

presse ET pour créer le répertoire Genymotion. Tapez maintenant dans 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 de l'appareil, puis terminez l'installation. Vous pouvez tester l'appareil virtuel si vous le souhaitez, ce sera essentiellement comme avoir un téléphone Pixel XL sur votre bureau.

Configurons maintenant Python:

$ apt-get installer python

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

$ sudo apt-get mise à jour
$ sudo apt-get install openjdk-8-jdk

Vous devrez maintenant configurer le système Linux pour autoriser l'accès aux périphériques USB. Exécutez le code suivant dans le terminal Linux:

Cela téléchargera le fichier 51-android.txt requis 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: (comme le 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:

$ mkdir ~ / bin
$ PATH = ~ / bin: $ PATH

Maintenant, nous allons télécharger l'outil Repo, alors tapez dans le terminal Linux:

$ curl https://storage.googleapis.com/git-repo-downloads/repo> ~ / bin / repo
$ chmod a + x ~ / bin / repo

Une fois Repo installé, nous devons maintenant créer un répertoire vide pour contenir vos fichiers de travail. Alors tapez ceci dans le terminal Linux:

$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY

Nous allons maintenant 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.

$ git config –global user.name «Votre nom»
$ git config - utilisateur.email global
you@gmail.com

Nous allons maintenant demander à Repo d'extraire le dernier manifeste principal d'AOSP à partir de Git:

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

Si l'opération est réussie, vous recevrez un message indiquant que Repo a été initialisé dans votre répertoire de travail. Vous trouverez également un ' .repo » répertoire dans le répertoire client. Nous allons maintenant télécharger l'arborescence des sources Android avec:

Synchronisation de $ repo

Construire la source Android

1

C'est là que les binaires matériels mentionnés au début de ce guide entrent en jeu. Passons à la 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. Celles-ci se présentent sous forme d'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 WORKING_DIRECTORY que nous avons créé précédemment.

Tapez maintenant dans votre terminal Linux:

$ faire clobber
$ source build / envsetup.sh

Nous allons maintenant choisir la cible à créer, alors saisissez:

$ lunch aosp_marlin-userdebug
$ setpaths
$ make –j4

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

$ émulateur

Alors jouez un peu dans l'émulateur. Comme vous pouvez le voir, une expérience Android purement vanille est assez minime, et c'est pourquoi les fabricants personnalisent l'AOSP en fonction de leurs besoins. Alors toi pourrait flashez cette ROM que nous venons de créer sur votre appareil si vous le souhaitez, mais sans ajouter d'améliorations, une expérience Android purement vanille serait une chose très ennuyeuse.

Donc, ce que les fabricants font généralement avec l'AOSP, c'est le fourrer, 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 donc 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!

5 minutes de lecture