Si vous êtes développeur ou vendeur d'appareil, vous voudrez personnaliser et choisir les applications qui seront présentes sur l'appareil quand il sera utilisé pour la première fois. Cet article explique les différents outils pour le faire.
Emplacement des applications dans Gaia
Les applications qui fonctionnent sur Firefox OS sont toutes contenues dans les dossiers de Gaia, dans l'un de ces deux répertoires :
- gaia/apps/ : Les applications par défaut du système se trouvent à cet endroit (par exemple : le calendrier, les e-mails, les réglages, etc.).
- gaia/dev-apps/ : Les autres applications se trouvent ici, notamment celles qui participent à la personnalisation.
Si vous souhaitez enlever/ajouter certaines applications pour votre construction (build) de Gaia/B2G, vous disposez de plusieurs outils décrits ci-après.
Méthode brute
La méthode « brute » consiste à supprimer les applications que vous ne souhaitez pas installer lors du build (avant de lancer le processus de construction).
Éditer les listes de configuration
Une méthode plus fine consiste à éditer les fichier apps-*.list
(qui se trouve dans un répertoire différent en fonction de l'appareil et qui est sous gaia/build/config/, comme phone/
et tablet/
). Dans ces fichiers, il suffit d'ajouter les applications que vous souhaitez intégrer lors de la construction. Par exemple, gaia/build/config/phone/apps-production.list ressemble à :
apps/bluetooth apps/bookmark apps/browser apps/calendar apps/callscreen etc.
Vous pouvez également indiquer d'utiliser toutes les applications d'un répertoire, de la façon suivante :
apps/*
Le mécanisme utilisé pour déterminer quel fichier apps-*.list
est utilisé pendant la construction est décrit dans le fichier gaia/Makefile, et ressemble à :
GAIA_DEVICE_TYPE?=phone ... GAIA_APP_TARGET?=engineering ... ifeq ($(MAKECMDGOALS), demo) GAIA_DOMAIN=thisdomaindoesnotexist.org GAIA_APP_TARGET=demo else ifeq ($(MAKECMDGOALS), dogfood) DOGFOOD=1 else ifeq ($(MAKECMDGOALS), production) PRODUCTION=1 endif ... ifeq ($(PRODUCTION), 1) GAIA_OPTIMIZE=1 GAIA_APP_TARGET=production endif ifeq ($(DOGFOOD), 1) GAIA_APP_TARGET=dogfood endif ... ifndef GAIA_APP_CONFIG GAIA_APP_CONFIG=build$(SEP)config$(SEP)apps-$(GAIA_APP_TARGET).list endif
Au départ, la variable GAIA_APP_TARGET
vaut engineering
et la variable GAIA_DEVICE_TYPE
vaut phone
, par défaut, la construction de Gaia utilisera gaia/config/phone/app-engineering.list (qui contient l'ensemble des tests, des démos, etc.)
Pour définir l'utilisation souhaitée, il faut utiliser les différentes options de la commande make
. Par exemple, pour construire Gaia avec gaia/build/config/phone/apps-production.list, il faut utiliser l'option suivante :
PRODUCTION=1 make
Si vous utilisez DEMO=1
, le fichier apps-demo.list sera utilisé. Si vous choisissez le paramètre DOGFOOD=1
, la construction utilisera le fichier apps-dogfood.list.
Vous pouvez totalement contrôler le choix en éditant GAIA_APP_CONFIG
dans le fichier gaia/Makefile, et en fournissant votre propre fichier apps-*.list
.
gaia/Android.mk contient ces lignes :
ifneq ($(filter user userdebug, $(TARGET_BUILD_VARIANT)),) GAIA_MAKE_FLAGS += PRODUCTION=1 B2G_SYSTEM_APPS := 1 endif
Lors de la construction, si VARIANT=user
ou si VARIANT=userdebug
sont choisis (et sont repercutés dans la variable TARGET_BUILD_VARIANT
), PRODUCTION=1
sera automatiquement défini lors de la construction de Gaia.
Note : Pour trouver plus d'informations sur les options de make, voir la référence des options de make.
Utiliser le système de personnalisation (Market customizations)
La troisième méthode est la plus fine (et également la plus complexe) et utilise le système de personnalisation. Ce système permet de définir des instructions de personnalisation pour la construction et ce, sans modifier le cœur de Gaia. Vous pouvez inclure les personnalisations de votre choix dans des dossiers distincts ou bien en utilisant les répertoires existants.
Par exemple, en définissant l'emplacement des personnalisations grâce à la variable d'environnement GAIA_DISTRIBUTION_DIR
comme ça :
GAIA_DISTRIBUTION_DIR=<DISTRIBUTION_PATH> make production
Pour plus d'exemples sur le mécanisme de distribution, voir https://github.com/mozilla-b2g/gaia/tree/master/customization
Les personnalisations sont un sujet à part entière, pour plus d'informations sur ce sujet, lire le guide du système de personnalisation (Market customizations).
Note : Si vous souhaitez inclure des applications externes dans votre build de Gaia, vous devrez les construire d'une certaine façon, puis les placer dans le répertoire gaia/dev-apps/
. Lire l'article Construire des applications web pré-packagées pour en savoir plus.
Important : Si vous êtes distributeur ou fabricant de matériel et que vous souhaitez construire une version spécifique de B2G/Gaia pour la distribuer, vous devez répondre à certains critères pour avoir l'autorisation d'inclure le Marketplace Firefox sur vos téléphones/tablettes. Merci de contacter Mozilla pour plus de détails.