sexta-feira, 16 de dezembro de 2011

Nexus S - A caixa de ferramentas básicas

Entre as várias qualidades do Nexus S, três pontos para mim são os principais: (1) seguir de perto o conceito do Google para o Android, sem customizações excessivas, (2) ser atualizado com frequência pelo próprio Google e finalmente (3) ter a tecnologia aberta, facilitando os desenvolvedores. Isso também se aplica ao seu predecessor, o Nexus One, e creio que deva também se aplicar ao sucessor, o Galaxy Nexus, embora para este último eu não tenha informações concretas sobre isso.

Para se aproveitar das duas primeiras características, basta comprar um Nexus e usar. Já para exercer a liberdade de desenvolvimento e/ou de modificação, o bootloader desbloqueado e etc., será necessário algum tempo, paciência, vontade de aprender e algumas ferramentas (de software). Este post assume que o leitor já possui algum conhecimento sobre os temas envolvidos, e o texto foca em listar e descrever brevemente o conjunto básico e necessário de ferramentas, para Windows, úteis para uma pessoa que queira desbloquear o bootloader, obter root, instalar uma ROM mod, etc. Apesar de descrever alguns comandos, este artigo não é um tutorial, os comandos são incluídos apenas como referência.

Atenção, tudo isto é válido para o Android Gingerbread (2.3.x), que é a última no momento para o Nexus S. No entanto a Google prevê o lançamento da ICS (ice cream sandwich, ou 4.0) para o Nexus S, e neste caso talvez alguns softwares parem de funcionar nesta versão. Na prática, acho que apenas o Superuser (talvez) seja afetado, mas não tenho como prever. Nos testes foi utilizado um PC com Windows Vista e o Nexus S T-Mobile (I9020T), de início com o Android 2.3.6.

1) O Android SDK
O Android SDK é a ferramenta básica para o desenvolvedor Android e modder. No nível mais básico ele permite acessar o dispositivo pelos comandos adb e fastboot. Em teoria ele deveria conter os drivers do Nexus S (baixando o item "Extras/USB driver package" pelo SDK manager). No entanto na minha instalação este driver não funcionou de jeito nenhum, e não sei se foi problema de versão do driver ou alguma coisa na instalação do Windows. Por este motivo foi incluído mais um item no conjunto de ferramentas, o PDANet (lá eu explico porque). Caso o driver que vem no pacote do SDK funcione, é desnecessário instalar o PDANet, pode pular o item 2 a seguir. Note que o SDK tem muito mais utilidades do que é mostrado aqui.

Nome do arquivo baixado:
installer_r15-windows.exe
(a versão atual já pode ser mais nova, [update 5-01-2012: agora é a r16] )
Página do download:
http://developer.android.com/sdk/index.html

Para instalar o driver USB do SDK siga este tutorial:
http://developer.android.com/sdk/win-usb.html

 [update 5-01-2012: lembrando que vai ser necessário instalar o Java SE JDK]
Caso tudo ocorra bem o dispositivo adb será reconhecido. Caso contrário dá um erro no final, com o Windows dizendo que não pôde instalar corretamente o driver.

Para verificar a instalação do SDK, ative a depuração USB no dispositivo (Aplicativos/Desenvolvimento/Depuração USB) e tecle no prompt:

adb devices

Deve aparecer uma linha com código alfanumérico referente ao celular que estiver conectado e a palavra "device" depois:

xxxxxxxxxxxxxxx      device

Onde "xxxx..."  representa o código alfanumérico Se não funcionar tecle antes:

adb start-server

2) PDANet
[update 5-01-2012: na instalação nova que fiz hoje, em outra máquina, este software não foi necessário. No entanto mantenho a dica, que já me salvou uma vez!]

A finalidade original do PDANet é possibilitar thetering via USB. Acontece que como o driver USB no Nexus S, que teoricamente está no SDK, não funcionou, pesquisei na Web e descobri uma dica simples: que instalando o PDANet o driver e o ADB passam a funcionar. Para não perder tempo, instalei e funcionou. Como dito antes, se o driver do SDK funcionar, este software não é necessário (a não ser que queira realmente usar o thetering USB).

Nome do arquivo baixado:
PdaNetA302.exe

Página do download:
http://junefabrics.com/android/

3) Fastboot
É um comando para gravar diretamente imagens no dispositivo. Aqui tive mais um problema, ele deveria  fazer parte do SDK, mas ao que parece este comando só foi suportado até a versão 13. A justificativa é que no momento a versão do Windows não permite a compilação e montagem da ROM, e por isso ele não seria necessário (então o SDK no Windows seria apenas para desenvolvedores de app). Pois bem, para contornar isso baixei uma versão do executável para Windows em um link que encontrei no site do CyanogenMod. Para usar o fastboot é preciso ter o SDK instalado. O programa deve ser colocado na mesma pasta do adb (e que vai estar na variável path do windows).  [update 5-01-2012: na versão r16 do SDK o fasstboot voltou, está na pasta platform-tools, a mesma do comando adb. Logo, não será masi necessário baixar o arquivo abaixo, mas veja a seguir a parte do teste]

