Rodando jogos do WebOS no N900

O WebOS é o sistema operacional que roda em alguns Palm, como o Pre. Justamente esse aparelho possui um hardware semelhante ao do N900 na parte gráfica. E o WebOS também é um sistema baseado em Linux. E o processador do aparelho também é um ARM.

Tudo isso não faria os jogos rodarem no N900….mas um detalhe faz: a biblioteca gráfica utilizada nos jogos também existe para o aparelho da Nokia! E obviamente um usuário do T.M.O., em algumas horas de testes, conseguiu fazer pelo menos 2 jogos rodarem no N900, nativamente, sem necessidade de emulador nem nada disso.

Este é o vídeo mostrando o feito:

Eu fiz um teste com o Need For Speed Undercover e o jogo roda perfeitamente, com gráficos excepcionais, som, e tudo o mais.

A única coisa que pode complicar o uso dos jogos é que o Palm Pre possui uma tela multitoque, e os jogos podem fazer uso disso. O Need For Speed por exemplo usa o toque de dois dedos para dar uma pausa no jogo….o The Sims 3 (outro que aparece no vídeo) usa dois dedos para mudar o ângulo de visão. Portanto se o jogo exige mais de um dedo pode não ser possível jogá-lo.
Leia o restante »

Atualização de firmware no ar!

O PR1.3 foi lançado, acho que bem antes do que todos imaginavam.

Ainda não encontrei o changelog, mas assim que avistá-lo, o publicarei. Algumas alterações que foram divulgadas em diversos sites:
- acesso à Ovi Music Store (onde a loja estiver disponível)
- suporte ao Nokia Ovi Suite adicionado
- diversas correções de bugs e melhorias para aumentar a performance

Todas as dicas já divulgadas para atualizar continuam válidas: desabilite todos os repositórios, exceto os oficiais da Nokia e remova programas se necessário. Também não esqueça de fazer o backup completo!

Eu precisei remover um jogo (o Brain Party) pois ele estava usando uma biblioteca que gerou uma incompatibilidade. Caso o firmware não seja atualizável à partir do próprio aparelho por problemas assim, a solução é tentar remover a biblioteca problemática (e o correspondente programa que a usa). Para isso é preciso usar o terminal. No meu caso ele reclamou da libgles1-sgx-img. Bastou fazer isso no terminal (como root):

apt-get remove libgles1-sgx-img

E a biblioteca, assim como o jogo, foram removidos, permitindo a atualização do firmware pelo próprio N900 (que é sempre a opção mais saudável, pois assim não se perdem configurações nem programas instalados).

Pagar ou não pagar?

Há uma discussão rolando no T.M.O. sobre software proprietário, software livre, redistribuição de software comercial e coisas correlatas. A origem dessa discussão é o Stellarium, excelente programa para quem gosta de astronomia.

Já foi comentado o porte dele para o Maemo. A versão que está nos repositórios extras-devel é mais uma recompilação (tanto que no texto descrevi alguns problemas que ele possui) do que um porte efetivo.

Mas agora há uma versão dele na Ovi Store, paga. A origem da discussão toda foi o fato de que o programa usa a licença GPL, que exige que os fontes sejam disponibilizados, assim como garante a livre distribuição, tanto dos fontes quanto dos binários (o programa em si). Mas não impede que se possa cobrar por um programa. Pagar vai da cabeça do usuário! Só que o usuário que pagou tem o direito de redistribuir o programa livremente (assim como aquele que não pagou).

Alguns reclamaram que um usuário colocou o link para o arquivo numa mensagem (removido pelos administradores), outros reclamam que o autor não disponibiliza os fontes, e teve gente que reclamou que tinha alguém ganhando dinheiro com trabalho alheio.

Para a primeira reclamação não há motivos: se o programa é licenciado sob a GPL, então está dentro da lei. Para a segunda reclamação, até onde acompanhei ninguém tinha entrado em contato com o autor para pedir os fontes….e aí a reclamação passou a ser contra a Ovi Store (e Nokia em última instância), por disponibilizar um programa GPL mas não seus fontes.

