Tutoriel Compiler une rom custom [A12]

  • Auteur de la discussion Neil_Armstrong_
  • Date de début
Neil_Armstrong_

Neil_Armstrong_

Membre
Inscrit
3 Janvier 2014
Messages
197
Points
16
  • #1
Tutoriel Phnandroid


Avertissement : Cette opération comporte des risques. Phonandroid et moi-meme ne pouvons être tenus responsables des éventuels problèmes rencontrés.

En parcourant le forum, j'ai trouvé que le sujet était bon à dépoussiérer... Je vous propose donc de compiler pour votre téléphone une rom custom !
Le tutoriel s'inspire sur la forme du tutoriel proposé par Seb2669 et permet de compiler
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !
(pour l'exemple), mais ouvre la porte à la compilation d'autres roms en tout genre, et pourquoi pas à la création de sa propre rom custom.

Pour qui est ce tuto ?
  • Pour les débutants
  • Pour les gens ayant un peu ou pas de capacités pour le développement
  • Pour les personnes voulant vraiment apprendre comment faire des roms custom
  • Pour les personnes voulant en savoir plus sur Android et ne sachant pas où commencer

Les outils dont vous aurez besoin :

  • Un PC sous Linux (Ubuntu 22.04, Debian, Linux Mint...) idéalement, ou un PC sous Windows avec
    S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !
    installé et une distribution Linux installée (Ubuntu pour plus de simplicité)
  • au minimum 300Go de libre
  • 16Go de RAM
  • Une connxion internet décente et fiable
  • 2 outils importants : la patience et la curiosité
Le tutoriel est basé sur Ubuntu 22.04, avec 32Go de RAM et un SSD dédié de 500Go.

ETAPE 1 - PREPARER L'ENVIRONNEMENT DE TRAVAIL
1.1 ADB & FASTBOOT


On va installer adb et fastboot via ce lien
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !
. On l'extrait en utilisant dans un terminal (et dans le bon chemin d'accès) :

Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
Le nom de l'archive téléchargée est susceptible de changer au fil des versions, à vous d'adapter le code ;)

"ADB et Fastboot sont deux outils qui permettent de communiquer et d’envoyer des commandes à un appareil Android ou bien au Windows Subsystem for Android (WSA). Ils ont tous deux des fonctions différentes :


  • ADB (Android Debug Bridge) : ADB permet d’envoyer des commandes à un appareil Android (du moment que le débogage USB est activé sur l’appareil) ou au WSA. Avec la commande adb, vous pouvez transférer des fichiers (adb push, adb pull), accéder à l’interpréteur de commandes (adb shell) ou encore installer des applications (adb install).
  • Fastboot : Fastboot permet d’envoyer des commandes au bootloader (chargeur d’amorçage) de l’appareil Android, ce qui signifie que vous pouvez flasher/modifier des ROMs alternatives, des Recoveries personnalisés…"

Une fois fait, on va indiquer le chemin de ces 2 utillitaires à notre ~/.profile
Pour éditer le fichier .profile , on éxécute la commande suivante :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

On ajoute à la fin du document les lignes suivantes :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Une fois ajouté, on fait CTRL + X pour quitter le fichier, puis on appuie sur Y pour sauvegarder les changements sans toucher au nom du fichier.
Pour mettre à jour l'environnement de travail, on tape dans un terminal
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

1.2 PAQUETS NECESSAIRES

Dans un terminal, on tape :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

1.3 CREATION DES DOSSIERS

On créé les dossiers dans lequel on va travailler :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Pour la suite du tutoriel nous compilerons Lineage OS, le dossier créé peut donc s'appeler lineage par exemple.
Le dossier bin lui va contenir
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !
. c'est ce qui va permettre de récupérer le code source de la rom que vous souhaitez compiler.

1.x

Pour installer la commande repo, on tape les 2 commandes suivantes :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Si ce n'est pas écrit par défaut, on va rajouter le chemin d'accès de repo contenu dans le dossier bin à notre fichier .profile.
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
On rajoute à la fin si besoin les lignes suivantes :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

M^eme manipulation que précédemment. On retape dans un terminal source ~/.profile pour mettre à jour notre environnement une fois le fichier mis à jour.

1.x AUTHENTIFICATION

La commande repo nécessite une authentification, dans un terminal on va donner notre nom (pseudonyme) avec la première ligne ci-dessous ainsi qu'une adresse mail gr^ace à la seconde.
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

BONUS - UTILISER CCACHE POUR COMPILER PLUS RAPIDEMENT

