janvier 18, 2022

DIY: Compiler la ROM Android à partir du Code Source

Android est le système d’exploitation mobile le plus utilisé au monde. Et la meilleure partie, c’est complètement open-source, ce qui en termes simples, signifie que le Code source, le programme réel est disponible ouvertement pour que chacun puisse télécharger, personnaliser et construire ses propres ROM.

Il existe de nombreuses distributions Android personnalisées, les plus populaires étant CyanogenMod, SlimROM, Android Paranoïaque, AOKP, Liquid Smooth, MIUI, Xylon, Gelée glacée, etc.

Pour le guide d’aujourd’hui, nous compilerons CyanogenMod 10.2, la ROM de rechange Android la plus populaire. La procédure est à 99% la même pour toutes les ROM personnalisées, donc ce guide peut également être utilisé comme référence pour compiler d’autres ROM.

Pré-requis

  1. Un téléphone Android avec un Noyau et une source de périphérique facilement disponibles, déjà enracinés et avec une récupération personnalisée installée.
  2. Distribution Linux 64 bits (Nous préférons Ubuntu).
  3. Au moins 100 Go gratuits sur votre disque dur.
  4. Connaissance pratique des commandes de terminaux Linux.
  5. Connexion Internet raisonnablement rapide.

Remarque: le système d’exploitation Linux 64 bits est un must, et il doit s’agir d’une installation native, pas d’une machine virtuelle.

Configurez Votre Machine de Construction

1. Installez le système d’exploitation Linux de votre choix: version 64 bits, selon les instructions officielles. (Le guide supposera que nous exécutons Ubuntu 13.04). Conservez une partition d’au moins 100 Go avec une partition d’échange de 16 Go.

2. Installez la liste de paquets suivante: Ouvrez l’application Terminal et tapez

sudo apt-get install < nom du package >

appuyez sur entrée et il vous demandera votre mot de passe.

Liste de paquet

git-core
gnupg
flex
bison
python
rar
original-awk
gawk
p7zip-full
gperf
libsdl1.2-dev
libesd0-dev
libwxgtk2.6-dev
squashfs-tools
build-essential
zip
curl
libncurses5-dev
zlib1g-dev
pngcrush
schedtool
libc6-dev
x11proto-core-dev
libx11-dev
libg11-mesa-dev
mingw32
tofrodos
python-markdown
libxml2-utils
g++-multilib
lib32z1-dev
ia32-libs
lib32ncurses5-dev
lib32readline-gplv2-dev
gcc-multilib
g++-multilib
xsltproc

3. Install Java JDK 1.6 for Linux 64-bit: File name should be jdk-6u##-linux-x64.bin, ## are version numbers. Move the downloaded package to your home directory. Ouvrez l’application Terminal et exécutez l’ensemble de commandes suivant:

si vous avez besoin d’un logiciel de nettoyage, vous pouvez le faire en utilisant un logiciel de nettoyage à sec et un logiciel de nettoyage à sec.si vous avez un problème, vous pouvez le résoudre en cliquant sur le lien ci–dessous.bac
./jdk-6u ## – linux-x64.bin
exit

Maintenant, nous devons ajouter le chemin JDK à.bashrc

sudo gedit ~/.bashrc

Ajoutez ces lignes à la fin du fichier texte

# Chemin Java
export JAVA_HOME=/opt/java/64/jdk1.6.0_ ##
CHEMIN D’exportation =PATHCHEMIN:JAVJAVA_ACCUEIL / bac

4. Installez le SDK Android: Ouvrez l’application Terminal

cd ~
mkdir android & & cd android
mkdir sdk

Téléchargez le SDK Android depuis http://developer.android.com/sdk/index.html. Extrayez le contenu du package dans ~/android/sdk auquel nous devons ajouter le chemin du SDK Android.bashrc

sudo gedit ~/.bashrc

Ajoutez ces lignes à la fin du fichier texte:

# Chemin du SDK Android
CHEMIN D’exportation =PATHCHEMIN: ~/android/sdk
CHEMIN D’exportation =PATHCHEMIN: ~/android/sdk/platform-tools
CHEMIN D’exportation =PATHCHEMIN:~/android/sdk/tools

Maintenant, installez les outils SDK Android en tapant

android

5. Configurez votre compte github et votre dépôt à distance: Vous pouvez ignorer cette étape si CyanogenMod prend officiellement en charge votre téléphone. Aller à github.com , et faites un compte pour vous-même. Pour ce guide, je considère votre nom d’utilisateur comme « utilisateur ».

