Jelly Bean no Defy+

O Android definitivo para o meu celular

A um tempo atrás estava falando das vantagens do Android 4.0 (ICS) para o Defy+ neste post, mas com o tempo e o uso fui identificando diversas falhas, bugs (como o da bateria), e pequenas coisas bem irritantes que ocorriam com meu telefone que não me permitiam usá-lo de forma efetiva e, mais, eficiente. Por exemplo, pelo menos uma vez por dia eu era obrigado a desligar o aparelho, retirar a bateria e esperar ele esfriar (a bateria chegava a 40ºC), colocar a bateria e iniciar novamente.

Foi então que percebi uma grande mudança no desenvolvimento que o “Quarx” está fazendo para portar o Android 4.1 (Jelly Bean – ou JB, apenas -) e resolvi testar.

Em um primeiro momento meio que me decepcionei, pois os mesmos problemas continuavam ocorrendo. Mas o Fórum de usuários XDA me ajudou, pois coloquei uma inscrição a respeito dos problemas que estavam me alarmando e a resposta foi direta: “Não existem esses bugs pois todos já foram corrigidos! Comece o processo do zero novamente e confira.” E foi o que fiz, e o resultado é impressionante. Vejam:

O sistema ficou muito mais estável, não pendura ou tem lentidão (claro que não conto aqui a lentidão clássica do 3G do Brasil), ficou mais bonito ainda e evoluído em alguns softwares, abre portas para uso dos softwares mais atuais do Google (como o Google Now, o Google Music Play e o mais novo Maps) e o melhor: a bateria do meu celular passou a durar mais de 15 horas com o uso comum que faço (mesmo com a ROM original não chegava às 12 horas de uso) e aquele velho problema da drenagem da bateria em conjunto com o aquecimento não ocorre mais.

Vejam algumas imagens interessantes:

App de Rádio integrado na tela de bloqueio

Google Music Play

Google Music Play - notificação

Rádio e Google Now - notificações

Notificação de bateria

 

 

 

 

 

 

 

 

Iniciando o processo:

Para iniciar o processo foi necessário retornar ao início da vida do meu Defy+ (faça backup de tudo antes, pois tudo será apagado na memória do celular – o cartão de memória fica intacto). Se você nunca trocou a ROM de seu celular, basta fazer um “Factory Reset” ou nas configurações acessar a opção “Voltar às configurações de fábrica”.

Agora, se você já trocou a ROM do seu Defy+ alguma vez, o processo é um pouquinho maior, pois é de suma importância que ele esteja em estado “de fábrica” para iníciar  processo. Para isso, usa-se um “programete” chamado sbf_flash para Linux ou o RsdLite para Windows e uma das imagens da ROM original do Defy+. O sbf_flash está disponível aqui, mas o RsdLite não testei (não uso drogas viciantes como Windows 😛 ).

 

 

 

Esses passos só são necessários se seu Defy+ já está com uma ROM personalizada:
  1. Reinicie seu celular e entre no BootMenu;
  2. Vá em “Recovery” e em seguida em “Custom recovery”;
  3. Execute o “Format data/Factory reset”;
  4. Vá em “Advanced” e selecione “Clear Dalvik Cache”;
  5. Desligue seu celular;
  6. Ligue seu celular e mantenha o botão “Volume up” pressionado;
  7. Conecte o cabo USB no celular e no computador;
  8. Execute o comando: sbf_flash SBF_FILE
    • SBF_FILE é o nome do arquivo retirado de um dos arquivos compactados DFL abaixo:
  9. Aguarde o término do processo. Seu celular voltará às configurações de fábrica.

Pronto, agora tem em suas mãos seu Defy+ como saído da caixa. Pule a configuração inicial (ela será perdida de qualquer forma) e continue como se nunca tivesse colocado outra ROM em seu aparelho.

 

 

 

Rooteando e instalando o BootMenu:

Quarkx (a pessoa por trás do desenvolvimento do Jelly Bean para Defy e Defy+) criou um pacote que torna simples o processo de Rootear e instalar o BootMenu. Em cima deste pacote, portei o processo para GNU/Linux e empacotei novamente, portanto o pacote root.and.bootmenu.defy.v1.1.5.rar serve para as duas plataformas.