Já a terceira reclamação deixou de ser válida à partir do momento em que perceberam que o autor do Stellarium Mobile é justamente o principal mantenedor do Stellarium desktop. E que ele tinha solicitado aos outros colaboradores a troca da licença de uso para a versão mobile. Todos concordaram, exceto um. A solução foi retirar o código desse colaborador do programa e reescreverem essa parte do zero.

E se mudaram a licença então a disponibilização dele livremente (e dos seus fontes) também pode não ser mais obrigatória. O problema é que no “about” do Stellarium Mobile está escrito que a sua licença é a GPL (pode ter sido um engano deixar isso ali, mas está).

Não vou entrar no mérito da licença ou da questão software livre ou não, pois muitas vezes isso é mais uma questão filosófica que qualquer outra coisa. Mas eu acho totalmente justo alguém que gastou tempo, dinheiro (energia elétrica para o computador, banda larga para pesquisar na internet, e café para se manter acordado custam dinheiro), e fez algo bom, cobre por isso. Também acho um absurdo alguém que gastou U$300, U$400 para comprar um aparelho se recuse a pagar U$2 ou $3 por um programa (e um bom programa).

E só para colocar lenha na fogueira houve uma mensagem de uma pessoa da Rovio (autora do sensacional Angry Birds), onde ele explica claramente (e de forma até cruel) porque o jogo foi lançado gratuitamente no Android: porque a loja não está disponível no mundo todo, e porque os usuários desse sistema não tem o costume de pagar por programas, ao contrário dos usuários iOS (Apple).

Mas então porque lançar programas para o Android se a taxa de retorno é pequena? Porque existe um grande parque de aparelhos por aí, com tendência de crescimento. Ao contrário do Maemo que possui um parque pequeno. Além de ser possível incluir nos programas do Android propaganda, dando retorno financeiro ao desenvolvedor (através de ferramentas da própria plataforma).

Então na minha opinião, ao fazer cópias indevidas de programas comerciais no N900 o usuário também está ajudando a matar a plataforma.

Um smartphone (ou super-smartphone, como a Nokia está chamando agora aparelhos como o N900) não são nada sem programas de terceiros. E desenvolvedores de final de semana não vão conseguir suprir a necessidade por novos programas, já que só eles irão trabalhar de graça.

ATUALIZAÇÃO: os fontes do Stellarium para Maemo estão disponíveis na página do projeto. Na prática é apenas o plugin responsável pela interface, já que todas as otimizações feitas para o N900 já estavam inclusas no código do programa já disponível.

Dica aos programadores em Python

Esta dica é boa para aqueles que estão programando em Python para o N900.

Em programação existe uma ferramenta chamada profiler. Com essa ferramenta é possível analisar um programa enquanto ele está rodando. É diferente de debugar (onde você acaba executando o programa passo a passo para ver o que está acontecendo).

O profiling é extremamente útil (e muitas vezes necessário) para otimizar o código. Por exemplo: seu programa está com algum gargalo, em alguma operação, e você não consegue identificar onde é, devido à sua complexidade. Através de um profiler você talvez consiga essa informação, pois ele vai indicar quantas vezes (e por quanto tempo) um método ou função do programa foi chamado.

Em alguns casos também mostra a utilização de variáveis, e às vezes dá até para descobrir vazamentos de memória através dele (objetos que são criados, mas depois de utilizados, por algum motivo qualquer, não são destruídos).

O Python possui um esquema de profiling, porém por motivos legais (possui código proprietário), parte dele não está disponível de forma fácil (nos repositórios), o que faz com que não seja possível utilizá-lo. Parte do profiler vem na instalação padrão, mas outra parte precisa de um pacote à parte.

O pedaço que vem na instalação padrão do Python é a que gera as informações de profiling. E a que falta é justamente a parte que interpreta essas informações.

Se você mandar instalar esse outro pacote, receberá esta mensagem:

