Arquivo

Archive for junho \10\-03:00 2011

Android 2.3 no Samsung Galaxy 5

10 de junho de 2011 63 comentários

Hi guys!

Após a aquisição de um Samsung Galaxy 5, tenho me divertido muito com o Android e suas peripécias.  É meu primeiro smartphone, e o sistema operacional do Google é muito interessante. De verdade. Meu Galaxy 5 veio com o Android 2.2, que apesar de defasado, me atendeu muito bem no primeiro mês. Mesmo a ROM Stock (padrão) não me deixou quase nenhuma reclamação, exceto o alto uso de bateria.

Após muita leitura, acabei optando por utilizar uma das ROMs customizadas do MAD Team, que incluem uma série de personalizações em cima do firmware original. Dentre elas, a que eu julguei mais necessária, foi com o processador setado em “On Demand”, que de fato otimizou muito o uso de bateria do aparelho. E também fiquei curioso para testar o app2sd do mesmo MAD Team. Então, para testar, utilizei a ROM MAD 2.0.9.2, que trazia quase o mesmo Froyo que eu já utilizava na ROM Stock.

O MAD 2.0.9.2 melhorou muito o uso de bateria, o display ficou mais preciso para toques nas extremidades e para digitação – melhorou muito, por sinal. Mas apesar disso, ele começou a apresentar lentidão em várias aplicações (como navegação na internet), no Angry Birds, e o Wi-Fi ficou levemente bugado – as vezes simplesmente não conectava, reboot para voltar. Isso me desagradou um pouco. O custo tava maior que o benefício.

Então, antes de voltar pra ROM Stock, decidi experimentar o porte do Cyanogen 7 pro Galaxy 5. Os trolls do canal #gti5500 (da FreeNode) estavam sendo bastante insistentes, e então não vi problemas ao fazer isso – afinal não tinha mais nada a perder.

Sobre a versão escolhida

Uma dúvida muito comum que tem circulado entre outros usuários de Samsung Galaxy 5 é referente a estabilidade do Android 2.3 (Gingerbread) no Samsung Galaxy 5. Uma vez que o porte não foi feito “diretamente” pelo pessoal do MAD Team, pois no caso do Gingerbread, a ROM foi aproveitada do Cyanogen, o MAD Team (em especial o membro subspyke) continua aperfeiçoando o funcionamento da Cyanogen 7 no Galaxy 5. E de início (dizem, deixo claro que EU NÃO TESTEI NOS PRIMEIROS ESTÁGIOS) a ROM apresentava muita instabilidade e muitos itens não funcionavam.

No entanto, o desenvolvimento foi rápido, e em menos de dois meses, o Gingerbread já está rodando com estabilidade e 90% dos recursos disponíveis no aparelho estão funcionando perfeitamente. Na versão 3.41, que estou utilizando, simplesmente está estável e ainda não confirmei se o problema que encontrei é mesmo um bug (continue lendo e você vai saber qual é). A base do sistema é o Android 2.3.3.

Mesmo assim, existem versões instáveis e disponíveis para os beta-testers de plantão. Essas versões, no fórum, são conhecidas como Nightly Builds, e foram feitas em cima do Android 2.3.4r1 (também forkada do Cyanogen). Está tudo no fórum.

Em ambos os casos, o procedimento de atualização da ROM no Galaxy 5 é idêntico, e cabe a você escolher qual delas será instalada. Não emito nenhuma garantia de funcionamento, e apenas posso dizer que no meu caso, o Cyanogen está funcionando perfeitamente, e meu Galaxy 5 nunca rodou tão bem (nem mesmo a Stock Rom). Reinstalei algumas vezes para testar, e tudo deu certo até o momento.

Como trocar a ROM (ou Firmware, imagem, whattever) no Samsung Galaxy 5

muitos artigos sobre como trocar a ROM do Samsung Galaxy 5. Falar mais um é chover no molhado, então farei apenas um breve resumo. Todavia, é bom lembrar que você vai perder dados se não fizer o backup. Continue por sua conta e risco.