Baixe o arquivo e descompacte-o. Dentro do diretório recém criado execute o script “runme.bat” se você utiliza RWindows ou “./runme.sh” se você usa GNU/Linux. O processo roda todo sozinho, aguardando a conexão do aparelho, instalando os arquivos necessários, acertando permissões e deixando pronto para que você possa instalar qualquer ROM personalizada.

 

 

 

Instalando a nova ROM no Defy+:

Para iniciar esse processo, tenha certeza de ter 70% ou mais da bateria de seu Defy+ disponível ou mantenha-o conectado na tomada ou na USB de seu computador durante todo o processo. Caso a bateria acabe no meio do caminho terás que iniciar o processo do começo novamente (inclusive os passos para quem já usa uma ROM personalizada). O processo leva, ao todo, em torno de 40 minutos, mas até ter seu celular totalmente configurado como gosta de usá-lo, com todos os contatos, todas as contas, todos os Apps, etc, pode levar muito mais tempo.

Para começar, baixe a imagem da ROM que será instalada daqui. A imagem que instalei inicialmente foi a do dia 18/11/2012. Caso seja corajoso, use a versão mais recente de todas (eu costumo esperar um ou dois dias para ver se não aparece outra imagem logo em seguida – o que significa que a anterior tinha algum problema grave). Não esqueça de verificar se o arquivo chegou corretamente, baixando o arquivo com mesmo nome seguido de “.md5sum” e usando o comando “md5sum -c NOME_DA_ROM.zip.md5sum” (no GNU/Linux,  no Windows terás que baixar um testador de md5sum – boa sorte na busca no Google) o retorno deve ser algo como “NOME_DA_ROM.zip: SUCESSO”. Isso garante que a imagem não foi danificada durante o download.

Baixe, também, os Aplicativos Google mais recentes para Jelly Bean. Eu estou usando e recomento esse arquivo aqui, os arquivos podem ser baixados diretamente do site do Goo.im. Pode ser muito tentador pegar a versão do dia 28/12/2012 e o novo aplicativo de galeria e Camera do arquivo de extras, mas eu garanto, existem bugs e a camera/galeria vai sugar sua bateria aquecendo ela acima dos 40º.

Agora coloque esses dois (ou três) arquivos no cartão SD do seu celular em uma pasta específica (só para que fique claro onde estão os arquivos, facilitando a localização dos mesmos). Como exemplo, usaremos o /JB.

  1. Reinicie o celular;
  2. Assim que acender um LED AZUL, pressione o botão de volume para baixo;
    • No BootMenu as teclas de volume trocam a seleção de opção e a tecla Liga/Desliga funciona para selecionar a opção;
  3. Selecione a opção “Recovery” e em seguida “Custom Recovery”;
  4. Novamente limpe o diretório “data” e o cache, escolhendo a opção “Wipe data/factory reset”;
  5. Selecione “Install zip from sdcard” e em seguida “choose a zip from sdcard”;
  6. Selecione a pasta onde esta o zip (em nosso exemplo “JB/”) e em seguida a imagem ROM que você baixou;
  7. Navegue pelas opções até o “Yes – Install NOME_DA_ROM.zip” e confirme;
  8. Em seguida, selecione novamente “choose zip from sdcard”, volte à pasta JB/ e selecione o arquivo gapps-jb-4.2.1-DATE-signed.zip;
  9. Navegue pelas opções até o “Yes – Install gapps-jb-DATE-signed.zip” e confirme;
    • Repita os passos 8 e 9 com o arquivo gapps-jb-4.2.1-extra-signed.zip caso queira;
  10. Selecione a opção “+++++Go Back+++++” duas vezes;
  11. Selecione “Reboot”;

Agora o logo animado da CyanogenMod aparecerá depois do logo da Motorola. O sistema está se instalando, o que significa que muitas alterações devem ser feitas antes dele estar pronto para uso. Aguarde pacientemente, pois pode levar até 20 minutos. Assim como as versões anteriores, coisas estranhas podem acontecer durante esse processo (o celular reiniciar sozinho ou até mesmo travamentos). Caso leve mais de 20 minutos para que ele esteja pronto para usar, desligue o celular retirando a bateria e aguardando cerca de 30 segundos antes de retorná-la. Ligue-o novamente e aguarde os 20 minutos de novo.

Pronto, é só configurá-lo, deixá-lo com sua cara e curtir o novo Android 4.1 em seu Defy+.

