Month: February 2013

Baixando e rodando uma imagem do Windows no VirtualBox

Se você precisa rodar, por qualquer motivo, uma máquina virtual com Windows no seu Linux, então você pode fazer isso de forma legal usando as imagens que a Microsoft fornece para teste de validação das versões anteriores do IE:

http://www.microsoft.com/en-us/download/details.aspx?id=11575

Infelizmente esta imagem só funciona no “Virtual PC”, mas graças ao pessoal do http://www.modern.ie estas imagens foram convertidas para roda no Virtual Box.

O melhor de tudo é que o projeto https://github.com/xdissent/ievms fornece um script para você instalar estas imagens no Linux e MAC.

No meu caso (Ubuntu 12.04) só precisei executar estes 2 comandos:

$ sudo apt-get install unar
$ curl -s https://raw.github.com/xdissent/ievms/master/ievms.sh | IEVMS_VERSIONS="9" /bin/bash

Ouça a voz do meu id sendo externalizada: “Maldita CEF que me fez instalar esta porcaria para rodar o “Conectividade Social”, eu te amaldiçoo até o último centavo que existir nos seus cofres.”

Fonte: http://osxdaily.com/2011/09/04/internet-explorer-for-mac-ie7-ie8-ie-9-free/

Como montar arquivo jffs2 no desktop Linux

Este foi o procedimento que executei para montar um arquivo jffs2 no meu computador com Linux:

root@bob:~# modprobe mtdram total_size=2425 erase_size=256

Substitua o 2425 pelo tamanho (em KB) do seu arquivo jffs2 que será montado.

root@bob:~# dd if=mtd4_IpcamFS.img of=/dev/mtd0
4736+0 registros de entrada
4736+0 registros de saída
2424832 bytes (2,4 MB) copiados, 0,0324392 s, 74,8 MB/s

root@bob:~# modprobe mtdblock

root@bob:~# mount -t jffs2 /dev/mtdblock0 /tmp/rootfs/

root@bob:~# ls -t /tmp/rootfs/
Wireless  init  www  config  system

Fonte: http://www.plugcomputer.org/plugforum/index.php?topic=59.0

Doe para o projeto ReactOS

Hoje testei o ReactOS no VirtualBox e fiquei surpreso com o resultado, quase tudo funcionando e não vi travamentos, que era algo de se esperar para um sistema Windows-like. Não sou usuário de Windows, mas infelizmente algumas aplicações só funcionam no Windows e nem usando WINE resolve.

Um exemplo clássico é a solução de “Conectividade Social” da Caixa Econômica Federal. Se você pesquisar sobre isso na Internet vai entender do que estou falando. Repetindo um comentário que vi: “Os “programadores“ da CEF certamente são os mais odiados do Brasil, pois fazem soluções que não funcionam e nem os mais experientes em informática conseguem usar”. Coisas com depender do MSJava (nem a MS usa mais), abrir porta de comunicação entre browser e aplicação na porta 80 (se você tiver qualquer coisa rodando na porta 80 esquece, o software deles não vai funcionar), sem contar que antivirus e firewall costumam matar/bloquear softwares que usem a porta 80.

Então fica a dica: se você precisa rodar alguma aplicação para Windows que não funciona no WINE, tente roda-la no ReactOS, provavelmente ela vai funcionar.

A propósito o ReactOS está recebendo doações, eu acabei de doar U$10.00. Faça um teste no sistema e se você achar que vale a pena investir na ideia, doe tambem.

http://www.reactos.org/donations

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.

Saving log during GDB execution

You can define logs to be saved during GDB executing this way:

(gdb) set logging on
Copying output to gdb.txt.
(gdb) commands 5
Type commands for when breakpoint 5 is hit, one per line.
End with a line saying just "end".
>x/1s $r7
>x/1s $r5
>cont
>end
(gdb) commands 6
Type commands for when breakpoint 6 is hit, one per line.
End with a line saying just "end".
>x/1s $r4
>x/1s $r6
>cont
>end

Source: http://forum.xda-developers.com/showthread.php?t=1374345

Interceptando a comunicao serial com o interceptty

Se voce esta’ a procura de uma forma de sniffar a comunicacao serial no Linux, entao voce pode usar o interceptty:

http://www.suspectclass.com/sgifford/interceptty/interceptty.html

Ele permite varias formas de utilizacao, inclusive via rede.

Update: Outro sniffer serial p/ Linux/*nix é o JPNevulator: http://jpnevulator.snarl.nl

Update2: https://sourceforge.net/projects/ttyusbspy/

Update3: http://freshmeat.sourceforge.net/projects/linuxserialsniffer/