– Instale o KIES, da Samsung, para o seu Windows detectar corretamente os drivers do seu Galaxy 5;
– Baixe o ODIN para substituir a ROM do aparelho;
– Obtenha as imagens de instalação que você utilizará, e o arquivo EUROPA.ops;
– Conecte o aparelho ao computador com o cabo USB;
– Desligue o aparelho;
– Pressione simultaneamente os botões volume down e select (“botão do meio”) e mande ligar o aparelho; Aparecerá o Android com uma pá e a inscrição “Downloading”.
– Abra o ODIN, marque as checkboxes “One Package” e “Auto Reboot”, desmarque “Debug Only”, selecione o arquivo OPS e a imagem que você baixou e descompactou em “One Package” (no meu caso cy7-galaxy5-v3.41.tar).
– Faça uma oração fervorosa e clique em “Start”. Então aguarde o resultado.
– Se aparecer uma tela de opções logo após o reboot (tela de Recovery), escolha a opção “Wipe Data/Factory Reset”.
Reboote novamente e veja se tudo funcionou.

Notas de Pós-Instalação

Após a instalação do Gingerbread, será preciso reconfigurar sua conta do Google e seus aplicativos. Todos eles.

Ao responder as perguntas, não recomendo configurar a sua conta do Google no startup inicial. Se seu backup já foi feito no Google, e você não ler/se confundir com as opções, ele vai imediatamente baixar todas as suas configurações e seus programas da Android Marketing. Recomendo configurar sua conta do Google só após a configuração do App2sd! Para isso, verifique meu artigo anterior.

Também recomendo habilitar imediatamente a opção “Fontes Desconhecidas” (em Configurações -> Aplicativos). Nesse caso, se você for voltar seus aplicativos e configurações pelo Titanium Backup, seus programas não serão instalados.

Se você instalou o app2sd do MAD Team, e após a instalação o sistema lhe avisar que o cartão de memória está vazio ou desformatado, NÃO ACEITE A FORMATAÇÃO NEM TENTE O FORMATAR. Na ROM MAD 2.0.9.2 o mesmo também acontecia, mas você poderia permitir a formatação sem problema algum – ele formatava apenas a partição FAT32. Na c7, ao aceitar a formatação, ele limpa completamente o cartão de memória, removendo as partições do app2sd.

Nesse caso, o procedimento correto é: Após a configuração do App2sd, se o c7 lhe oferecer para formatar o cartão, ignore a opção. Reboote o telefone em modo recovery (pode ser feito pelo celular ou pelo seu sistema operacional com o celular conectado no cabo USB via adb – comando  adb reboot recovery), e após o reboot, via adb shell utilize o comando mkfs.vfat /dev/block/mmcblk0p1. Reboote novamente o celular e ele detectará a partição corretamente.

Resultados obtidos

No meu caso, o Gingerbread está rodando mais rápido que a ROM Stock da Samsung. O uso de bateria não está tão baixo quanto na MAD 2.0.9.2, mas também está durando mais que a Stock. Senti muita melhora na recepção do Wi-Fi.

O Angry Birds está funcionando bem rápido como antes (lag apenas nas fases mais complexas). A navegação na internet idem. O ADWLauncher, que veio por padrão na C7, é tão rápido e bom que eu nem instalei o meu antigo (e amado) Launcher Pro.

O sistema está reconhecendo corretamente o tamanho das partições com o app2sd ao invés de mostrar apenas os valores da memória interna (como acontecia na MAD 2.0.9.2). E também, já existe (por padrão) o idioma Português do Brasil disponível na ROM e funcionando perfeitamente. Na MAD 2.0.9.2, o idioma português do Brasil só era obtido através do software More Locale, e ficava porco (tão porco que eu mantive em inglês, mesmo desformatando todos os números da minha agenda).

Não tenho certeza se o celular está rodando como root, mas aparentemente, sim – no entanto não tive problemas para usar a Android Market.

Das poucas desvantagens que encontrei, o display voltou a ficar exatamente como era na ROM Stock, apresentando falta de sensibilidade nas laterais extremas e pra “clicar” objetos pequenos (botões do Angry Bird, do Android Marketing e etc) mas isso tende a melhorar nos próximos releases. O Cyanogen também é pensado para equipamentos maiores, então algumas opções e botões, as vezes, podem parecer espremidos na tela. Melhorei isso diminuindo o tamanho da fonte – não lembro onde o fiz, tentei achar novamente a opção e não consegui.

E, após quase um dia de uso, o aparelho travou sem nenhum motivo aparente. Tentei desligar e não consegui, só retirando a bateria e ligando-o novamente, mas voltou a funcionar como se nada tivesse acontecido. Ainda preciso confirmar se isso é “feature” ou bug mesmo, ficarei de olho nas próximas versões estáveis.