Depois desse processo, as atualizações para imagens mais recentes do CM10 dispensam a limpeza do data (ou seja, não há necessidade de reconfigurar tudo a cada atualização) e o processo se torna mais rápido. Atualmente estou usando a imagem do dia 28/11/2012 e a atualização foi bem tranquila, só que não se usa mais o “Defy ROM Updater”.

Deixem seus comentários e dúvidas abaixo. Caso tenha alguma dúvida, verifique antes se já não foi respondido a outro internauta antes de perguntar novamente.

Programas extras para ter em um Tablet com Debian

Bom, você já segue meu blog,  tem um Notebook conversível em Tablet, como o meu ThinkPad X200T, e seguiu algumas das minhas dicas de configuração aqui e curtiu meu script aqui. Agradeço o reconhecimento, mas ainda tem mais coisas que talvez você se sinta perdido (como eu já me senti) e voltou ao meu blog pois está procurando alguns programas e não encontrou. Portanto decidi fazer minha lista de programas imperdíveis para um tablet e programas bem legais.

Programas Imperdíveis

  • Xournal – Esse é um programa bem legal para fazer notas à mão (o caderno da faculdade). Não sei quanto à vocês, mas estudiosos já falaram que fazer as notas de estudo à mão aumenta exponencialmente a capacidade de memorização. No RWindows 7 existe algo parecido, chamado “Diário do Windows” (em inglês “Windows Journal”);
  • Avant Windows Navegator – Essa barra de tarefas com estilo MacOS é genial para criar um local para os lançadores de programas. Sua aparência e sua simplicidade no uso e configuração a colocam nessa lista de imperdíveis;
  • Stellarium – Um planetário de código aberto para o seu computador. Ele mostra um céu realista em três dimensões igual ao que se vê a olho nu, com binóculos ou telescópio. Ele também tem sido usado em projetores de planetários. Basta ajustar as coordenadas geográficas e começar a observar o céu!
  • CellWriter – Uma grade de painel de entrada natural de escrita (escrita à mão). Conforme você escrever caracteres para as células, a sua escrita é instantaneamente reconhecida. Quando você pressionar Enter no painel, a entrada que você inseriu é enviado para a aplicação como se tivesse digitado no teclado. Apesar de muito chato para “ensinar” sua escrita para ele, depois dessa aprendizagem funciona de maneira incrível.

Para diversão, sugiro:

  • Pingus – As pessoas com mais de 25 anos de idade e que tiveram uma infância informática como eu devem se lembrar do jogo dos Lemmings. Esse é um clone superdivertido, que utiliza pinguins no lugar dos famosos Lemmings.
  • Paciência AisleRiot – Diversos jogos de paciência (Solitaire) em um mesmo jogo. Freecel, Spider, MonteCarlo, entre outras tantas opções. Além disso, um visual super legal nas cartas.

Espero que gostem das minhas sugestões.



ThinkPad X200 T com todas as funções em GNU/Linux…

Ou quase isso!

A um tempo atrás, postei uma reportagem de como deixar o ThinkPad X200 Tablet funcionando com GNU/Linux (no meu caso Debian), com a maioria das funções funcionando. Esse post pode ser lido aqui. Mas não estava completo, porque ainda faltava fazer com que uma das funções mais legais (a transformação em tablet, girando a tela, e a rotação automática da tela conforme se gira o tablet), ainda não estava funcionando.

Passaram-se, então, 3 meses de pesquisa (tá certo, não foi uma pesquisa muito intensa, pois estava concentrado em minha nova empreitada profissional) e tentativasde aplicação de diversas sugestões de blogs, wikis, vídeos, usuários de Ubuntu, CentOS e outras tantas distribuições. Nenhuma efetiva, mas muito aprendizado foi possível.

Descobri que os módulos que esses dispositivos precisavam criavam diversos dispositivos no /sys/devices/platform, e comecei a colocar a cabeça para trabalhar. Percebi que seria necessário criar algo, que não seria trivial, mas que teria grandes chances de funcionar como eu queria. E mais, percebi que só conseguiria que funcionasse como eu queria se eu desenvolvesse algo para isso.

Como todos sabem, não sou programador, sou um mero administrador de sistemas GNU/Linux (com toda a modéstia que Deus me deu, posso dizer que sou pouco mais que bom no que faço). Portanto, de programação o que seu fazer é automatização de tarefas com Shell Scripts.

