Uma vez que você compilou o Boot to Gecko para um dispositivo móvel suportado, você pode instalá-lo. Esse artigo vai guiá-lo ao longo do processo.
Instalando ADB
No OSX
Se você tem o homebrew no OSX:
brew install android-platform-tools
Caso contrário, baixe-o no Android Developer Tools e inclua os caminhos dos exectuáveis no seu PATH.
No Ubuntu
sudo apt-get install android-tools-adb
Copiando o sistema para seu telefone
Para copiar tudo para seu telefone, basta executar o script:
./flash.sh
Feito isso, o B2G que você acabou de compilar será copiado no seu dispositivo.
Observe que se você estiver atualizando com alterações significantes do Gaia, você também precisará fazer:
cd gaia
make reset-gaia
Isso vai apagar todos os dados armazenados no Gaia, mas também apagará configurações e preferências do Gaia obsoletas e em teoria você vai reiniciar um Gaia "limpo". Em teoria porque ./flash.sh
também faz isso, mas em alguns dispositivos como hamachi ./flash.sh
fará o flashing de um subconjunto de módulos (./flash.sh -f
forçará o flashing de tudo).
Configurando a regra do udev
para seu dispositivo
No Linux, se você receber a mensagem:
< waiting for device >
isso provavelmente significa que você não incluiu a regra do udev para o dispositivo fastboot, que não é o mesmo que o do adb (embora isso também pode significar que você deve executar ./flash.sh
com o sudo
). Você pode conseguir o ID USB do fabricante executando lsusb
agora, mas para o Google, por exemplo, o código é: 18d1, dessa forma, adicionando essa linha no arquivo /etc/udev/rules.d/51-android.rules
deve funcionar:
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
libusb error "-3"
no Linux, isso significa que você precisa acesso de root para ter o acesso necessário ao dispositivo USB. Execute o script novamente usando sudo
.Observações especiais para dispositivos Hamachi, Helix, e Leo
Se seu telefone é um hamachi, helix ou leo, o script ./flash.sh
por padrão somente copiará o Gecko e o Gaia. É recomendado que você copie (flash) com o OEM como uma compliação de base para obter o firmware e as camadas Gonk e depois copiar o Gecko e o Gaia no topo. Se você quiser fazer o flash usando as imgens, existe um flash de substituição que você pode fazer executando ./flash.sh -f
e usar os arquivos de imagens na cópia para seu dispositivo.
Observações especiais para Samsung Galaxy S2
Se o seu telefone é o Galaxy S2 e você usa heimdall 1.3.2 (a última versão, use heimdall version
para verificar), você pode ver um erro como: "FACTORYFS upload failed!
" seguido por "Heimdall flashing failed
" e algumas informações adicionais. Na verdade, isso é uma condição de sucesso, então você pode ignorar esse aviso.
Para se livrar desse comportamento estranho, baixe o código fonte do heimdall, voltando para a verão 1.3.1 ("git checkout fbbed42c1e5719cc7a4dceeba098981f19f37c06
"), então compile-a de acordo com as instruções do arquivo README
, ao instalar a versão o erro irá desaparecer. Portanto, isso não é estritamente necessário.
Todas as versões do heimdall não conseguem copiar (flash) um arquivo system.img maior quem 100MB. Execute:
ls -l ./out/target/product/galaxys2/system.img
para verificar o tamanho do arquivo. Se for maior que 100MB use o canal do IRB para pedir ajuda, existe maneiras de se fazer isso em duas etapas.
Etapa adicional para Samsung Galaxy S2
Se você está copiando no Galaxy S2, existe uma etapa adicional a ser seguida. Gaia não é copiado automaticamente pelo flash.sh
script, então será necessário executar:
./flash.sh gaia
Copiando partições específicas para os telefones fastboot
Você pode copiar partições específicas para telefones fastboot (You can flash specific partitions to fastboot phones (ou seja, qualquer outro telefone que não o Samsung Galaxy S2). Por exemplo:
./flash.sh system ./flash.sh boot ./flash.sh user
Aviso: o comando ./flash.sh user
pode apagar dados específicos do usuário (contatos, etc).
Alterando módulos específicos
Você pode alterar componentes específicos do B2G indicando seus nomes quando executar o script ./flash.sh
. Por exemplo:
./flash.sh gaia ./flash.sh gecko
Para alterar somente uma aplicação você pode utilizar a variável de ambiente BUILD_APP_NAME
:
BUILD_APP_NAME=calendar ./flash.sh gaia
Se o seu telefone não for usado para desenvolvimento (você não estiver interessado em testar aplicativos e/ou otimizações), você pode alterar o Gaia usando:
VARIANT=user ./flash.sh gaia
Próximos passos
Nesse ponto, seu telefone deve rodar Boot to Gecko! É hora de experimentar, escreva algum código, teste, or faça alguma depuração!
Resolução de problemas
Algumas dicas se seu dispositivo não funcionar extamente após instalar o B2G ou alterar para uma nova versão.
Se a IU (Interface do Usuário não inicia)
Se você atualizou seu telefone e a interface do usuário não inciou, você pode resetá-lo para limpar as configurações desatualizadas. Isso pode trazê-lo de volta à vida, mas pode apagar dados específicos do usuário (contatos, etc). Aqui está:
cd gaia make reset-gaia
Se você deseje alterar do modo desenvolvedor para modo produção
cd gaia make reset-gaia PRODUCTION=1
1
Aviso: reset-gaia
pode apagar dados específicos do usuário (contatos, etc).
Mensagem de erro "image is too large" na execução do script ./flash.sh
Isso pode significar que você precisa ter acesso de root antes de copiar o sistema operacional (flash). Como o b2g precisa escrever na partição root, seu telefone precisa estar com acesso de root para instalá-lo.