Bom, estes dias comprei um Android, um Samsung Galaxy S2, e como todo bom usuário de Linux, já fiz algumas modificações no sistema. A coisa que achei mais diferente é a dificuldade de achar informações sobre como fazer as alterações, tal como “root” ou instalações de ROMs customizadas. Então, resolvi postar aqui como fazer estas alterações.

Em primeiro lugar, vale mencionar algumas coisas sobre o Android. Como todo Linux, ele possui um “kernel” separado do sistema. Além disso, o Android é dividido em um sistema base que fica montado em “/system”, e uma área para os dados dos aplicativos (possível de ser escrita pelo usuário) montado em “/sdcard”. No meu caso, ainda, ele possui um cartão SD externo, que fica montado em “/sdcard/external_sd”. Além disso há uma sopa de letras tipo “FactoryFS”, “Modem”, “Secondary Kernel” e outras coisas que eu entendo só por cima.

Para adquirir acesso “root”, há várias formas diferentes. Uma delas consiste em instalar um kernel diferente, mas aí você ganha um triângulo amarelo no seu celular quando você vai iniciá-lo, então todo mundo fica sabendo que você fez uma modificação. A outra, consiste em instalar um sistema de arquivos diferente. Basicamente o processo é fazer um “flash” no celular, com um kernel modificado (no primeiro caso) ou com um sistema modificado (no segundo). Para o Linux, uso o software “heimdall” (http://www.glassechidna.com.au/products/heimdall/). A versão 1.3.2 me deu problemas, então instalei a 1.3.1 e passei ao processo de flash. Eu recomendo o segundo método, pois o triângulo amarelo não fica presente, e basicamente consiste em baixar esta imagem: http://brasildroid.com.br/galaxy-s-ii-i9100-geral/6187-tutorial-root-ics-firmware-claro-tim-vivo-and-unbranded-oi.html. Depois, basta descompactá-la (usando zip ou rar), e você vai ter um arquivo .tar.md5 ou um arquivo .tar. Para descompactar esse arquivo, basta usar “tar -xf arquivo”, e finalmente a imagem está pronta para o processo de flash.

O processo de flash é bem simples, mas antes de fazê-lo, lembre-se de algumas coisas: primeiro, o suporte técnico da Samsung VAI encher o saco se descobrir que você fez uma modificação dessas no celular, e você pode perder a garantia. Segundo, faça o processo, de preferencia, de um notebook, e SEMPRE com o celular com bateria cheia ou quase cheia-não queremos que ausência de energia (tanto do PC como do celular) estraguem o processo todo, certo?

Então, para fazer o flash, basta deixar o celular num modo específico (modo de download) desligando-o e segurando “power+home+abaixar volume”. Ele pedirá uma confirmação, basta confirmar com o “aumentar volume”, e usar o heimdall. Eu rodei-o com o comando:

sudo heimdall flash --primary-boot boot.bin --cache cache.rfs --dbdata dbdata.rfs --factoryfs factoryfs.rfs  --modem modem.bin --param param.lfs --secondary-boot Sbl.bin --kernel zImage

Caso algum problema aconteça, não se desespere-basta tirar a bateria do celular e colocá-la novamente, e de novo deixa o celular em modo de “download” com a sequencia acima.

Enfim, com esse passo, seu celular terá acesso “root” e coisas interessantes podem ser instaladas (rastreadores que ligam automaticamente o GPS, por exemplo, ou o “Scala Installer” que pré-instala Scala no seu android e permite programar em Scala ao invés de Java, sem o processo de build demorado do proguard… mas mais sobre isso num outro post). Mas, se você quer algo mais hardcore, talvez seria interessante testar o CyanogenMod

O CyanogenMod é, basicamente, uma ROM diferente para o Android. Para o Samsung Galaxy S2, há a versão 7 (estável, baseada no gingerbread) e a versão 9 (testing e instável), baseada no ICS. Eu, particularmente, fui pela versão “testing”, ou “release candidate” do Cyanogen, pois pra mim o ICS está MUITO superior ao Gingerbread, mas cada um é cada um. O processo de instalação do Cyanogen é bem mais complicadinho, mas também não é um bicho de sete-cabeças. Tudo consiste em fazer um flash de um Kernel do ClockModRecovery. Como esse processo me deu muita dor de cabeça até descobrir aonde achar, como baixar, resolvi detalhar aqui:

Primeiro, baixe esta imagem: http://cmw.22aaf3.com/c1/recovery/recovery-clockwork-5.5.0.4-galaxys2.tar. Ela contém um kernel com o ClockMod. Basta extrair o arquivo .tar, e fazer o flash só do kernel, com o comando:

sudo heimdall flash --kernel zImage

Para fazer o flash, é a mesma coisa de sempre: deixar o celular em modo de “download”, etc. Agora que vem a mágica: você vai precisar de um cartão micro-sd externo para isso (eu usei um, mas acho que há uma maneira de usar o cartão interno mesmo). A idéia é baixar o Cyanogen no cartão micro-sd (deixe-o zipado), baixar os aplicativos do google para o Cyanogen também no cartão (deixando o arquivo zipado também), e então desligar o celular. Então, entrar no modo “recovery”, que consiste na combinação de teclas “power+home+aumentar volume”. Deixe apertado até aparecer uma telinha com um menu, e então use as teclas de volume e de power para navegar no menu. O que você vai fazer é:

      Backup da sua instalação autual. Esse processo é opcional mas altamente recomendável
      Selecionar Wipe data/Factory Reset
      Selecionar Wipe cache partition
      Selecionar Install zip from sdcard
      Selecionar Choose zip from sdcard
      Escolher o arquivo zip do Cyanogen (no meu caso era o cm-9.0.0-RC2-galaxys2.zip)
      Esperar, e depois instalar os aplicativos do google, repetindo os passos “Choose zip from sdcard” e selecionando o arquivo dos google apps (no meu caso, gapps-ics-20120317-signed.zip)
      Esperar até o término da instalação
      Escolher a opção “go back” e escolher depois “reboot”.

Não inverta a ordem das coisas, ou o mundo pode explodir. Lembre também de que o celular deve estar com bateria quase cheia para o processo (parar no meio do caminho pode te deixar com um celular sem uso, e provavelmente você vai ter que carregá-lo e começar TUDO de novo). Bom, enfim, depois disso, é reiniciar o celular, e curtir o novo sistema Android.

Mas por que o Cyanogen? Bom, pra começar, ele te deixa personalizar um monte de coisas. A área de notificação está modificada, então é possível ligar/desligar o wifi, GPS, 3G, escolher entre 3G e 2G, usar o LED do celular como lanterna, abrir a tela de configurações, mudar o brilho da tela, enfim, tudo isso pela tela de notificações. O Cyanogen é mais rápido também, a tela de configuração dele é mais bonita, e você pode escolher o tamanho das fontes (maior ou menor) pro sistema todo. Fora isso, eu senti que ele gasta menos bateria, ele não vem com aqueles aplicativos irritantes da Samsung (Livraria Cultura, etc), dá pra configurar a performance do celular, tem profiles (configurações personalizadas pra audio principalmente, por exemplo, você pode configurar um “quiet-mode” que desliga todos os sons do celular, inclusive do alarme), você pode configurar para o ringtone começar a tocar mais baixo, e de tempos em tempos aumentar o volume… fora outras configurações avançadas (por exemplo, eu sempre achei o brilho “automático” do Android meio exagerado, ele deixava o brilho mais alto em situações que eu sentia que podia ter menos brilho na tela. É possível configurar isso também). Fora que ele já vem com “root”, e quando você o conecta num PC, ele não tem mais aquela frescura de ser detectado como câmera ou como outra coisa, ele já é diretamente detectado como dispositivo USB, e com um toque você pode habilitar o USB Storage nele.

Além disso tudo, há features do Cyanogen 7 que ainda não foram portadas pro 9 (por exemplo, unlock com desenhos na tela, poder revogar a permissão de alguns aplicativos-por exemplo, o aplicativo pede permissão pra mandar SMS, e você revoga isso e quando o aplicativo tentar mandar, ele não terá permissão. Pode quebrar alguns aplicativos, mas em muitos casos isso é tolerável). Outra coisa que ainda não foi portada para o CyanogenMod 9 foi o DSP Manager, um equalizador para o dispositivo (não só para alguns aplicativos específicos). Ele está na versão 9, mas não funciona com o Galaxy S2.

A única coisa que ele não tem é o aplicativo de rádio da Samsung (por motivos óbvios). Eu achei um post da ROM UltimateAndroid que mencionada que esse aplicativo é um substituto. Porém, não sei se ele é legal ou não.

Eu, particularmente, estou satisfeito com o Cyanogen. Mas para os que preferem uma ROM mais próxima do padrão da Samsung, e os que acreditam que podem ter problemas com o celular, eu não recomendaria a instalação do Cyanogen, porque embora com o “root” a Samsung provavelmente ainda vai te dar garantia se vocẽ chorar, com o Cyanogen é quase certeza que não.