Conclusões

Então? Ficou curioso para experimentar? Se sim, a idéia foi essa. Não perca mais tempo e teste você também! 🙂

Stay safe,
Lucas Timm.

Mais informações em:
http://www.madteam.co
canal #gti5500 na FreeNode

Categorias:Android

Android – Como configurar o App2sd

10 de junho de 2011 12 comentários

Hi folks!

Um dos motivos que me levou a troca da ROM Stock de meu Samsung Galaxy 5 por uma ROM Modificada (inicialmente a MAD 2.0.92, e posteriormente a Cyanogen 7 3.41), e que é muito interessante, é o app2sd do MAD Team.

At a glance: O App2sd é um conjunto de scripts e links simbólicos que formatam seu cartão SD com partições EXT4 e Swap, e redirecionam as aplicações comuns e parte do sistema para o cartão de memória já particionado e formatado. É uma maneira inteligente de instalação de sistema, principalmente em aparelhos como o Samsung Galaxy 5, que tem pouquíssima memória interna. Mais informações aqui.

No entanto, os scripts de criação do app2sd são meio porcos no meu ponto de vista, e podem até funcionar no seu caso. Mas, caso não funcionem (e comigo NENHUM funcionou para formatação, apenas pra ativação), você não terá outra alternativa a não ser:

– Chorar
– Aguardar e perguntar no IRC (canal #gti5500 na FreeNode)
– Fazer o particionamento na mão e tentar utilizar só pra ativação.

Outro agravante é que não existem as informações necessárias se você quiser fazer a formatação e ativação manual do App2sd. Então nesse artigo, você encontrará algumas informações preciosas que você deverá seguir caso tenha problemas na instalação do app2sd.

Antes de continuar, estou assumindo que você já sabe colocar seu celular em Recovery Mode, sabe utilizar o adb, sabe Linux, se possível sabe usar o fdisk do Linux (NÃO O CFDISK) e que você precisará utilizar o Data Wipe/Factory Restore. Ou seja, você VAI PERDER DADOS NA ATIVAÇÃO SIM, e eu não serei responsabilizado por isso. Se você amarelou, por favor, segure a tecla CTRL e pressione a tecla W. Pode parar por aqui mesmo. Ahh é, e volte seu celular para a ROM Stock, pois as modificadas só funcionam bem com o app2sd.  🙂

Um “bom script” para a MAD 2.0.9.2 está aqui. Se algum dia o site sair do ar eu tenho backup, basta me pedir e eu disponibilizo.

1) Meu particionamento deu errado

Caso os scripts do subspyke ou de alguma outra pessoa não te servir, não tenha medo, e formate sozinho. O Android e os scripts precisarão de três partições. Todas as partições deverão ser primárias e na seguinte ordem:

Partição 1: FAT32
Partição 2: Linux
Partição 3: Linux Swap

A ordem é necessária pois os scripts são todos planejados para montar a p2 como EXT4, a p3 como Swap, e o próprio sistema já monta a p1 como FAT32. E como os scripts não fazem nenhuma espécie de verificação nas partições antes de montá-las, é necessário seguir essa ordem. Eu ia corrigir os scripts e colocar verificações de partições pro caso da Swap e da partição Linux, mas devido a um @OP por demais politicamente correto no canal #gti5500, não vou mais o fazer. Pena, não fui eu que saí perdendo 😉

A partição FAT32 será enxergada pelo seu sistema operacional quando o celular for colocado em modo de armazenamento USB. Portanto, deixe o espaço que você julgar necessário para acomodar os seus arquivos pessoais (fotos, músicas, ringtones, etc).

A partição do tipo Linux conterá os arquivos do sistema operacional, e deverá ter espaço suficiente para acomodar todos os seus aplicativos. (Mais de 512MB, pelo menos). E a partição Swap será a extensão da memória. 256MB está de bom tamanho.

Para isso, acesse seu celular por adb (comando adb shell), pode ser em modo recovery, e utilize o fdisk para fazer a formatação:

# fdisk /dev/block/mmcblk0

Alguns comandos do fdisk podem te servir:
p:   Exibe a tabela de partições;
n:   Cria uma nova partição;
d:   Apaga uma partição;
w:   Salva as alterações;
t:   Altera o tipo da partição;
q:   Sai sem salvar.