Nesta última semana espantei a preguiça e decidi fazer o script para automatizar essa tarefa. Já estava cansado de toda vez que transformava o note em tablet ou decidisse girar o tablet tivesse que apertar um botão. Ficou simples e de fácil compreensão, no entanto, consumia muito processamento, pois o encadeamento de condições que foi necessário estava sendo executado em tempo de processador. Um bug, resolvido facilmente com um sleep de meio segundo.

Vejam só que script interessante. Se quiserem desenvolver algo mais, a partir daqui, fiquem á vontade, só peço que se siga a GPL 3.

#!/bin/bash

## Created by: Luiz Guaraldo <guaraldo@universolivre.com.br>
## Created at: Tru Jan 24 22:15:35 BRST 2012
## Last Update: Tru Feb 8 09:30:15 BRST 2012

## Default screen mode for Swivel Down and Swivel Up [normal|right|inverted|left] and default VIDEO output
XRANDUP="normal"
XRANDDN="right"
VIDEO="LVDS1"

## Personal configuration can be put on home folder in .tablet.conf file.
if [ -f ~/.tablet.conf ]; then
 . ~/.tablet.conf
fi

## Get XSetWacom by XrandR rotation. Important to mantain toutch syncronization
case "$XRANDUP" in
 inverted)
 XSWUP="half"
 ;;
 normal)
 XSWUP="none"
 ;;
 left)
 XSWUP="ccw"
 ;;
 right)
 XSWUP="cw"
 ;;
 *)
 XRANDUP="normal"
 XSWUP="none"
 ;;
esac
case "$XRANDDN" in
 inverted)
 XSWDN="half"
 ;;
 normal)
 XSWDN="none"
 ;;
 left)
 XSWDN="ccw"
 ;;
 right)
 XSWDN="cw"
 ;;
 *)
 XRANDDN="right"
 XSWDN="cw"
 ;;
esac

## Starting position of Swivel (remember that this script just act when Swivel is DOWN)
last=0 # Tablet mode off
lastpos="$XRANDDN" #When on tablet mode this will be default screen rotation
position="$XRANDDN"

## Starting infinite loop
while :; do
 ## This file is 0 when Swivel UP and 1 when Swivel DOWN (tablet mode)
 now=`cat /sys/devices/platform/thinkpad_acpi/hotkey_tablet_mode`
 if [ $last != $now ]; then
 ## Turn on or off tablet mode
 if [ $now == 1 ]; then
 ## Turn on tablet mode
 /usr/bin/xrandr --output $VIDEO --rotate $XRANDDN
 xsetwacom set "stylus" Rotate $XSWDN
 xsetwacom set "cursor" Rotate $XSWDN
 xsetwacom set "eraser" Rotate $XSWDN
 else
 ## Turn off tablet mode
 /usr/bin/xrandr --output $VIDEO --rotate $XRANDUP
 xsetwacom set "stylus" Rotate $XSWUP
 xsetwacom set "cursor" Rotate $XSWUP
 xsetwacom set "eraser" Rotate $XSWUP
 fi
 ## Mark present mode
 last=$now
 fi

 ## Autorotation of screen when on tablet mode
 ## This file contain HDAPS position (indicates notebook rotation)
 position1=`cat /sys/devices/platform/hdaps/position | cut -d, -f1 | cut -d'(' -f2`
 position2=`cat /sys/devices/platform/hdaps/position | cut -d, -f2 | cut -d')' -f1`
 # This is a coordenate (rotation on X and Y axis)

 if [ $now == 1 ]; then ## On tablet mode?
 if [ $position1 -gt 350 ] && [ $position1 -lt 400 ] && [ $position2 -gt -525 ] && [ $position2 -lt -475 ]; then
 position="right"
 elif [ $position1 -gt 475 ] && [ $position1 -lt 525 ] && [ $position2 -gt -400 ] && [ $position2 -lt -350 ]; then
 position="inverted"
 elif [ $position1 -gt 625 ] && [ $position1 -lt 675 ] && [ $position2 -gt -525 ] && [ $position2 -lt -475 ]; then
 position="left"
 elif [ $position1 -gt 475 ] && [ $position1 -lt 525 ] && [ $position2 -gt -675 ] && [ $position2 -lt -625 ]; then
 position="normal"
 fi

 ## Just act when possition changed
 if [ "$position" != "$lastpos" ]; then
 ## Get XSetWacom syncronization
 case "$position" in
 inverted)
 wpos="half"
 ;;
 normal)
 wpos="none"
 ;;
 left)
 wpos="ccw"
 ;;
 right)
 wpos="cw"
 ;;
 esac
 xrandr --output $VIDEO --rotate $position
 xsetwacom set "stylus" Rotate $wpos
 xsetwacom set "cursor" Rotate $wpos
 xsetwacom set "eraser" Rotate $wpos

 ## Mark new position
 lastpos=$position
 fi
 fi

 ## Processor got hudge ocupation. 70% lass processor ocupation after sleep.
 sleep 0.5
