Avant de pouvoir construire B2G, vous devez cloner le dépôt et configurer votre arborescence. Cet article explique comment faire.
En fonction de votre connexion internet, l'étape de configuration prend un certain nombre d'heures pour télécharger les fichiers nécessaires à la construction de B2G OS. L'attente n'est pas aussi amusante que l'action, donc après avoir lu cette page et une fois lancé le script de configuration, pensez à utiliser ce temps pour mettre en place et tester le simulateur B2G OS, commencez à vous familiariser avec la documentation pour les développeurs d'applications, y compris la conception et la construction d'une application, et à vous familiariser avec les informations sur les étapes à venir.
Note : Si vous utilisez OS X pour compiler B2G OS pour un Flame, rendez-vous sur la page Compiler B2G OS pour un Flame sur OS X.
Si vous êtes sur Archlinux, veuillez également consulter ce sujet sur Discourse.
Cloner le dépot B2G
Nous disposons de plusieurs utilitaires pour construire B2G OS, tous inclus dans un unique dépôt. La première étape consiste à télécharger ces outils avec git pour créer notre répertoire de travail :
git clone git://github.com/mozilla-b2g/B2G.git && cd B2G
Si vous rencontrez une erreur UnicodeEncodeError: ascii codec error ici, essayez de spécifier votre utilisateur git avec
vim ~/.gitconfig
(tapez "i" pour passer en mode insertion) puis ces lignes :
[user]
name = votrenom
email = votre [email protected]
[color]
ui = auto
Pressez la touche "échap" et quittez avec ":wq"
- Configurez B2G pour l'appareil :
$ ./config.sh <appareil>
où appareil = flame-kk ou aries
- Compilez et flashez B2G
- branchez votre appareil qui possède une version de base android ou firefox os
$ ./build.sh
$ ./flash.sh
Notes :
- Si vous obtenez une erreur selon laquelle la version de base ne correspond pas au moment de la compilation, cela signifie que vous n'avez pas la version requise d'Android/B2G présente sur votre appareil. Vous devrez flasher la version d'Android spécifiée par le script de compilation ou mettre la main sur un dossier de sauvegardes.
config.sh
ou vous référer à la page des Appareils compatibles.Si votre cible de compilation ne figure pas dans la liste, vous devriez vous arrêter tout de suite et aider à porter B2G OS !
Configurer une version pour un appareil mobile
Blobs propriétaires
Lorsque vous installez B2G OS sur un appareil, vous avez besoin d'inclure un ensemble de blobs propriétaires. Ceux-ci sont extraits de l'appareil lorsque vous lancez votre première compilation, mais nous vous conseillons de faire également une sauvegarde complète dans un endroit sûr pour référence ultérieure. Une fois B2G OS installé, il n'y a plus aucun moyen de récupérer ces fichiers !
Assurez-vous d'avoir le débogage distant activé dans les paramètres développeurs de votre appareil. Vérifiez que ce dernier est visible avec la commande adb devices
; vous devriez voir quelque chose de similaire à ceci :
$ adb devices
List of devices attached
ABCXXXXXXX device
Si aucun appareil n'est listé, vérifiez vos règles UDEV.
adb root
et adb remount
.Sauvegardez les partitions du téléphone avec la commande adb pull
:
adb pull /system <répertoire cible de la sauvegarde>/system
En fonction du téléphone, vous devrez peut-être récupérer également les répertoires /data
et /vendor
:
adb pull /data <répertoire cible de la sauvegarde>/data
adb pull /vendor <répertoire cible de la sauvegarde>/vendor
Si les commandes pull échouent avec un message "insufficient permission", essayez ce qui suit :
- Vérifiez que vous avez accordé les permissions root dans votre ROM personnalisée (e.g. sous CyanogenMod, modifiez Paramètres > Système > Options pour les développeurs > Accès root en Applications et ADB ou ADB uniquement).
- Vérifiez que vous avez correctement configuré les règles udev (voir Pour Linux : configurez les règles udev de votre téléphone).
Prochaine étape
À ce stade, vous devriez être prêt à Compiler B2G OS.
Options de configuration avancées
Configurer la compilation en utilisant une sauvegarde système
Si votre téléphone n'a plus Android installé et que votre arborescence B2G ne contient pas les blobs binaires, mais que vous avez une sauvegarde des partitions systèmes, vous pourrez construire une version à partir de celle-ci de cette manière :
ANDROIDFS_DIR=<chemin absolu vers le répertoire parent du répertoire système> ./config.sh <cible>
Le système de compilation recherchera une sauvegarde existante dans un dossier backup-<cible>/system
, il ne vous sera pas nécessaire de spécifier le répertoire si les fichiers sont placés à cet endroit.
Compiler en utilisant une version personnalisée de Gecko
Il peut arriver que vous souhaitez, ou avez besoin, de compiler une version de Boot to Gecko basée sur une version de Gecko différente de celle utilisée par défaut (définie dans le manifeste). Vous pouvez faire cela en éditant le fichier .userconfig
. Par exemple, si vous souhaitez compiler une version utilisant mozilla-central :
export GECKO_PATH=/chemin/vers/mozilla-central
export GECKO_OBJDIR=/chemin/vers/mozilla-central/objdir-gonk
Note : Sous Mac OS X, le répertoire mozilla-central doit se situer dans un système de fichiers sensible à la casse.
Notez que cette étape peut être faite avant ou après avoir récupéré le dépôt (i.e. avant l'étape config.sh
ci-dessus) ou plus tard. Vous pouvez également conserver plusieurs versions (avec débogage activé ou non, etc) en ayant plusieurs fichiers userconfig (avec des paramètres différents--chacun nécessitant évidemment un OBJDIR différent) et en faisant un lien symbolique .userconfig qui pointe sur la configuration que vous voulez compiler à ce moment.
Pour plus d'informations, lisez Changer l'arborescence source de Gecko.
Construction d'une branche
Si vous souhaitez compiler une branche autre que celle par défaut (remarque : la branche par défaut n'est pas forcément "master" !), vous devrez préfixer l'appel à config.sh avec le nom de la branche, comme ceci :
BRANCH=nom-branche ./config.sh <appareil>
Les noms de branches sont relativement logiques et suivent en général les noms de produits/versions, donc v1-train
, v1.0.0
, v1.0.1
, v1.1
, v1.1.0hd
, v1.2, v1.3, v1.4, v2.0
et ainsi de suite au fur et à mesure. Comme exemple, pour compiler B2G OS 1.2, pour l'émulateur Arm, vous devez saisir
BRANCH=v1.2 ./config.sh emulator
Si vous avez déjà lancé config.sh, vous pouvez voir les noms des branches, en allant dans B2G/.repo/manifests
et en faisant "git branch -a
" (ce n'est pas renseigné temps que ce n'est pas encore fait.) Le nom de la branche est indiqué comme mot-clé final sur la ligne, e.g. "v1-train
" ou "master
":
remotes/origin/master
remotes/origin/v1-train
remotes/origin/v1.0.0
remotes/origin/v1.0.1
Voir Personnalisation avec le fichier .userconfig pour des possibilités supplémentaires de personnalisation.
Copier votre arborescence B2G vers une nouvelle machine
Si vous avez déjà préparé une arborescence complète pour B2G et que vous devez changer de machine (chanceux !), vous vous simplifierez la vie en migrant simplement toute l'arborescence B2G de votre ancien ordinateur vers le nouveau, plutôt que de tout reconfigurer. Pour cela, montez le système de fichier de votre ancienne machine sur la nouvelle, puis faîtes ceci :
rsync -a source/ dest/
Où source
correspond au chemin complet de l'arborescence source (avec la barre oblique / à la fin), dest
correspond au chemin de destination de la copie (le / à la fin est également important !).
Si vous suivez ces étapes, vous pouvez sauter tout le reste de cet article et passer directement à la compilation.
Mettre à jour votre arborescence B2G
Quand le répertoire est mis à jour vers une nouvelle version de B2G, vous pourrez mettre à jour votre arborescence. Pour ce faire, utilisez les commandes suivantes :
git fetch origin
git checkout origin/master
Vous pouvez vérifier que les commandes ont réussi avec :
git show HEAD
Puis en vérifiant que la modification indiquée par la commande correspond à celle donnée par : https://github.com/mozilla-b2g/B2G/commits/master