O fdisk não formata as partições, e após a utilização dele, é necessário rebootar o celular após cada alteração que grave a tabela de partição. Use o Data Wipe após as modificações.

2) Obtenho erros de montagem ou o sistema está voltando pro padrão após cada reboot

Verifique se suas partições estão corretamente montadas, formatadas, cheque o dmesg pra ver se existem erros no seu cartão e confirme se o app2sd realmente está ativado. Utilize seus skills em Linux e verifique no sistema o que os logs estão te dizendo, Luke.

3) Como confirmo que o app2sd está ativado?

Verifique a saída do comando mount.

# mount
rootfs / rootfs ro,relatime 0 0
tmpfs /dev tmpfs rw,relatime,mode=755 0 0
devpts /dev/pts devpts rw,relatime,mode=600 0 0
proc /proc proc rw,relatime 0 0
sysfs /sys sysfs rw,relatime 0 0
tmpfs /mnt/asec tmpfs rw,relatime,mode=755,gid=1000 0 0
/dev/stl14 /cache ext4 rw,noatime,barrier=1,data=ordered 0 0
/dev/stl13 /data ext4 rw,relatime,barrier=1,data=ordered 0 0
/dev/stl12 /system ext4 ro,relatime,barrier=1,data=ordered 0 0
/dev/stl13 /cache ext4 rw,noatime,barrier=1,data=ordered 0 0
/dev/stl12 /data/local/tmp/sys_bin_orig ext4 ro,relatime,barrier=1,data=ordered 0 0
/dev/stl13 /system/bin ext4 rw,relatime,barrier=1,data=ordered 0 0

#

As partições montadas no cartão estarão apontando pro dispositivo /dev/block/mmcblk0p2 com sistema de arquivos EXT4. No caso acima o app2sd está desativado num Android 2.2. E no caso abaixo, o app2sd está ativado num Android 2.3:

# mount

rootfs on / type rootfs (ro,relatime)
tmpfs on /dev type tmpfs (rw,relatime,mode=755)
devpts on /dev/pts type devpts (rw,relatime,mode=600)
proc on /proc type proc (rw,relatime)
sysfs on /sys type sysfs (rw,relatime)
tmpfs on /mnt/asec type tmpfs (rw,relatime,mode=755,gid=1000)
tmpfs on /mnt/obb type tmpfs (rw,relatime,mode=755,gid=1000)
/dev/block/stl12 on /system type ext4 (rw,relatime,barrier=1,data=writeback)
/dev/block/mmcblk0p2 on /data type ext4 (rw,nosuid,nodev,relatime,barrier=1,data=writeback)
/dev/block/stl13 on /mnt/stl13 type ext4 (rw,nosuid,nodev,relatime,barrier=1,data=writeback)
/dev/block/stl13 on /cache type ext4 (rw,nosuid,nodev,relatime,barrier=1,data=writeback)
/dev/block/vold/179:1 on /mnt/sdcard type vfat (rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)
/dev/block/vold/179:1 on /mnt/secure/asec type vfat (rw,dirsync,nosuid,nodev,noexec,relatime,uid=1000,gid=1015,fmask=0702,dmask=0702,allow_utime=0020,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)
tmpfs on /mnt/sdcard/.android_secure type tmpfs (ro,relatime,size=0k,mode=000)
/dev/block/dm-0 on /mnt/asec/no.heskjasystem.ipTools-1 type vfat (ro,dirsync,nosuid,nodev,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)
/dev/block/dm-1 on /mnt/asec/com.rovio.angrybirdsseasons-1 type vfat (ro,dirsync,nosuid,nodev,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)
/dev/block/dm-2 on /mnt/asec/com.rovio.angrybirds-1 type vfat (ro,dirsync,nosuid,nodev,relatime,uid=1000,fmask=0222,dmask=0222,codepage=cp437,iocharset=iso8859-1,shortname=mixed,utf8,errors=remount-ro)

#

Se você estiver usando o Cyanogen do MAD Team, a saída do comando madteam_app2sd também confirmará se o app2sd está ativado corretamente:

# madteam_app2sd
/dev/block/mmcblk0p2 on /system/sd type ext4 (rw,relatime,barrier=1,data=writeback)
/dev/block/mmcblk0p2 on /data type ext4 (rw,nosuid,nodev,relatime,barrier=1,data=writeback)