Nome do arquivo baixado:
fastboot-win32.zip

Página de download:
http://koushikdutta.blurryfox.com/G1/
Acessada via:
http://wiki.cyanogenmod.com/wiki/Fastboot

Para testar:

fastboot devices

Para usar o fastboot para desbloquear o bootloader, coloque o celular na tela do bootloader (ligar apertando volume +), e depois tecle:

fastboot oem unlock

Vai aparecer uma tela no Nexus S para confirmar. Com o bootloader desbloqueado aparece a imagem de um cadeado aberto durante o boot, embaixo do nome do Google, não se assuste com isso. Para bloquear de volta (embora eu não veja muita utilidade nisso):

fastboot oem lock

Nota: Se ao entrar no bootloader pelo celular o Windows não reconhecer o driver (apesar de já ter instalado com sucesso no modo de uso), entrar no gerenciador de dispositivos do Windows, clicar do ícone do Android com a exclamação, mandar atualizar o driver, clicar em "me deixe escolher de uma lista ..." e depois escolha o driver do bootloader ("Android Bootloader Interface").

4) Clockwork Recovery
Para gravar uma nova ROM no Nexus S não é preciso antes obter root (dependendo do método, mas o fato é que existe um método que não precisa). Por isso antes mesmo do root vou citar o Recovery, invertendo a ordem que usaria nos meus dois aparelhos anteriores da Motorola (Dext e Defy). Para instalar este recovery usa-se o comando fastboot. Uma particularidade do Nexus S é que o Recovery só ficará gravado até o próximo boot, no seguinte ele volta ao stock, de alguma forma é sobrescrito.

Nome do arquivo baixado:
recovery-clockwork-5.0.2.0-crespo.img

Página de download:
http://wiki.cyanogenmod.com/wiki/Nexus_S:_Full_Update_Guide

Para gravar a recovery usando o fastboot (com o celular na tela do bootloader):

fastboot flash recovery recovery-clockwork-5.0.2.0-crespo.img

(isso se o arquivo img estiver no diretório corrente, senão alterar o path)

5) CyanogenMod 7.1
 A utilidade mais básica de desbloquear o bootloader é poder gravar uma outra ROM, e vou citar a CyanogenMod porque é a ROM que eu normalmente uso, por achar estável e confiável. Outras ROMs podem ser utilizadas, e a CM fica aqui como exemplo.

Nome do arquivo baixado:
update-cm-7.1.0.1-NS-signed.zip

Página de download:
http://download.cyanogenmod.com/?type=stable&device=crespo

Depois siga o procedimento de instalação aqui:
http://wiki.cyanogenmod.com/wiki/Nexus_S:_Full_Update_Guide

6) gapps (Google Apps)
Os aplicativos do Google, incluindo o Android Market, foram removidos da CyanogenMod por questões de licenciamento. Então eles foram adicionados a um pacote separado, que pode ser gravado via recovery mod. A justificativa é que isso equivale ao backup destes apps feito pelo usuário. A gravação pode ser feita logo em seguida da Cyanogen, antes mesmo do primeiro boot da recovery.

Nome do arquivo baixado:
gapps-gb-20110828-signed.zip

Página de download:
http://wiki.cyanogenmod.com/wiki/Nexus_S:_Full_Update_Guide

Na realidade a maioria dos aplicativos ainda terão que ser baixados pela Internet, o que este pacote faz com certeza é instalar o Market e iniciar o download.

7) Superuser
Ao instalar uma ROM Mod normalmente, quase sempre, ela virá com o su. E como vimos, no Nexus S não é necessário obter root antes para instalar o recovery. Mas se você quer apenas root, basta gravar o su pelo recovery mod.

Nome do arquivo baixado:
su-2.3.6.1-ef-signed.zip

Página de download:
http://forum.xda-developers.com/showthread.php?t=682828
(baixe a versão para Eclair e Froyo, a "ef")

Um guia de root sem troca de ROM pode ser encontrado aqui:
http://forum.xda-developers.com/showthread.php?t=895545

8) ROM oficial Google FULL versão 2.3.6
Esta é a última versão atualizada pela Google para a versão T-Mobile (I9020T) do Nexus S. Caso se queira voltar o Nexus S à configuração inicial. Esta ROM pode ser gravada pelo recovery stock ou pelo Clockwork.

Nome do arquivo baixado:
1ada25375426.signed-soju-ota-189904.1ada2537.zip

Link de download:
http://android.clients.google.com/packages/ota/google_crespo/1ada25375426.signed-soju-ota-189904.1ada2537.zip

E com isso fecha-se o ciclo para o aficcionado em mexer no Android, com as ferramentas para desbloquear o bootloader, customizar e poder voltar ao início. E vamos esperar o ICS oficial para o Nexus S, e depois (ou quem sabe antes) o CyanogenMod 9, baseado no ICS.

Nenhum comentário :

Postar um comentário