Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Alterando os aplicativos empacotados durante a compilação da imagem

Este artigo necessita de uma revisão editorial. Como posso ajudar.

Como um desenvolvedor ou um fornecedor de dispositivos, você vai querer customizar os aplicativos que virão instalados em um dispositivo Firefox OS por uma variedade de razões. Esse artigo explica os diferentes mecanismos de fazer isso.

Locais dos aplicativos dentro do Gaia

Os aplicativos que são executados no Firefox OS estão na árvore de fontes do Gaia, em uma dos dois diretórios:

  • gaia/apps/: Nesse diretório ficam os aplicativos padrões do sistema, como calendário, email, configurações, etc.
  • gaia/dev-apps: Nesse diretório ficam os outros aplicativos, como aqueles incluídos no processo de customização.

Se você quiser retirar ou adicionar aplicativos na sua imagem do Gaia/B2G, você pode fazer isso de algumas formas diferentes detalhadas abaixo.

Método de customização por "força bruta"

O método "força bruta" consiste-se em simplesmente apagar os aplicativos que você não quer que estejam presentes na imagem, antes da compilação.

Editando as listas de configuração

O método mais refinado é editar os arquivos apps-*.list (encontrados nos diretórios phone/ ou tablet/ em gaia/build/config/, dependendo do tipo do dispositivo) que contém os caminhos para incluir os aplicativos em tempo de compilação. Por exemplo, gaia/build/config/phone/apps-production.list parece algo como:

apps/bluetooth
apps/bookmark
apps/browser
apps/calendar
apps/callscreen
etc.

Observer que você também pode especificar que todos os aplicativos do diretório sejam incluídos na imagem, como por exemplo:

apps/*

O mecanismo para escolher qual arquivo apps-*.list será utilizado durante a compilação os aplicativos disponíveis está em gaia/Makefile, e é algo como:

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

Incialmente, a variável GAIA_APP_TARGET é configurada como engineering e a variável GAIA_DEVICE_TYPE como phone, assim, como padrão a compilação do Gaia a partir do fonte usará o arquivo gaia/config/phone/app-engineering.list (que inclui todos os testes, demos, etc).

Para especificar o uso de uma lista diferente de aplicativos especifique opções diferentes para executar o comando make. Por exemplo, para compilar com a lista gaia/build/config/phone/apps-production.list, use:

PRODUCTION=1 make

Se você especificar com DEMO=1, irá usar a lista apps-demo.list. Se for DOGFOOD=1 será usada a lista apps-dogfood.list.

Você pode alterar diretamente GAIA_APP_CONFIG em gaia/Makefile, e fornecer seu próprio arquivo apps-*.list.

gaia/Android.mk contém essas linhas:

ifneq ($(filter user userdebug, $(TARGET_BUILD_VARIANT)),)
GAIA_MAKE_FLAGS += PRODUCTION=1
B2G_SYSTEM_APPS := 1
endif

Quando você compilar, se VARIANT=user ou VARIANT=userdebug (acabam se refletindo na variável TARGET_BUILD_VARIANT), a variável PRODUCTION recebe o valor 1 (PRODUCTION=1) quando o Gaia é compilado.

Nota: Descubra outras opções disponíveis do make no artigo referência de opções make.

Usando customizações de mercado

O terceiro, e mais refinado método (porém o mais complexo) é usar customizações. Isso possibilita especificar instruções de customizações em tempo de compilação em diferentes diretórios sem a necessidade de alterar o repositório principal do Gaia. Você pode lincluir suas próprias customizações em diretórios distintos, ou usar diretórios pré-existentes que vêm com o fonte.

Por exemplo, especificando a localização do modelo de customização com a variável de ambiente GAIA_DISTRIBUTION_DIR:

GAIA_DISTRIBUTION_DIR=distribution_tablet make

Mais exemplos de customizações para mecanismo de distribuição podem ser encontrados em https://github.com/mozilla-b2g/gaia/tree/master/customization

Customizações possuem seu próprio artigo, leia nosso Guia de customizaçõe do mercado.

Nota: Se você quiser incluir aplicativos externos customizados como parte da sua imagem do Gaia, você precisa compilar de uma forma específica e colocá-los no diretório gaia/dev-apps/. Leia o artigo Compilando aplicativos web pré-empacotados para saber mais a respeito.

Importante: Se você é um fornecedor de dispositivos e deseja criar uma imagem customizada do B2G/Gaia para distribuição, você precisa satisfazer certos critérios antes de poder incluir o aplicativo Firefox Marketplace no seu telefone/tablet/etc. Contacte a Mozilla para maiores detalhes.

 

Etiquetas do documento e colaboradores

 Colaboradores desta página: jwhitlock, rbrandao
 Última atualização por: jwhitlock,