sh-2.05b# apt-get install python-profiler
Reading package lists... Done
Building dependency tree... Done
Package python-profiler is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package python-profiler has no installation candidate

A solução para isso é baixar e instalar o pacote na mão. No meu caso instalei no Scratchbox, mas no próprio N900 é igual.

Como o Maemo é baseado na família Debian, fui até o site dessa distribuição buscar o nosso pacote fujão. Neste link você verá todas as possibilidades.

Como usamos o Python versão 2.5, baixei a equivalente a essa versão, que é a 2.5.2-1 (nessa página basta selecionar de qual servidor quer baixar o arquivo). Após isso, é só mandar instalar (como root):

dpkg -i python-profiler_2.5.2-1_all.deb

E usar como manda a documentação do Python e a Wiki do Maemo.org.

Segurança do Maemo em ambiente corporativo

Um estudo sobre a segurança de dispositivos móveis foi feito pela FreeBSD Brasil Ltda, empresa que promove o FreeBSD no território brasileiro.

Eles compararam os sistemas RIM BlackBerry (num BlackBerry 8320, versão 5.0 do sistema), iPhone 3GS (com iPhoneOS 3.0), Nokia N900 (com Maemo 5/PR1.2) e um Nexus One (com Android 2.2).

O objetivo do estudo era verificar as capacidades de segurança de cada aparelho no ambiente corporativo, onde deve haver uma preocupação muito mais elevada nesse quesito.

O resultado do estudo aponta o BlackBerry como mais seguro, com uma pontuação de 70, seguido, vejam só, pelo N900 com 42, tendo o Nexus One 18, e o iPhone 16. Essa pontuação não é explicada (não dizem como chegaram a ela), mas mostra a distância existente entre os sistemas, principalmente se considerarmos que o BlackBerry tem, em sua essência, justamente o uso corporativo.

O estudo pode ser visto aqui.

Ao analisar o documento dá para perceber o motivo do N900 ter atingido um resultado tão expressivo: justamente por ser quase open-source*, e por ter uma comunidade empenhada (algumas das soluções são justamente feitas pela comunidade).

fonte: BR-Linux.org

* quase porque nem todo o código do aparelho é aberto.

Novo firmware e MeeGo

A notícia já é velha (mesmo considerando que foi noticiado hoje): a próxima atualização do firmware do N900 (o PR1.3) trará, além de várias correções no sistema e a nova versão do Qt (a 4.7), a possibilidade de fazer dual-boot com o MeeGo. Não que isso não seja possível hoje….é perfeitamente viável e fácil de fazer, mas você precisa ter um computador e o cabo USB a mão.

Há duas boas novidades nessa notícia. A primeira é que haverá uma nova atualização de firmware. Mas isso já não era muito segredo, visto que no Bugzilla muitos erros foram considerados “arrumados e colocados na próxima atualização”. Se não há a expectativa de uma nova atualização, não há porque corrigir erros (apesar que à partir de agora eu acredito que a comunidade deverá tomar posse disso, já que o Maemo é um sistema morto).

A outra boa notícia é que o N900 continua sendo a base do MeeGo no quesito aparelhos móveis. Há muito tempo se fala num tal de N9, com algumas fotos publicadas por aí. Bem, na minha humilde opinião, acho que esse aparelho não existe. Até agora não vi prova real nenhuma de que ele não seja uma mera montagem e fomentado à base de muita especulação.

Uma reclamação constante de quem acompanha o desenvolvimento do MeeGo é sua interface. Realmente é algo um tanto quanto pobre. Mas devemos lembrar que essa é a interface base do sistema! Como qualquer Linux da vida ela pode ser total e completamente alterada. E no texto que originou a notícia, no MeeGo.com, está bem claro: neste momento eles estão tentando garantir que tudo funcione corretamente, para que a primeira versão com a interface móvel provoque uma boa experiência ao usuário.

Traduzindo: a interface do MeeGo hoje não será aquela que virá na primeira versão efetivamente instalável no N900. Ou pelo menos assim eu espero…

