sexta-feira, 23 de setembro de 2011

2nd-init para o Defy

Agora que o CyanogenMod para o Defy está listado no site oficial, e já existem algumas nightlies para instalar, tenho mais um motivo para arregaçar as mangas e testar o sistema. O CyanogenMod (ou CM) é uma ROM construída a partir do código fonte aberto, o AOSP (Android Open Source Project), e não contém a parte proprietária do firmware Motorola e outras empresas. Na realidade, eles tiveram o cuidado de também separar os aplicativos Google que não são open source (como os apps do gmail, gtalk, maps, market, etc., que podem ser facilmente instalados depois), mas ainda precisam incluir os drivers de hardware proprietários. Isto até agora não tem sido um grande problema, e não tenho conhecimento de fabricantes de dispositivos reclamando do uso dos drivers. A segunda barreira é a prática da Motorola de bloquear o bootloader nos aparelhos mais novos ("locked bootloader"). Isso impede a carga de outro kernel, e por algum tempo impediu o uso de ROMs AOSP como a CyanogenMod. A salvação foi o "2nd-init", um hack que permite carregar um outro sistema, apesar de ainda não ter sido possivel desbloquear o bootloader e trocar o kernel. Atualmente o 2nd-init está disponível no Android Market, basta digitar "2ndinit" na busca. Para utilizá-lo é preciso ter acesso root. A ordem das coisas é a seguinte (atenção, isso não é um tutorial, para cada passo abaixo consultar o tutorial correspondente):



1. Ter acesso root, a forma mais fácil hoje em dia é com o SuperOneClick. Isso libera o uso de vários apps que precisam de acesso root;
2. Instalar o 2nd-Init pelo Market, que requer acesso root;
3. Rodar o 2nd-Init, o que efetivamente o instala e também uma custom recovery. Escolhi a opção "stable", indicada para uso com o CM. A versão que rodei foi a 1.9, baixada pelo market;
4. Instalar alguma ROM custom em formato "zip" através do custom recovery. Por exemplo, a CyanogemMod. Ver o item 2 deste FAQ, para ter uma idéia do processo. O arquivo zip citado do FAQ será substituído pela versão a ser instalada que se queira, e o "gapps-..." terá que ser instalado também se a ROM não tiver os aplicativos Google (e se o usuário quiser estes aplicativos, claro, mas provavelmente vai querer pois isso inclui o Market);

Cada um desses passos envolve habilitar ou desabilitar o USB debugging, ou dar reboot no aparelho, ou executar wipe pelo recovery, e isto em momentos bem específicos, alguns arquivos terão que ser copiados para o SD, por isto é essencial ler com atenção os tutoriais. Note que para instalar a CM 7 é preciso partir de uma ROM 2.2 (froyo). Entre os passos 3 e 4 recomendo fazer um backup pelo Titanium Backup e/ou um backup da instalação toda pelo NANDROID (no recovery). Para poder retornar a uma ROM 2.2, de qualquer modo será preciso passar a ROM stock 2.2 completa (em formato SBF) via RSD Lite, e depois aplicar root e restaurar o backup (o nandroid ou o titanium). As ROMs 2.2 stock que estou utilizando são a retail brasileira e a "Nordic", que podem ser encontradas aqui. Não passo os links diretos dos arquivos porque eles podem mudar (são do multiupload). A retail é a melhor ROM stock nacional para o Defy e já tem suporte nativo à 3G em 850 MHz e 2100 Mhz. A Nordic é um pouco melhor (mais limpa de bloatware, Android 2.2.2, a nacional é 2.2.1), mas é 900/2100, o que dá problemas na operadora Claro. Mas isso pode ser resolvido por meio do bansebandswitcher, que a propósito, já vem instalado na CyanogenMod para Defy. Uma vez instalada uma versão do CyanogenMod que se considere estável, pode-se fazer outro backup nandroid pela recovery, de modo a poder continuar instalando versões posteriores talvez menos instáveis, como as nightlies, e poder voltar mais rapidamente, sem o RSD Lite.

Fica claro que o processo de root e o 2nd-Init são essenciais para viabilizar isso tudo. O root está disponível desde os primórdios do Defy. O 2nd-Init veio bem depois, e é um "hack" bem mais sofisticado e complexo. Quem tiver curiosidade, pode ler este excelente artigo de como ele funciona. Lendo o artigo se percebe como as restrições da Motorola quanto ao bootloader ainda causam uma série de contratempos e limitações para o usuário. O Defy é ótimo, mas o bootloader bloqueado ainda é um sério ponto negativo que deve ser pesado na hora da compra (junto com o preço baixo e a robustez física, diga-se de passagem). De qualquer modo, não é o aparelho ideal para o entusiasta de hardware. Para este tipo de coisa tenho o Nexus S. Mas apesar disso, iniciativas como a do 2nd-Init permitem levar o meu Defy ao máximo, e se livrar de qualquer vestígio de Motoblur.