Visite ‘github.com/CyanogenMod/android « , appuyez sur la fourchette. Le manifeste distant sera bifurqué et disponible dans votre dépôt personnel.

Maintenant, allez à ‘github.com/user/android ‘. Ouvrez le fichier par défaut.xml, appuyez sur Modifier. Trouver cette ligne:

< chemin du projet = « android » name= »CyanogenMod/android » />

Et remplacez cela par

< chemin du projet = « android » name= »utilisateur /android » />

Je considère que la source du noyau, la source de l’appareil et les bibliothèques du fournisseur de votre appareil pour Android 4.3 sont à

github.com/user2/kernel_source
github.com/user2/device_source
github.com/user2/device-common_source
github.com/user2/vendor

Je suppose que la branche doit être nommée ‘jb4.3’. Vous pouvez trouver le nom exact dans le dépôt réel. Ensuite, à la fin du fichier, ajoutez ces lignes en les modifiant en fonction du code source de votre appareil.

< chemin du projet = »kernel/your_company/your_device » name= »user2/kernel_source »remote= »github » revision= »jb4.3″ />
< chemin du projet = »device/your_company/your_device » name= »user2/device_source »remote= »github » revision= »jb4.3″ />
< chemin du projet = »device/your_company/your_device-common » name= »user2/device-common_source »remote= »github » revision= »jb4.3″ />
< chemin du projet = »vendor/your_company » name= »user2/vendor »remote= »github » revision= »jb4.3″ />

Engagez vos modifications. Votre manifeste distant est prêt à être déployé.

6. Installez la commande Repo: Ouvrez le Terminal et tapez

cd ~
mkdir ~/bin
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
chmod a + x ~/bin/repo

Nous devons ajouter le chemin de Repo à.bashrc

sudo gedit ~/.bashrc

Ajoute cette ligne à la fin du fichier texte

export PATH=PATHPATH: ~/bin

7. Récupérer le code source de la ROM: Ouvrez le terminal et tapez

mkdir ~/android/cm
cd ~/android/cm

Si vous avez besoin de l’étape 5, tapez

repo init-u git://github.com/user/android.git–b cm-10.2

Si votre appareil prend officiellement en charge CyanogenMod 10.2, tapez

repo init-u git://github.com/CyanogenMod/android.git–b cm-10.2

Maintenant, exécutez

repo sync-j16

Allez prendre un café ou un repas, ça va prendre beaucoup de temps. Le code source a une taille bien supérieure à 10 Go, cela prendra donc un certain temps.

 Récupérer la Source

8. Configurez les éléments spécifiques à l’appareil : Si votre appareil prend officiellement en charge CyanogenMod 10.2, ouvrez Terminal et tapez

cd~/android/cm
. build/envsetup.sh & & petit déjeuner <nom_de_appareil>

Cela prendra un certain temps, la source de l’appareil mesure environ 3 Go. Ensuite, vous devez installer le CM10.2 officiel sur votre téléphone, le connecter à votre PC en mode de débogage USB et exécuter les commandes suivantes:

racine de la bad
cd ~/android/cm/device/<your_company>/<your_device>/
./extract-files.sh

Si votre appareil ne supporte pas officiellement CyanogenMod 10.2, alors vous n’avez rien à faire dans cette étape, les sources vous attendent déjà.

9. Téléchargez des éléments prédéfinis et configurez la chaîne d’outils: Ouvrez le terminal et tapez

cd ~/android/cm/vendor/cm
sh./get-prebuilts

Maintenant, nous devons ajouter le CHEMIN de la chaîne d’outils à./ bashrc

cd~/android/cm
sudo gedit ~/.bashrc

Ajoutez ces lignes à la fin du fichier texte

# Chaîne d’outils Android
export ARCH= arm
export CCOMPILE=CROSSCROSS_COMPILE
export CROSS_COMPILE= arm-eabi-
CHEMIN D’exportation =PATHPATH: ~/android/cm/prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin

10. Construisez votre ROM: Alors, tout va bien et prêt. Il est temps de construire la ROM. Ouvrez le terminal et tapez

cd~/android/cm
. build/envsetup.sh
brunch <nom_de_appareil>

Il est temps d’aller faire une sieste. Il faudra un million d’années pour construire la ROM sur un ordinateur moyen. Eh bien, c’était exagéré, mais sur mon PC à la maison (Core i5 2e génération avec 8 Go de RAM), il faut plus de 3 heures pour construire à partir de zéro. Espérons qu’il n’y aura pas d’erreurs et que la construction se terminera bien. Vous obtiendrez le paquet de sortie dans

