Personnaliser les applications présentes lors de la construction

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.

 

Étiquettes et contributeurs liés au document

 Contributeurs à cette page : jwhitlock, SphinxKnight
 Dernière mise à jour par : jwhitlock,