E na prática, como utilizar tudo isso no dia-a-dia, e no seu aparelho principal? Ou seja, um problema que eu tinha era que ao testar ROMs modificadas, algumas não muito estáveis, perde-se configurações, apps, dados dos apps, etc. na troca. Até se pode usar um outro smartphone só para testes, mas com isso testa-se menos, já que usa-se menos. O ideal no meu caso é usar o aparelho de teste como o principal, pois obviamente vou testar mais enquanto uso.

A solução para isso é um outro app, o Titanium Backup, já citado acima, que também requer acesso root. Esta ferramenta permite recuperar os aplicativos instalados anteriormente, sem ter que baixar tudo do market de novo, e nem acessar a Internet. Ela é útil especialmente quando troca a versão do sistema. A outra ferramenta é o Nandroid, o backup/restore do recovery. Ela recupera tudo, incluindo o sistema, apps e configurações, voltando ao mesmo estado anterior. Por isso não serve quando se vai mudar a versão do próprio sistema. Ela é útil para voltar a uma versão anterior estável, depois de testar uma outra versão.  Com uso destas ferramentas consigo voltar os aplicativos mais rapidamente sem precisar reinstalar tudo, bem como recuperar outras configurações. Vale a pena contar a minha historinha pessoal com as ROMs customizadas, para mostrar que não é tão difícil como parece.

Em um primeiro momento, surgiu a insatisfação com ROM da Motorola, pela não atualização da versão do Android, pelos apps do Google que faltam, e pelos apps desnecessários (bloatware: demos de jogos, etc.). Daí veio a vontade de mudar a ROM, e ao mesmo tempo o medo do "brick". Ultrapassado o medo, passei a instalar várias ROMs sem problemas, mas cada mudança era trabalhosa, por causa das configurações. Isso me fez abandonar estes testes por um bom tempo. Uma vez descobertos os backups, o processo ficou mais leve, e permite ao mesmo tempo satisfazer minha curiosidade de testar ROMs customizadas e utilizar o mesmo aparelho no dia-a-dia.

Apenas como referência, uma lista das coisas que eu faço download antes de começar, a maioria dos links citados ao longo do post:

Os seguintes programas, que tem que ser instalados no PC:

1. O driver USB da Motorola (atualmente 5.2.0)
2. O SuperOneClick (difícil saber a versão, mas olhando nos detalhes do arquivo Windows, é 1.3.0.0)
3. O RSD Lite (atualmente 4.9)

Os seguintes aquivos, que tem que estar acessíveis no PC:

1. A ROM Motorola Retail Brasileira com Android 2.2.1 (porque eu acho uma ROM utilizável)
2. A ROM Motorola Original do seu aparelho, com Android 2.2.1 (por exemplo, no meu caso a ROM da Claro, apenas para poder voltar ao estado de fábrica)
3. A ROM Motorola Nordic 2.2.2 (porque é uma ROM utilizável e segundo alguns é a melhor base inicial para a transição para CM7)

Os seguintes arquivos podem estar no PC mas é conveniente já copiar para o cartão SD do Defy:

1. O APK do 2nd-Init, embora tenha no market, por algum motivo posso estar sem acesso à Internet, (atualmente versão 1.9)
2. Um (ou mais) arquivo ZIP com uma versão estável da CyanogenMod 7 (no momento é a RC1.5)
3. O arquivo ZIP com os aplicativos Google (gapps-gb-20110613-signed.zip)
4. Os arquivos ZIPs com versões da CM7 a serem testadas, manter apenas as que interessam.
5. O APK do Titanium Bakckup, que pode ser obtido no site do desenvolvedor:
http://matrixrewriter.com/android/
Com isso se pode recuperar tudo após baixar uma nightly, sem precisar de conexão para baixar o Titaniun do Market. Link direto de download:
http://matrixrewriter.com/android/files/TitaniumBackup_latest.apk

O procedimento em linhas gerais que estou usando para testes com a CyanogenMod é:

1. Instalar uma versão "estável" (a RC1.5)
2. Configurar o sistema, baixar apps, arrumar o desktop, etc. Esta configuração tende a durar mais tempo e não gostaria de ter que ficar refazendo todo dia.
3. Fazer um backup nandroid no recovery
4. Fazer um backup pelo Titanium
5. Para fazer testes com nightlies, wipe e instalar o zip da versão, pelo recovery
6. Assim que der por terminado o teste, recovery, wipe, e restore da versão do passo 3
7. SE achar que a versão nighly vale a pena ser guardada, por apresentar melhorias, fazer um restore dos apps pelo titanium, configurar, e fazer um outro backup do nandroid, e este pode ser usado como um novo ponto de retorno.

O PC só é necessário para copiar o zip das novas versões para o SD, coisa que pode ser até evitada fazendo o download direto do msartphone, se a conexão internet for boa. Então o PC ficaria quase que só para recuperação de desastres. Além disso, também tenho um backup nandroid da Nordic toda configurada, mas para utilizá-la será preciso antes passar o SBF , instalar o root (via PC) e instalar o 2nd-init (do SD ou market).

Nenhum comentário :

Postar um comentário