~/android/cm/out/target/product/<your_device>/cm-10.2-something-UNOFFICIAL-<your_device>.zip

Il est temps d’installer votre ROM nouvellement compilée sur votre téléphone. Téléchargez le package Google Apps à partir de « www.goo.im / gapps » pour la version Android appropriée. Mettez ces deux paquets dans votre téléphone et flashez-les en mode de récupération. Voila, votre propre ROM compilée exécute maintenant votre appareil.

Eh bien, vous avez donc appris à compiler une ROM. Et maintenant ?

Mettez à jour votre ROM Source

Pour récupérer de nouvelles mises à jour de code source sur votre code source téléchargé localement, ouvrez le terminal et tapez

cd~/android/cm
repo sync–j16

Pour construire votre ROM, après la mise à jour du code source, ouvrez le terminal et tapez

cd ~/android/cm
faire installclean
trouver./out / – nom ‘ construire.prop|/xargs rm
trouver./out/-name ‘cm_< votre appareil > – fichiers cibles – eng.*.zip’/ xargs rm
. build/envsetup.sh
brunch < votre_appareil>

Puisque vous ne reconstruisez pas à partir de zéro, mais que vous reconstruisez tel quel, cela prendra beaucoup moins de temps, seulement environ 15 à 30 minutes dans la plupart des cas. Vous devez synchroniser votre source locale chaque semaine environ, pour garder votre source locale fraîche.

Nettoyez votre répertoire de travail

Pour nettoyer complètement votre répertoire de travail (lire: retournez votre dossier source à l’état de stock), ouvrez Terminal et tapez les commandes suivantes.

cd ~/android/cm
make installclean
make clobber

Gardez à l’esprit qu’après avoir exécuté ces commandes, toutes vos données de sortie seront supprimées, de sorte que la prochaine génération prendra à nouveau 3-4 heures, car tout est reconstruit à partir de zéro. Si votre partition de disque dur est petite, disons environ 100 Go, vous devez nettoyer votre répertoire de travail environ une fois toutes les 4 versions, sinon vous manquerez d’espace sur le disque dur.

Accélérez votre construction par CCACHE

Construire une ROM prend beaucoup de temps. Mais le temps peut être réduit d’environ 30 à 45% en utilisant CCACHE. CCACHE signifie cache du compilateur, il met en cache la sortie de compilation de vos versions antérieures, afin qu’elle puisse être réutilisée dans les versions ultérieures.

Notez que CCACHE a besoin de beaucoup d’espace sur votre disque dur pour mettre en cache le contenu, il est donc recommandé si et seulement si votre partition de disque dur se trouve quelque part dans les environs de 200 Go ou plus. Pour configurer CCACHE, ouvrez Terminal et tapez:

cd ~/android/cm
export USE_CCACHE=1
export CACHE_DIR=~/.ccache
prebuilts /misc / linux-x86 / ccache / ccache–M 50G

Vous pouvez changer l’allocation de taille maximale à CCACHE de 50 Go à ce que vous voulez, mais un minimum d’environ 30 Go devrait être utilisé pour de bons résultats.

Récupérer des Commits à partir d’autres ROM

Vous pouvez sélectionner des fonctionnalités à partir du code source d’autres ROM. Disons, par exemple, que je veux choisir la fonctionnalité A, avec l’ID de validation « 12345 » du référentiel « github.com/user/reporepo « .

Vous accédez au package dans votre code source local et les exécutez dans le terminal.

cd~/<path_to_reporepo_packages >
git fetch https://github.com/user/reporepo
git cherry-pick 12345

Liens de code source de célèbres Distributions de ROM personnalisées Android

CyanogenMod – https://github.com/CyanogenMod
SlimROM – https://github.com/SlimRoms
ParanoidAndroid – https://github.com/ParanoidAndroid
AOKP – https://github.com/AOKP
LiquidSmooth -https://github.com/liquidsmooth
ROM Xylon –
Gelée glacée – https://github.com/IceColdJelly

Alors, voilà les gars, un guide simple et direct pour compiler pratiquement n’importe quelle ROM basée sur Android AOSP en 10 étapes simples. Alors que mon guide se concentre sur CyanogenMod, vous pouvez compiler à peu près toutes les ROM AOSP disponibles, en modifiant simplement les liens du référentiel. Ou, vous pouvez simplement choisir des fonctionnalités, les valider, modifier des choses et créer votre propre ROM personnalisée, peut-être partager votre ROM en ligne aussi?

Laisser un commentaire

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