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.