Une fois ce paquet paramétré, les compilations suivantes devraient grandement ^etre accélérées.
Dans un terminal, on entre ces 2 lignes pour confirmer l'utilisation de Ccache, puis son chemin d'accès :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

On va ensuite spécifier combien de cache on veut que Ccache utilise. On ouvre le fichier bashrc depuis un terminal :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
Et on rajoute à la fin du fichier :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
où 50 = 50Go de cache. un chiffre compris entre 25 et 100Go permettra de gagner un temps important lors des prochains builds. attention à garder 250Go (GRAND MINIMUM) d'espace libre pour télécharger les sources puis compiler votre rom !)

ETAPE 2 - TELECHARGER LA SOURCE ET PREPARER LES FICHIERS SPECIFIQUES
2.1 INITIALISER LE DEPOT DE VOTRE SOURCE ET TELECHARGER LE CODE SOURCE


Depuis le terminal, on se positionne dans le dossier précédemment nommé lineage :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Toujours dans le terminal, on vient initialiser l'endroit où la source va ^etre téléchargée :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

On vérifie bien que la branche (l'argument ci-dessus "-b" + le nom de la branche "lineage-19.1"= permet de définir la branche que l'on souhaite télécharger) est celle que l'on souhaite. En général, les branches correspondent aux différentes versions d'Android. Lineage 19.1 = Android 12 ; Lineage 18.1 = Android 11 .... chaque rom custom peut nommer ses branches comme elle le souhaite, mais on retrouve quand m^eme un lien (Android 12 aussi nommé Android S = on trouve des branches "snow" , ou "sapphire", ou "s12.1"...)

On peut maintenant télécharger le code source :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
l'argument -j permet de définir le nombre de coeurs de processeurs vous souhaitez allouer. On peut utiliser -j 4 pour utiliser 4 coeurs, ou -j$(nproc --all) pour utiliser tous les coeurs disponibles.
l'argument -c permet de ne télécharger que la branche que vous avez choisie au lieu de télécharger toutes les branches disponibles dans la rom.

2.2 PREPARER LES FICHIERS SPECIFIQUES

Dans un terminal et dans le dossier ~/android/lineage, on rentre successivement :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

La première commande permet d'entrer dans un mode qui permet d'utiliser les commandes qui permettront de configurer et de lancer la compilation.
La seconde commande permet de récupérer les fichiers spécifiques nécessaire à la bonne compilation de la rom. Personnellement, mon smartphone est un Oneplus 8 Pro, je tape donc :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
Vous pouvez trouver votre smartphone "codename" on cherchant sur internet.


Les différents "arbres spécifiques" (device trees et kernel tree en anglais) ont normalement été ajoutés à la source de votre rom. Il se peut en revanche que vous ayez une erreur concernant la partie "vendor". Pas de panique, il suffit de cloner depuis le site
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !
votre arbre "vendor" correspondant à la marque de votre smartphone. Pour une Oneplus, il faut cloner
S'il vous plaît, Connexion ou S'inscrire pour voir le contenu ou les urls !
par exemple.
Sur la page Github proprietary_vendor_votre_marque de_smartphone, on clique sur le bouton vert "Code", et on copie le lien https.
Dans le terminal (toujours dans le dossier lineage), on tape :
Git:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Une fois fait, on relance la commande ci-dessous dans le terminal :
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!
L'erreur concernant "vendor" devrait avoir disparu (au coin de ta rue)

Il existe d'autres méthodes pour récupérer le dossier vendor que j'explorerais plus tard.

ETAPE 3 COMPILATION
C'est l'instant de vérité.

Dans le terminal, on tape successivement
Code:
S'il vous plaît, Connexion ou S'inscrire to view codes content!

Plus qu'à attendre ! Vous ne pourrez pas manquer la résultat (rouge = erreur, vert = bravo !)
Pour information, mes premiers builds prennent en général 2h30, puis les suivants une trentaine de minutes maximum...






J'espère avoir pu vous aider, le topic reste à peaufiner (sur la forme pour une lisbilité irréprochable) bien sur, je reste à l'écoute pour toute correction ou demande d'information supplémentaire
 
Dernière édition:
Dernière édition:
Neil_Armstrong_

Neil_Armstrong_

Membre
Inscrit
3 Janvier 2014
Messages
197
Points
16
  • #2
Réservé pour détailler la customisation d'une rom
 
Neil_Armstrong_

Neil_Armstrong_

Membre
Inscrit
3 Janvier 2014
Messages
197
Points
16
  • #3
Dernière réservation pour divers
 
M

Membre supprimé 949719

  • #4
Dernière édition par un modérateur:
  • Like
Les réactions: Texas2607 et Tekken

Sujets en relation

Haut Bas