Como substituir a imagem de zumbi do easter egg do Android 2.3

Como várias pessoas solicitaram instruções passo-a-passo de como substituir a imagem de zumbi do Android, resolvi escrever este tutorial.

Você vai precisar:

1) Um computador com Linux (preferência Ubuntu 12.10).

Caso você não tenha o Linux instalado no seu computador:
a) procure um amigo que tenha;
b) baixe a imagem de um Live CD do Ubuntu e inicie seu computador por ele, assim você não precisa instala-lo;
c) baixe e instale o Linux Ubuntu 12.10 no seu computador.

É possível fazer este procedimento no Windows? Sim, mas você terá que baixar os drivers certos para o ADB funcionar no seu computador, sem falar que mesmo com o driver certo costuma dar muitos problemas;

2) Cabo USB para ligar no seu smartphone Android, normalmente vem junto com o aparelho;

3) Acesso de root no seu smartphone Android. Se seu Android ainda não foi “rooteado” você precisará fazer isso antes de continuar com este tutorial. Como cada smartphone tem um procedimento específico para obter acesso a root, este passo não será abordado aqui. Pesquise no google: como rootear FABRICANTE + MODELO_DO_SEU_SMARTPHONE

Se você já estiver pronto (itens 1, 2 e 3 acima estão OK) então vamos ao tutorial em si:

Primeiro instale a ferramenta ADB no Ubuntu.

Clique no ícone Central de Programas do Ubuntu na barra lateral esquerda (ícone cesta de compras), se o ícone não estiver presente você pode pressionar Alt+F2 e na área de digitação coloque software-center e clique no ícone da cesta.

Na tela da Central de Programas do Ubuntu no canto superior direito clique no campo de pesquisa e digite: android adb
Vai aparecer o programa “Android Debug Bridge CLI tool” clique nele e em Instalar. Vai solicitar a senha para fazer a instalação, informe a senha do seu usuário, a senha que você informou durante a instalação do Ubuntu.

Se sentir mais familiarizado com Linux pode usar o terminal para instalar o ADB ou invés de usar a Central de Programas do Ubuntu:

sudo apt-get install android-tools-adb

Agora no seu smartphone ative o modo de debug:

Clique em Configurações (ou Definições no caso dos modelos da LG) -> Aplicativos -> Desenvolvimento -> ative a opção “Depuração de USB”.

Ligue o cabo USB no seu computador e no seu smartphone, vai aparecer na área de notificação “Depuração USB conectada” e o ícone do robozinho e forma de uma joaninha (inseto).

Vamos verificar se o Ubuntu detectou seu smartphone:

Abra um terminal de comando do Linux: pressione ALT + F2 e digite: terminal
Vai aparecer um ícone preto com o símbolo >_ então clique nele.

No terminal execute o comando “adb devices” para verificar se o smartphone foi reconhecido, vejo o exemplo abaixo:

alan@blackbox:~$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached 
80A358700046768936	device

Caso você apareça ??????????? no nome do dispositivo, como aconteceu com o Eliel, execute o procedimento abaixo:

$ sudo -s
# adb kill-server
# adb start-server
# adb devices
List of devices attached 
80A358700046768936	device

Neste caso detectou meu smartphone com o ID 80A358700046768936, no seu caso deverá retornar um número diferente. Se não retornar nada significa que não encontrou o smartphone. Verifique todos os passos anteriores.

Agora execute o comando “adb pull /system/framework/framework-res.apk framework-res.apk” para baixar o arquivo onde a image do zumbi se encontra, veja o resultado do meu comando:

alan@blackbox:~$ adb pull /system/framework/framework-res.apk framework-res.apk
4083 KB/s (3500989 bytes in 0.858s)

Abra o gerenciador de arquivos (nautilus) : ALT + F2 e digite nautilus

Você deverá ver o arquivo framework-res.apk na sua Pasta Pessoal

Clique com o botão direito do mouse sobre ele e escolha “Extrair aqui”, então será criada uma pasta “framework-res.apk_FILES” com o conteúdo do apk.

Entre na pasta framework-res.apk_FILES -> res -> drawable-nodpi você verá os seguintes arquivos:
blank_tile.png
loading_tile.png
loading_tile_android.png
no_tile_128.png
no_tile_256.png
platlogo.jpg