Agora a pergunta que não quer calar: quando isso tudo estará disponível? O MeeGo possui um cronograma, que até agora foi seguido à risca. Portanto é possível dizer que até o final deste mês de outubro tenhamos uma versão final. Quanto ao firmware do N900 já é um pouco mais difícil dar um prognóstico visto a novela que foi o PR1.2. Mas acho que dá pra dizer que sairá ainda neste ano.

ATUALIZAÇÃO (créditos para o leitor igorlt, do Twitter)

Um editor do The Nokia Blog enviou à Nokia uma mensagem questionando sobre o dual-boot no N900. A resposta que ele recebeu diz que o N900 é utilizado como base de desenvolvimento do MeeGo para plataformas ARM, mas que a Nokia não pretende liberar uma versão para consumidores finais do firmware contendo o dual-boot. Ainda acrescenta que o texto no MeeGo.com foi direcionado apenas para a sua audiência: os desenvolvedores.

Nada que fuja ao que já havia sido informado desde o lançamento do MeeGo: que o N900 não o receberá oficialmente. Isso significa apenas que não vai surgir na tela do aparelho a exclamação amarela de atualização para a instalação do MeeGo.

É a mesma coisa com modo R&D, que existe apenas para que desenvolvedores utilizem. Mas absolutamente nada impede que um usuário comum não possa usá-lo também.

Apresentando o aptitude

O aptitude é um programa auxiliar para instalação, atualização e remoção de pacotes. Ele está no repositório extras-devel.

A principal função dele é poder baixar aqueles programas que, por qualquer que seja o motivo, não estão disponíveis para download por via normal na Ovi Store.

Não funciona com programas pagos! Esses continuam sendo inacessíveis.

Após instalado o aptitude colocará um ícone no menu do aparelho. O programa possui uma interface gráfica quando utilizado no computador, porém no N900 sempre que tentar iniciá-lo, ocorrerá um erro e ele será fechado. Pelo menos por enquanto o seu uso é exclusivo via terminal.

Mas como baixar um programa na Ovi? São precisos alguns passos. O primeiro é atualizar a lista de pacotes (todos os comandos como root):

Nokia-N900:~# aptitude update

Depois temos que procurar o nome correto do programa. Digamos que eu quero o Nokia Panorama.

Nokia-N900:~# aptitude search panorama
p   morphoquickpanorama                 - Morpho QuickPanorama Free Trial
i   panorama                            - Capture panoramic images on the go

O “p” indica que está nos repositórios, e o “i” que ele já está instalado no aparelho. O que está ao lado da letra é o nome do programa! É ele que usaremos para baixá-lo:

Nokia-N900:~# aptitude download panorama

Nesse caso, o nome do programa era o mesmo da busca, mas se mandar buscar por “hamster”, o jogo que está na Ovi, receberá esta resposta:

Nokia-N900:~# aptitude search hamster
p   crazy-hamster-lite       - Crazy Hamster Lite

Ou seja, para baixar, deve usar “crazy-hamster-lite”.

E finalmente, mandar instalar o pacote:

Nokia-N900:~# dpkg -i panorama_2.0.3_armel.deb

Para ver todas as opções do aptitude digite “aptitude –help”. Digitar o comando sem nenhuma opção fará o aparelho tentar abrir a interface gráfica e dará erro.

Agora duas curiosidades. O “apt-get” possui um easter egg. Tente instalar o pacote “moo”, e verá isto:

Nokia-N900:~# apt-get moo
         (__)
         (oo)
   /------\/
  / |    ||
 *  /\---/\
    ~~   ~~
...."Have you mooed today?"...

Uma simpática vaquinha. O aptitude também possui um easter egg, mais bem humorado:

Nokia-N900:~# aptitude -v moo
Realmente não existem Ovos de Páscoa neste programa.
Nokia-N900:~# aptitude -v -v moo
Eu já não lhe disse que não existem Ovos de Páscoa neste programa?
Nokia-N900:~# aptitude -v -v -v moo
Pare com isso!
Nokia-N900:~# aptitude -v -v -v -v moo
Ok, ok, se eu lhe der um Ovo de Páscoa você irá embora?
Nokia-N900:~# aptitude -v -v -v -v -v moo
Tudo bem, você ganhou.

                               /----\
                       -------/      \
                      /               \
                     /                |
   -----------------/                  --------\
   ----------------------------------------------
