(des)Aventuras com o Android – Obtendo o ROOT

O Android é, acima de tudo, um Linux (até alguém me explicar o contrário), e como tal tem um sistema de arquivos, gerenciador de inicialização (boot), arranque e tudo mais, exceto o acesso ao sistema. Isso acontece para evitar que o usuário fiquei “mexendo” no telefone e possa fazer algo errado.

Tal como no linux, existe um usuário comum, que pode acessar o sistema em modo somente leitura, e uma parte em modo leitura-escrita, lugar onde é salvo os arquivos das aplicações que instalamos no nosso aparelho. Agora, certos componentes como as ferramentas do Google ou da operadora não são possíveis remover com este usuário comum, mas sim apenas com o superusuário do sistema que, no Unix e Linux, é o root.

Daí você pode perguntar algumas coisas como:

O que o acesso a root me dá?

  1. Total controle sobre seu sistema;
  2. Habilidade para alterar os arquivos de sistema. Você pode substituir MUITAS PARTES do núcleo do seu Android como:
    • Temas
    • Aplicativos centrais (mapas, calendário, relógio, etc.);
    • Inicializador (bootloader);
    • Ferramentas podem ser substituídas pelo Busybox;
    • Imagens de boot;
    • Adicionar binários linux;
  3. Rodar aplicações especiais que precisam mais controle sobre o sistema;
    • Super Usuário (que aprova ou nega o uso de acesso root a qualquer programa);
    • Gerenciador de tarefas para Root;
  4. Fazer uma cópia de segurança (backup) do seus sistema;
    • Você pode fazer uma pasta no seu sdCard e guardar todos seus arquivos .apk lá;
  5. Realocar seu cache do navegador/mapas/market para seu /sdcard;
  6. Realocar suas aplicações instaladas para seu /sdcard;
  7. Reiniciar seu celular do seu aplicativo de terminal facilmente (su <enter> reboot <enter>)

O que você PERDE tendo ROOT?

  1. A habilidade de fazer as atualizações do seu sistema operacional (bem, você pode atualizar, mas vai perder o seu acesso de root);
  2. A sensação que alguém controla seu celular;
  3. A necessidad de sentar em um canal de chat do Android para perguntar como acessar o root;
  4. A necessidade por um inútil “Gerenciador de Arquivos” que só deixa ver os arquivos mas não deixa fazer nada neles;
  5. A habilidade de ter uma conversa técnica com o representante da sua operadora sobre seu celular (peça para ele soletrar “root” para você). ;-)

Ok! Estou convencido! Como faço?

Particularmente, eu NÃO GOSTO de soluções prontas ou “caixas pretas”, isto é, toneladas de programas que prometem desbloquear seu celular. Gosto de entender o que está acontecendo e, na medida do possível, fazer passo-a-passo. Assim, comecei a estudar e descobrir algumas coisas.

Kernel e StockMod

O Android (tal como o Linux) precisa de um arquivo chamado zImage, que é o arquivo de inicialização (kernel) do sistema operacional. Quando compramos um celular, na grande maioria das vezes ele vem com as regras de acesso descritas anteriormente, com um usuário simples para uso e o root bloqueado.

Precisamos inserir um kernel modificado (vulnerável), que nos permitirá instalar o root, e depois inserir os aplicativos ‘su’ e ‘busybox’ no sistema.

É importante salientar que qualquer dessas alterações podem provocar a perda da garantia do seu equipamento e eu não me responsabilizo por possíveis problemas ou prejuízos decorrentes deste procedimento, ou seja, faça por sua conta e risco! Em outras palavras, se você não se sente confortável em executar este procedimento, PARE AQUI! porque na pior hipótese, pode ficar com um belo tijolo (“brick“) tecnológico. Daí o termo “bricar” o celular (ato de transformar um celular em um tijolo ou belo peso de papéis).

Acessando o celular