Você deverá apagar o arquivo platlogo.jpg e salvar sua imagem (com a mesma dimensão: 720×480) neste diretório com o nome platlogo.jpg.

Volte ao diretório framework-res.apk_FILES e selecione todos os arquivos e pastas (assets, META-INF, res, AndroidManifest.xml e resources.arsc), então clique com o botão direito do mouse sobre eles e escolha a opção “Comprimir”.

Na tela Comprimir, mude o nome do arquivo para framework-res.apk (apague o final _FILES), escolha .zip e clique em “Criar”.

Será criado o arquivo framework-res.apk.zip dentro do diretório “framework-res.apk_FILES”, agora clique com o botão direito do mouse sobre framework-res.apk.zip e escolha “Renomear…”, renomeie para framework-res.apk

Agora copie (Ctrl + C) o arquivo framework-res.apk e sobreponha (Ctrl+V) sobre o arquivo framework-res.apk original que está na sua Pasta Pessoal.

Precisamos enviar o arquivo para dentro do seu smartphone, mas como o /system do Android é somente leitura teremos que remonta-lo com permissão de leitura e escrita.

Volte ao terminal do Linux e execute o comando para entrar no shell do Android:

alan@blackbox:~$ adb shell
$

Pronto, agora você precisa se tornar root (administrador) do Android:

$ su

Neste momento é provável que a aplicação que te dá acesso de root no Android (Superuser no meu caso) solicite confirmação na tela do smartphone, clique em Permitir.

Se tudo der certo o shell do Android mudará de $ para # :

# 

Agora você precisa ver qual o dispositivo é usado para montar o /system do seu Android e qual o sistema de arquivo, você pode verificar isso usando o comando:

# mount | grep system
/dev/block/mtdblock1 /system yaffs2 ro,relatime 0 0

O | não é a letra L minúscula, é o simbolo pipe, que normalmente fica na tecla “\” nos teclados ABNT2.

No meu caso o dispositivo montado no /system é o /dev/block/mtdblock1 e ele é um sistema de arquivo yaffs2. Note que ele tem um “ro” após o sistema de arquivo, que significa que ele é somente leitura (Read-Only em inglês).

Então você deve monta-lo com permissão de leitura e escrita.
Lembre-se de substituir o yaffs2 e o /dev/block/mtdblock1 pelo equivalente retornado no comando anterior.

 
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock1 /system

Você pode verificar se funcionou executando o mesmo comando:

# mount | grep system
/dev/block/mtdblock1 /system yaffs2 rw,relatime 0 0

Note que agora apareceu “rw” (Read-Write), então ele está como leitura e escrita agora, perfeito.

Saia do shell do Android e volte para o terminal do Linux:

# exit
$ exit
alan@blackbox:~$

Agora sim, você deverá enviar o arquivo para o Android, primeiro copie para um local onde o usuário normal do Android tem permissão de escrita:

alan@blackbox:~$ adb push framework-res.apk /sdcard/framework-res.apk
6050 KB/s (2135549 bytes in 0.344s)
alan@blackbox:~$

Agora entre no shell do Android novamente e se torne root:

alan@blackbox:~$ adb shell
$ su
# cd /sdcard
# cp framework-res.apk /system/framework/
# exit
$ exit

Feito, por segurança desligue o Android e ligue seu smartphone novamente. Se tudo funcionou como o esperado você deverá ver a imagem jpg que você colocou sobre a imagem dos zumbis.