Nokia-N900:~# aptitude -v -v -v -v -v -v moo
O que é isso? Isso é um elefante sendo comido por uma cobra, é claro.

Dica de uso do aptitude do leitor do fórum fabricio.a.d, neste tópico.

Dica do easter egg lido na Wikipedia.

Vídeo do MeeGo no N900

Agora aparentemente rodando com uma boa fluidez no aparelho. Assim que esse novo build estiver disponível, tentarei fazer alguns testes.

fonte: The N900 Applications

Código de bloqueio

Texto baseado numa dúvida do fórum, e na dica do leitor nfermat.

O código de bloqueio é aquele digitado pra bloquear o aparelho, onde para fazer qualquer outra coisa é obrigatória a sua digitação novamente. Não confundir com bloqueio de chip, que o N900 não possui (o único lugar do mundo onde o N900 é vendido bloqueado para determinada operadora é no Reino Unido, se não estou muito enganado).

Esse código é algo que muitos usuários não prestam atenção, mas que pode trazer boas dores de cabeça. O N900 não possui um código de fábrica, como é comum em diversos outros aparelhos! Assim que o aparelho for bloqueado pela primeira vez (através do botão liga/desliga ou ativação nas configurações), será pedido o código. E à partir daí, o código digitado será o código de bloqueio/desbloqueio. Digitar “qualquer coisa” não é algo saudável, pois esquecer essa senha deixará o aparelho quase que inutilizado!

Após ele ser bloqueado a única coisa possível de fazer com o aparelho é receber chamadas e desligá-lo. Para qualquer outra coisa (ler um SMS, fazer uma chamada, acessar um programa, etc.) é obrigatório digitar o código.

Com ele bloqueado, não adianta desligá-lo pois ele pedirá o código assim que for reiniciado. Também não adianta reinstalar o firmware para zerá-lo. Ele não será apagado. (o leitor do fórum trigaum informou que reinstalou o firmware e o código foi zerado). Colocar o aparelho em modo R&D também não adiantará nada. Em suma: se o aparelho está bloqueado e você não sabe o código, a única alternativa fácil é levá-lo para a assistência técnica.

Caso seu aparelho sempre se conecte à internet, ou de tempos em tempos, e você tiver o servidor SSH instalado nele, e consiga, de alguma forma, descobrir o IP do aparelho, então ainda há alguma esperança.

Para recuperar a senha você precisa, de alguma forma, ter acesso ao terminal do aparelho, seja nele mesmo ou seja via SSH. Esta é a receita para descobrir a senha.

Primeiro, como root, digite isto no terminal:

grep -A 13 lock_code /dev/mtd1 | tail -1

Ele retornará uma linha com caracteres estranhos, como essa:

BdJIVkQlHH8YY

Isso é a senha criptografada. Agora vamos descriptografá-la usando a força bruta. Isso significa que usaremos um programa para tentar todas as combinações possíveis de senha até ele conseguir chegar no mesmo código criptografado. Com senhas alfanuméricas esse trabalho poderia levar horas, meses, até anos, dependendo da complexidade dela (uma senha que misture letras maiúsculas e minúsculas com números e caracteres especiais se torna virtualmente inquebrável justamente pelo tempo que se levaria para conseguir). Mas como essa senha é numérica, a coisa fica mais rápida.

Copie a senha criptografada para um arquivo texto, no seu computador, e adicione o texto “root:” em frente. O arquivo ficará com este conteúdo (no meu caso):

root:BdJIVkQlHH8YY

Salve-o. Importante: é um arquivo texto puro!! Nada de usar o Word e similares!

