Em muitos aspectos do desenvolvimento do Firefox OS será necessário a utilização do aplicativo ADB (Android Debug Bridge). Esse artigo explica como fazer a sua instalação e apresenta algun dos seus comandos mais úteis.
Instalando o ADB
Você pode baixar e instalar o adb
como parte do pacote do Android SDK package, para Mac, Linux ou Windows - visite a página Get the Android SDK.
Distribuições mais recentes do Linux já possuem o adb
em seus repositórios. Para Ubuntu 12.10 e posteriores execute o seguinte comando:
sudo apt-get install android-tools-adb
Ou para Fedora 18/19:
sudo yum install android-tools
Ou no OSX usando Homebrew:
brew install android-platform-tools
Se sua distribuição não possui pacotes disponíveis para adb
(por exemplo, Ubuntu 12.04 ou Fedora 17), você precisará instalar o Android SDK starter package para sua plataforma (Selecione a opção ADT Bundle, e não SDK Tools Only). Então execute o gerenciador de pacote $SDK_HOME/tools/android
, e use o GUI para instalar "Android SDK Platform-tools".
Verifique onde o adb
foi instalado (normalmente em usr/bin
, possivelmente dentro de adt/platform-tools
, depdendo de como você o instalou). Certifique-se de adicionar esse diretório em seu PATH
. Isso pode ser feito adicionando a linha
PATH=$SDK_HOME:$PATH
ao seu ~/.bashrc
ou equivalente, onde $SDK_HOME
é o caminho de onde foi instalado o Android SDK.
Resolvendo problemas
Se você está usando uma instalação 64-bit, e receber um erro "File not found" quando executar 'adb' mesmo ele estando presente, você precisa instalar as bibliotecas de compatibilidade para 32-bit. Para fazer isso execute:
sudo apt-get install ia32-libs
Para novas versões do ubuntu:
sudo apt-get install lib32z1 lib32ncurses5 gcc-multilib
Comandos comuns do ADB
As próximas seções explicam alguns dos mais comuns e úteis comandos do adb
.
Reiniciando o processo b2g
b2g é equivalente à aplicação XULRunner que é executada no telefone no topo do kernel Android-based. Em algumas vezes você precisa reiniciá-la. Essa é a melhor maneira de reiniciar o ambiente de aplicações sem a necessidade de reiniciar todo o dispositivo. Você pode fazer isso executando o seguinte comando quando seu dispositivo estiver conectado ao seu computador (ou enquanto estiver executando o depurador):
adb shell killall b2g
Habilitando o encaminhamento de porta para depuração
Para habilltar isso (por exemplo se você estiver executando o App Manager para depurar aplicativos em um dispositivo Firefox OS), entre o seguinte comando no seu terminal:
adb forward tcp:6000 localfilesystem:/data/local/debugger-socket
Você necessitará fazer isso toda vez que o telefone for reiniciado ou for desconectado e reconectado ao computador. Você pode trocar o número do socket se necessário.
Encaminhando portas para uma máquina local
Para isso, você precisará baixar os binários netcat and ssh, e executar os seguintes comandos:
# this is an awful hack but does in fact work... host$ adb forward tcp:7979 tcp:6969 # make some named pipes so that we can make a bidirectional netcat phone$ mknod readback p host$ mknod readback p # this sets up a one time use connection to back to the host # listen on ports 6969 and 5959 and forward all the information between them phone$ ./netcat -l -p 6969 < readback | ./netcat -l -p 5959 > readback # connect to port 7979 (port 6969 on the device) and the local ssh server and forward all information between them host$ ./netcat localhost 7979 < readback | ./netcat localhost 22 > readback # now when we connect to port 5959 on the phone it will be like connecting to ssh server on the host # use the netcat reversal to set up an ssh connection back to the host and forward port 9999 on the device to 'localhost:8000' (this could be anything like 'google.com:80') phone$ ./ssh localhost -p 5959 -L 9999:localhost:8000
No exemplo acima é direcionada a porta 9999 do dispositivo para a porta 8000 do hospedeiro.
Alternativamente você pode usar um servidor ssh (dropbear e host_key) diretamente no dispositivo, usando os seguintes comandos:
phone$ DROPBEAR_PASSWORD=root ./dropbear -p 9000 -F -v -a -r host_key ./dropbear host$ adb forward tcp:8888 tcp:9000 # public key authentication has been hard coded to succeed (make sure you have a public key for ssh to use) host$ ssh -vvv root@localhost -p 8888 -R 9999:people.mozilla.org:80
Outros recursos:
- Instruções para compilar dropbear
- dropbear patch que desabilita a falha no esquecimento de configurar variáveis de ambiente e o "hard code" no sucesso da autenticação.