34 thoughts on “Como substituir a imagem de zumbi do easter egg do Android 2.3

  1. Vou rootear meu aparelho e baixar o Linux, quando tiver tudo em mãos iniciarei o procedimento para substituição. Quero agradecer pelo tutorial, abraço.

    1. Vc fez no linux mesmo ou no windows? Se foi no linux vc instalou ou apenas deu o boot e executou o linux. Posta ai os detalhes.

  2. Olá Talles,
    eu não posso postar a imagem pois cada aparelho tem um .apk próprio, portanto não iria funcionar no seu aparelho.

  3. Valeu Alan, depois de muito tentar e aprender, consegui trocar a imagem, agora vou trocar de todos os meus amigos graças a sua ajuda.

  4. Alan consegui tirar a imagem, agora quero retirar o nome que aparece com a imagem “zombie art by jack larson” como faço para alterar esta mensagem.

  5. Oi Márcio,
    O arquivo onde esta frase aparece é frameworks/base/core/java/com/android/internal/app/PlatLogoActivity.java, neste caso não há uma forma simples de substituir o arquivo, pois você teria que compilar o Android e substituir o arquivo gerado, qualquer erro aqui e seu sistema não iniciará mais.

  6. como faço para chegar neste arquivo no galaxy Y

    frameworks/base/core/java/com/android/internal/app/PlatLogoActivity.java,

  7. Eu consegui substituir a imagem do meu Xperia Play, mas tive algumas dificuldades:

    A primeira foi que além de colocar o celular em “Depuração USB” tem que deixar ele em “Modo de transferência de mídia (MTP)”, só assim consegui enviar o arquivo modificado para o Android novamente.

    E a outra dificuldade foi para detectar o celular no Ubuntu, pois recebia apenas uma mensagem tipo esta:

    :~$ adb devices

    * daemon not running. starting it now on port 5037 *

    * daemon started successfully *

    List of devices attached

    ???????????? no permissions

    De acordo com o site oficial do Android, se você está desenvolvendo no Ubuntu Linux, você precisa adicionar um arquivo de regras que contém uma configuração USB para cada tipo de dispositivo que você deseja usar para o desenvolvimento e BLA, BLA, BLA…

    Como solução rápida você utiliza essas regras:

    sudo -s
    adb kill-server
    adb start-server
    adb devices (para ver o resultado)

    E pronto, pode dar continuidade ao procedimento para “desamaldiçoar” o Android.

  8. Ola Wagner,
    Voce nao precisa mexer no arquivo PlatLogoActivity.java, leia o tutorial novamente com calma.

  9. olá Alanm já fiz no meu aparelho e agora estou tentando em outro aparelho só que quando entro no shell do android para dá o comando cp framework-res.apk /system/framework/
    aparece a mensagem: cp: not found o q devo fazer?

  10. Olá Marcio,
    algumas versoes de android nao possuem o comando cp talvez por achar que isso gera mais seguranca, puro engano.
    Neste caso voce pode substituir o comando cp acima por:
    cat framework-res.apk > /system/framework/framework-res.apk

    O resultado sera’ o mesmo, boa sorte 😉

  11. Eu consegui mudar a frase “Zombie art by Jack Larson” do meu xperia play pelo o Windows e não achei muito difícil, vou refazer o passo a passo e depois posto aqui. Quem conseguiu mudar a imagem vai conseguir mudar a frase de boa.

  12. Boa notícia Eliel estou no aguardo deste passo a passo, só assim resolvo de vez este problema dos zumbis. No aguardo.

  13. Agora como eu disse anteriormente, vou mostrar como consegui mudar a frase “Zombie art by Jack Larson” do Android. Lembrando que foi feito no Sony Xperia Play usando o Windows 7.
    ——————————————————————————————————————
    Primeiro de tudo baixar o “Conjunto de utilitários que permitem criar sistemas de software para plataforma Java” (JDK), vai no baixaki.com.br e digite “JDK”, a principio será a primeira opção, que é só baixar e instalar.

    Agora vamos baixar e instalar o “Android SDK Tools” e habilitar o adb: Baixe o SDK no link “http://dl.google.com/android/repository/android-2.1_r02-windows.zip” e depois que terminar o arquivo terá o nome “installer_r21.1-windows.exe”. Inicie a instalação e ele detectará o “JDK”, citado no primeiro passo, já instalado e é só avançar, escolher a opção “install for anyone using this computer” e continuar avançando até concluir. Depois de instalado inicie o “SDK Manager” e selecione a opção “Android SDK Platform-tools”, pressione em “Install packages…”, aceite as licenças e inicie o download. Após finalizar, feche todas as janelas.

    No seu celular colocar em “Depuração USB” e em “Modo de transferência de mídia (MTP)”:
    Clique em Configurações -> Aplicativos -> Desenvolvimento -> ative a opção “Depuração USB” e depois vai em Configurações -> Conectividade -> Modo de conexão USB -> ative a opção (MTP).

    Ligue o cabo USB no seu computador e no seu smartphone, vai aparecer na área de notificação “Depuração USB conectada” e “Conectado modo Trans. de mídia”.

    No seu PC vai em “C:\Program Files\Android\android-sdk\platform-tools” coloque o ponteiro do mouse em um local da pasta onde não tenha arquivos e pressione Shift + o botão direito do mouse e vai em “Abrir janela de comando aqui”.

    Para verificar se o Windows detectou o celular, na janela de comando que abril digite
    C:\Program Files\Android\android-sdk\platform-tools>adb devices

    * daemon not running. starting it now on port 5037 *
    * daemon started successfully *
    List of devices attached
    43423541314A57465353 device

    Como no Linux se apareceu como no exemplo acima é porque está OK.

    A mensagem “Zombie art by Jack Larson” esta em um arquivo classes Java, que estão compiladas em um arquivo binário chamado classes.dex. O .DEX é a extensão do arquivo executável entendido pela máquina virtual Dalvik do Android. E para trocar esta mensagem não é tão difícil.

    De inicio vamos copiar o arquivo do celular que contem a mensagem, o “framework.jar”, executando o seguinte comando:

    C:\Program Files\Android\android-sdk\platform-tools>adb pull /system/framework/framework.jar C:/01/framework.jar

    Depois vai no diretório “C:1” que o arquivo vai estar lá.
    Mude o nome do arquivo “framework.jar” para “framework.jar.zip” e extraia o conteúdo dele, na pasta que o arquivo foi extraído “framework” vai está o “classes.dex”. E para converter o arquivo .DEX para JAR, vamos utilizar o “Dex2Jar” que pode ser baixado no link seguinte:

    “https://dex2jar.googlecode.com/files/dex2jar-0.0.9.13.zip”

    Muito simples de usar, extraia “dex2jar-0.0.9.13.zip” para pasta “C:1\”, copie o classes.dex para pasta “C:1\dex2jar-0.0.9.13\”, abra o prompt do DOS pressionando Shift + o botão direito do mouse e indo em “Abrir janela de comando aqui”, e execute o comando seguinte:

    C:1\dex2jar-0.0.9.13>dex2jar.bat classes.dex

    Ele criará um “classes_dex2jar.jar”, para abrir o arquivo JAR, basta trocar sua extensão para .ZIP e descompactá-lo, assim como feito antes.
    Na pasta onde o arquivo foi descompactado, vai até o diretório “classes_dex2jar\com\android\internal\app” e procure o arquivo “PlatLogoActivity.class”, onde a mensagem se encontra, e para editar ele sem danifica-lo vomos usar o “xvi32” que pode ser baixado no link seguinte:

    “http://www.handshake.de/user/chmaas/delphi/download/xvi32.zip”

    Extraia o “xvi32.zip” numa pasta e execute o “XVI32.exe”, clique em File -> Open e abra o arquivo “PlatLogoActivity.class”, procure a frase “Zombie art by Jack Larson” sem aspas, após encontrar, clique na primeira letra do texto original, “Z”, na tabela da direita, e comece a digitar o novo texto.

    AVISOS IMPORTANTES:
    * Nunca aperte BackSpace no XVI32, pois ele apaga a letra e se você salvar, vai danificar o arquivo. Caso você aperte sem querer, abra o arquivo de novo, sem salvar.
    * Por exemplo: O texto “Zombie art by Jack Larson” tem 25 dígitos, o seu texto poderá ter no máximo 25 dígitos também. O limite será entre a primeira letra “Z” e a ultima “n”, você não pode ultrapassar esse limite, caso contrário, danificará a estrutura do arquivo. Se o seu texto for menor que os 25 dígitos, substitua o resto do texto com espaço.
    * No texto não pode ter acentuação nenhuma.

    Após terminar o novo texto clique em File -> Save, e depois pode fechar o XVI32. No meu caso ficou ” DEUS SEJA LOUVADO!! ” sem aspas.

    Então você retorna ate a pasta “classes_dex2jar” selecione seu conteúdo, compacte em .ZIP novamente e depois renomeie para “classes_dex2jar.jar” e copie para pasta “C:1\”.

    Agora vamos converter a aplicação no formato .jar para .dex novamente:
    Entre na pasta “C:\Program Files\Android\android-sdk\platform-tools” novamente e abra o prompt do dos pressionando Shift + o botão direito do mouse e indo em “Abrir janela de comando aqui” e digite o comando seguinte seguinte:

    C:\Program Files\Android\android-sdk\platform-tools>dx –dex –debug –output=C:1\classes.dex “C:1\classes_dex2jar.jar”

    Se terminar o processo e não aparecer nenhuma mensagem, é porque em principio deu certo e seu arquivo “classes.dex” vai estar em “C:1\”, mas se aparecer alguma mensagem fazendo referencia ao arquivo “PlatLogoActivity.class” é porque tem algum problema, então refaça o processo.

    Agora vamos copiar o arquivo “classes.dex” novamente para pasta “framework” e substituir o que esta lá. Depois selecione todo conteúdo da pasta “framework”, compacte para .ZIP novamente, renomeie para “framework.jar” e copie para pasta “C:1\” substituindo o arquivo que se encontra lá.
    E agora o arquivo framework.jar está pronto para ser enviado para pasta “/system/framework/” do celular, da mesma maneira que o arquivo da imagem.

    C:\Program Files\Android\android-sdk\platform-tools>adb push C:/01/framework.jar /sdcard/framework.jar
    E assim por diante…

    —————————————————————————————————————–
    A explicação é longa, mas os procedimentos, se feitos com atenção, são fáceis.
    Qualquer duvida estamos ai.

  14. Eu postei no youtube um vídeo mostrando o meu celular depois da modificação e na descrição do vídeo tem um link que leva até dois arquivos em PDF, que mostra como fazer.
    Eu acho bom darem uma olhada no PDF da modificação da frase Zumbie Art, pois aqui quando envio a mensagem fica faltando alguns dígitos.

    Link do youtube: http://www.youtube.com/watch?v=sRov3QAfR_I

  15. Eliel meu arquivo framework.jar não tem nada dentro eu achei um arquivo framework.odex na pasta system do celular como converte de odex para dex?

  16. Olá Márcio, isso significa que seu Android está “Odexado”, o que seria basicamente uma otimização.
    Particularmente eu acho que isso só ajuda a acelerar o processo de inicialização do sistema, o que não faz muita diferença, más dificulta, um pouquinho somente, a editar o Android.
    Criticas a parte, o método que eu publiquei anteriormente foi para o Android “Deodexado” (???????? GOOGLE), mas amanha, quando tiver um tempinho, eu posto como fazer no seu sistema com framework odexado.
    Até mais!!!!

  17. Postei no meu SkyDrive outro PDF mostrando como mudar a frase “Zombie art by Jack Larson” no Android com framework Odexado. E agora na hora de editar o arquivo PlatLogoActivity usem o Notepad++, assim vocês não terão a limitação de dígitos como no Xvi32.

    Link: http://youtu.be/sRov3QAfR_I

  18. Eliel estou arrumei uma rom deodexada e estou preso nesta parte do processo:

    C:\Program Files\Android\android-sdk\platform-tools>dx –dex –debug –output=C:1\classes.dex “C:1\classes_dex2jar.jar”
    o comando é desta forma mesmo já fiz com aspas sem aspas
    por favor dá mais essa ajuda ai

  19. valeu Eliel consegui alterar a frase, o seu tutorial para rom deodexada deu certo, agora vou testar o outro tuto para rom odexada, depois digo o resultado e lembrando antes de fazer qualquer alteração no celular o certo é primeiro fazer um backup do sistema, porque em caso de dá algum erro é só restaurar o sistema e começar de novo.

  20. Parabéns Alan, o tutorial tá explicadinho! Comigo só na parte de enviar os comandos pelo shell do android que teve uma pequena mudança pq acho tive que inserir o busybox antes dos comandos, ex.: “# mount | busybox grep system”. Mas deu td certo, valeu!!
    Depois tentarei alterar a frase com o tutorial do Eliel.
    Abs!!

  21. Olá Andre,
    Fico feliz que tenha funcionado corretamente.

    O segredo para escrever um bom tutorial é se colocar no lugar de uma pessoa leiga. Você não deve apenas dizer: “entre no diretório xyz”, você deve também mostra-la como fazer isso, do contrário você está assumindo que todo mundo tem o mesmo nível de conhecimento que você e é aí que os problemas começam.

    Boa sorte no próximo passo de alterar a frase.

    Um abraço,
    Alan

  22. Oi Ronilson,
    Sim, veja os passos que o Eliel escreveu nos comentários deste post. Eu não cheguei a fazer o procedimento do Eliel, mas está bem escrito e outras pessoas conseguiram. []’s

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s