Agora precisa baixar o programa que fará a quebra da senha: John the Ripper password cracker. Caso você use algum Linux, certamente o programa estará nos repositórios da sua distribuição. Basta procurá-lo por lá. Se usar Windows, vá até o site do projeto, e baixe o arquivo. Caso tenha um Mac, aparentemente apenas a versão Pro está disponível…mas você pode baixar os fontes da versão free e compilá-lo.

Se usar Linux ou Mac, provavelmente o programa já estará no caminho. Se for Windows, baixe e descompacte em algum diretório, e mova o arquivo com a senha para o diretório onde estiver o executável do John (john-386.exe).

Abra um terminal ou prompt do DOS, e vá até o diretório onde está o arquivo com a senha. Digite isto:
Linux/Mac

john -i:digits arquivo_com_a_senha

Windows

john-386.exe -i:digits arquivo_com_a_senha

Depois de algum tempo (que podem ser poucos segundos, ou vários minutos, dependendo da capacidade de processamento do seu computador e do tamanho da senha), ele mostrará o resultado. No caso da senha acima:

Loaded 1 password hash (Traditional DES [128/128 BS SSE2-16])
12345            (root)
guesses: 1  time: 0:00:00:00  c/s: 1422  trying: 1952 - 0064547

A resposta veio praticamente instantaneamente porque a senha, 12345, é absurdamente fraca. Mas com outra senha, um pouco mais complexa, e com 7 dígitos, ele levou 11 segundos.

Agora vá até as configurações do N900, seção bloqueio do dispositivo, e altere a senha para algum código que só você saiba, e que não vá se esquecer (ou então lembre-se de nunca bloquear o aparelho)! :)

Tags:

Panorama, mais um programa para fotos

Fotos panorâmicas são aquelas fotos mais compridas, nos quais mais detalhes aparecem. Já foi falado aqui sobre o Morpho Quick Panorama, que era uma versão demo (e que depois teve uma versão completa lançada, mas por ser um aplicativo pago, indisponível no Brasil).

Ele tem uma limitação, que é o tamanho da foto: a altura é de no máximo 480 pixels. Ou seja, você fica com uma foto aquém da capacidade do N900.

Mas há um novo programa para tirar fotos panorâmicas na Ovi Store, e gratuito. E o que chama ainda mais a atenção: da própria Nokia! Quem diria que a Nokia faria algum programa para o N900…..deve ser por isso que tá chovendo tanto ultimamente.

Mas infelizmente ao tentar acessar a página dele na loja, recebo aquela linda mensagem de que o programa não está disponível para o meu país. Só que eu não desisto facilmente, e com a ajuda do Tor é tranquilo instalá-lo!

Outra forma de instalar o programa é através da linha de comando e usando o aptitude, que é um “substituto” do apt-get. Sobre ele vale a pena falar em outro texto, portanto só vou dar os comandos (execute-os como root, e, obviamente, depois de ter instalado o aptitude dos repositórios):

aptitude update
aptitude install panorama

Graficamente ele é muito mais interessante que o Morpho, e me pareceu também mais útil! Infelizmente uma captura de tela dele é meio impossível, pois nada seria mostrado (já que na tela estaria a imagem exibida pela câmera, e isso não é capturado, ficando um quadro preto).

A utilização é simples. Quando aberto, vai exibir a imagem da câmera, e no canto inferior uma barra mostrando o progresso da panorâmica. Assim que você pressionar o botão de foto, a primeira imagem será capturada. Assim que o programa avisar, mova-se para qualquer um dos lados (ele vai identificar para qual lado você se moveu), e assim que chegar no ponto correto, automaticamente tirará a próxima foto! Será mostrada na tela um identificador visual de onde é esse ponto correto.

Quando tiver finalizado, pressione novamente o botão da câmera. E aí aguarde até que o processamento da foto seja finalizado (é demorado).

Comparando o resultado da foto do Panorama com o do Morpho, diria que o programa da Nokia é superior! Principalmente pelo fato da foto não ser “diminuída”.

Mas o mais interessante de tudo não é o programa em si, mas que é um programa feito pela Nokia. Quem sabe não venham mais coisas boas por aí….