done

Claro que criar o script foi só o primeiro passo. Agora precisava clocar para rodar automaticamente. Para isso, usei o início automático do GNOME (que é o gerenciador de janelas que eu uso), mas pode ser feito em qualquer gerenciador de janelas.

Para alterar o padrão de entrada e saída do tablet mode, basta criar um arquivo .tablet.conf no diretório home do usuário com duas linhas:

XRANDUP="normal"
XRANDDN="inverted"

Assim, ai iniciar uma nova sessão do gerenciador de janelas já estava tudo funcionando como eu queria… A rotação automática da tela só ocorre quando em Tablet Mode, ao entrar nesse modo a tela se vira da forma como eu queria (e não da forma padrão do script – que fiz seguindo o padrão que o software da Lenovo para RWindows tinha), enfim, cmo não existia o que eu queria, tratei de criar…

Espero que seja útil para todos. Postem comentários, por favor. Basta autenticarem com o Twitter.

Ainda tentando Twitar meus Posts

Twittar os posts do blog parece uma coisa super legal. O WordPress é uma ferramenta gerenciadora de blogs magnífica, cheia de plugins muito interessantes, entre eles, diversos conectores ao Twitter. Passei um tempo testando vários, e decidi colocar algumas observações aqui:

Iniciei testando o plugin Twitter Tools, que parecia uma ótima escolha. Já está atualizado à nova autenticação oAuth do Twitter e tem uma interface super amigável. No entanto, ia tudo bem até tentar testar a conexão do mesmo: decepção… O plugin causa um erro de curl(), insolúvel até o momento com a versão mais atual do WordPress.

Comecei então a testar outros, não tão completos, mas alguns bem eficientes: o Twitter Connect é uma alternativa para criar um espaço na barra lateral para que seus twits apareçam junto a seu blog. Simples e eficiente, faz aquilo que se propõe. No entanto, a exibição é pobre e preferi usar um plugin oficial do Twitter, em Ajax.

Tanto o Twitter Updater como o Twittaí, esse baseado no anterior, tem uma interface amigável e parecem muito eficientes, no entanto estão ultrapassados desde a alteração da forma de autenticação do Twitter, portanto, não funcionam.

Ainda procuro alternativas. Quem tiver alguma ideia manda um comentário aí…

Por que não se pode dar privilégios especiais a um usuário?

Essa é uma regra que todo administrador de sistemas conhece, faz parte das “boas práticas” de uma rede de computadores e deixa muitos usuários pedavida… Não se dá mais privilégios para um usuário do que o estritamente necessário para seu trabalho. E o motivo é simples: usuário não sabe ler!

É fato, qualquer assistente de suporte já viveu a situação, e não dá pra dizer que o problema é a luminosidade do monitor, pois o usuário não lê qualquer coisa. Incrível como a capacidade de pensar de um usuário limita-se a seguir um passo-a-passo que o analista de suporte prepara. Mesmo nos programas mais básicos, mais amigáveis, mais auto-explicativos, mais simples e com mais instruções possíveis em suas telas, os usuários não lerão, e ligarão para o suporte para perguntar como que fazem aquilo que esrtá na cara deles.

Isso me lembra a célebre frase de Murph: “Se alguma coisa tem duas maneiras de ser feita (uma certa e uma errada), com certeza alguém escolherá a maneira errada”, e eu acrescento ainda: “e não saberá desfazer!” – Afinal, pra que que serve o CTRL+Z, mesmo??? E como faz aquela função que tu já me explicou uma vez? Foram 10, mas tem que explicar mais uma… Será tão difícil ler?

Agora imagina se o administrador de redes dá permissões a mais para um usuário? O que vai acontecer? Que tenha backups contínuos, porque senão, alguma coisa vai se perder!