Usage: madteam_app2sd [option]

Options:

* on      – enable App2SD
* off     – disable App2SD
* swapon  – enable swap
* swapoff – disable swap
* tweak   – optimize default filesystem attributes

MAD Team App2SD status:

App2SD:       activated

SD card used: 118400KB

SD card free: 1754608KB
Swap size:    209656KB

#

Outra alternativa é utilizar o Titanium Backup, que te mostra separadamente o espaço da partição app2sd.

4) Já criei as partições mas os scripts me dizem que a elas não estão formatadas. Como proceder?

Simples, formatando as partições. O fdisk não formata as partições, apenas demarca onde cada uma começa e termina e que sistema de arquivos a mesma hospedará. A formatação é feita através de outros comandos, segue:

Para a partição EXT4:

mkfs.ext2  -t ext4 -O ^huge_file /dev/block/mmcblk0p2

E depois tune2fs -c 0  /dev/block/mmcblk0p2 para desativar as verificações de 40 montagens e/ou 30 dias.

Para as partições FAT32:

mkfs.vfat /dev/block/mmcblk0p1

Para as partições de Swap:

mkswap /dev/block/mmcblk0p3

Algumas dessas opções podem estar disponíveis apenas com a adb shell em modo Recovery. Se algum comando não for encontrado, experimente fazer assim.

5) Não posso formatar sistema de arquivo montado

Essa mensagem será exibida se você tentar fazer a formatação e a partição estiver montada. Isso pode acontecer após algum erro ao instalar o app2sd e você tentar novamente. Experimente desmontar a partição com o comando umount /dev/block/mmcblk0p2 e tente novamente. Se o erro acontecer outra vez, tente fazer a formatação no Recovery Mode.

6) Como rodo os scripts de criação do app2sd no MAD 2.0.9.2?

Primeiramente utilize um Wipe Data/Factory Defaults.

Baixe os scripts contidos nesse link e descompacte em algum diretório qualquer. Coloque o celular em modo Recovery (ou use o script “1. recovery-mode.bat”) e depois utilize o script “2. install-config-app2sd.bat”. Se der erro, experimente rodar o script manualmente abrindo-o e executando os comandos nele contidos um por um, pra ter certeza do que está dando errado.

Após isso, dentro do adb shell, execute o script /tmp/config-app2sd que já foi previamente copiado para o celular no passo anterior.
Então, executando o menu de instalação, primeiramente utilize a opção “2” (App2SD default), e depois opção “5” (Swap enable).

Reboote seu celular e confira se o app2sd foi corretamente ativado.

7) Como rodo os scripts de criação do app2sd no Cyanogen pro Galaxy 5?

Isso eu testei várias vezes com o Cyanogen no Galaxy 5. Após ter criado as partições, utilize o Wipe Data/Factory Defaults. Boote seu celular normalmente, não configure sua conta do Google nem instale nada antes do app2sd. Acesse o celular por adb shell (não pode ser feito em Recovery) e digite o comando madteam_app2sd on. Fique atento com as mensagens na tela, pois ele formatará a /dev/block/mmcblk0p2 e fará as configurações necessárias por tune2fs.

Se suas partições estiverem corretamente setadas, ele finalizará avisando pra rebootar o celular. Não reboote ainda e rode o comando madteam_app2sd swapon. Esse é rapidinho. Após isso, reboote o celular e confira se o app2sd foi ativado corretamente (já expliquei como fazer a verificação).

Se após o boot, com o app2sd ligado, o sistema reclamar que o cartão de memória não está formatado e perguntar se você deseja formata-lo, responda não. No MAD 2.0.9.2 não tive problemas em aceitar a formatação do SD, mas no caso do Cyanogen, ao aceitar, o sistema formata inteiramente o cartão, e apaga também as suas partições criadas pelo app2sd.

Para resolver esse problema, reboote o celular no Recovery, acesse com o adb shell e formate a partição manualmente com o comando mkfs.vfat /dev/block/mmcblk0p1. Reboote novamente e a mensagem terá desaparecido.  🙂

Ficou com alguma dúvida? Entre em contato com o pessoal do canal #gti5500 na FreeNode ou pergunta aí embaixo.

Stay safe,
Lucas Timm.

 

Categorias:Android