Para começar, precisamos acessar o celular. Para isso, precisamos de duas coisas:
  • Android em modo de depuração - quando conectamos o cabo USB no celular e no computador, pelo menos nos produtos da Samsung, abre automaticamente o Kies, software responsável por sincronismo e atualização do celular. Precisamos habilitar a comunicação direta entre computador e celular. Para isso, vá em Menu > Configurações > Aplicações > Desenvolvimento > Depuração de USB.
  • Android Debug Bridge (ADB) - é o programa que faz a comunicação entre computador e celular. Este é um componente do SDK. É necessário instalar o SDK do Android e depois pedir para instalar as ferramentas de plataforma, a partir do instalador do SDK Android.
  • Ferramentas de root - vamos instalar o su, busybox e SuperUser.apk;
  • Kernel inseguro - kernel preparado para liberar acesso de root. Baixe aqui.
  • Heimdall - é uma suite de código aberto e multi-plataforma usando para gravar firmware (também conhecidos como ROMs) em dispositivos Samsung Galaxy S. Baixe os pacotes deb e instale no seu sistema.
De posse destes componentes no seu Linux, podemos começar. Desligue seu celular e entre em modo de download como demonstra a figura abaixo.

 Deixe os botões pressionados por 5 a 10s. Conecte o seu celular no USB do seu computador e entre em um terminal do Linux. Depois vá para <pasta-onde-descompactou-SDK-android>/android-sdk-linux/plataform-tool e digite o comando abaixo para verificar se o computador achou o dispositivo. Você pode usar o comando “sudo” ou executar como root.
# ./adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
30XD19EX5E0AXA5X device

Isso significa que meu dispositivo foi reconhecido corretamente. Agora, temos que carregar o kernel inseguro para o celular.

# tar xvf XWKDD_insecure.tar
zImage
# heimdall flash --kernel zImage
Heimdall v1.3.0, Copyright (c) 2010-2011, Benjamin Dobell, Glass Echidna

http://www.glassechidna.com.au

This software is provided free of charge. Copying and redistribution is
encouraged.
If you appreciate this software and you would like to support future
development please consider donating:

http://www.glassechidna.com.au/donate/

Initialising connection...
Detecting device...
Claiming interface...
Attempt failed. Detaching driver...
Claiming interface again...
Setting up interface...
Beginning session...
Handshaking with Loke...
Downloading device's PIT file...
PIT file download sucessful
Uploading KERNEL
100%
KERNEL upload successful
Ending session...
Rebooting device...
Re-attaching kernel driver...

Tudo correndo bem o celular irá reiniciar. Agora precisamos transferir os aplicativos para sub-pastas de “/system”, no entanto, ele está em modo somente leitura. Precisamos colocá-lo em modo de escrita também para poder continuar. Para isso, usamos o comando “remount”. Depois, copiamos os arquivos para dentro do celular.

# adb remount
# adb push busybox /system/bin
3442 KB/s (705192 bytes in 0.200s)
# adb push su /system/bin
362 KB/s (22228 bytes in 0.059s)
# adb push Superuser.apk /system/app
2900 KB/s (748792 bytes in 0.252s)

Agora, precisamos entrar dentro do celular. Tal como no linux, podemos entrar nele numa espécie de chroot. Depois disso, precisamos ajustar as permissões.

# adb shell
# chmod 6755 /system/bin/su
# chmod 755 /system/bin/busybox
# chmod 644 /system/app/Superuser.apk

Tudo correndo de acordo, seu sistema estará com o root habilitado.

 Espero que seja útil e até a próxima.
Referências:

http://android-dls.com/wiki/index.php?title=Why_Root http://www.erodov.com/forums/how-root-any-android-device-manually/43325-page2.html
http://forum.xda-developers.com/showthread.php?t=1075278

About these ads

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

Você está comentando usando sua conta WordPress.com. Sair / Mudar )

Imagem do Twitter

Você está comentando usando sua conta Twitter. Sair / Mudar )

Foto do Facebook

Você está comentando usando sua conta Facebook. Sair / Mudar )

Conectando a %s