Arquivo mensal: maio 2012

Solução para dispositivo não reconhecido no android Market ou Google Play Store

Lembre-se que toda alteração de arquivos de sistema pode trazer problemas inesperados a seu dispositivo. Não me responsabilizo por problemas e muito provavelmente não poderei ajudá-lo a resolver problemas em dispositivos que desconheço.

Você foi avisado…

Agora seguimos em frente…

================================================================================================================

Às vezes você procura algum aplicativo para o android no market e quando tenta fazer a instalação recebe uma mensagem de que ele é incompatível.

Às vezes você sabe que o aplicativo existe, sabe o nome mas ele nunca retorna quando você faz a busca com um determinado aparelho e aparece com outros.

Esse tipo de problema ocorre quando o desenvolvedor não tem certeza que o aplicativo é compatível com determinados ou quer restringir o público que pode ter acesso (comum em desenvolvedores de jogos que preferem que os usuários com dispositivos sem recursos gráficos avançados baixem jogos e fiquem desapontados com o baixo desempenho causado por seus aparelhos).

Se seu dispositivo está rooteado você pode contornar esse problema, fazendo com que seu dispositivo se identifique como um Nexus S, que é o aparelho base de desenvolvimento para android, onde todos os aplicativos devem rodar.

O arquivo onde as informações do dispositivo estão é o build.prop.

Você pode editá-lo no seu micro, usando os recursos do adb ou no próprio dispositivo com um editor como o BuildProp Editor, que pode fazer backups do seu build.prop original ou diferentes build.props caso você queira testar o comportamento das buscas com diferentes alterações.

Caso você se sinta corajoso e com sorte, essas são as linhas que você deve alterar no build.prop para que seu dispositivo seja identificado como um Nexus S.

ro.product.model=Nexus S
ro.product.manufacturer=samsung
ro.build.fingerprint=google/soju/crespo:2.3.4/GRJ22/121341:user/release-keys
ro.build.description=soju-user 2.3.4 GRJ22 121341 release-keys


Após fazer as alterações, vá em Configurações -> Aplicativos -> Gerenciar Aplicativos -> Google Play Store e clique em Limpar Cache e Limpar Dados.

Desligue o dispositivo, ligue e entre no Play Store (antigo Market) e faça suas buscas.

Teclado Bluetooth no android

Você tem um teclado Bluetooth sobrando ou então comprou uma capa com teclado Bluetooth pro seu tablet android para ajudar na composição de textos e descobriu que não consegue conectar o teclado ao dispositivo e, quando consegue, o teclado não é reconhecido por nenhuma aplicação.

Por que isso ocorre? Má sorte? Inferno astral? Não. Simplesmente a pilha Bluetooth do android não é completa, implementa as funções para fone de ouvido ou head-set, umas coisinhas para transferência de arquivo e acabou.

Para outras funções você depende de aplicativos que fazem a implementação da pilha Bluetooth internamente.

E o teclado? Você tem duas opções: utiliza um app como o Bluekeyboard JP, que é dependente do layout do teclado usado (se seu teclado não usa um layout suportado nem todas as teclas são reconhecidas corretamente) ou usa a força bruta e instala os utilitário Bluetooth do android (sim, existem. Só não são incluídos nos aparelhos).

Esse método exige que seu aparelho seja rooteado. Cada aparelho tem um método próprio e o usuário deve descobrir qual o método para fazer o root em seu aparelho. Alguns aparelhos não possuem método, geralmente por serem muito novos. Nesses casos é preciso paciência e aguardar.

Se seu aparelho tem root, baixe os utilitário Bluetooth desenvolvidos pelo Google. Você vai precisar do hidd, hcitool e hciconfig .

Conecte seu aparelho via USB ao micro, ative a depuração USB e use o adb:

$ su
# mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system
# chmod 777 /system/xbin

Copie os utilitários para o dispositivo:

$ adb push hidd /system/xbin
$ adb push hcitool /system/xbin
$ adb push hciconfig /system/xbin

Ative o bluetooth em seu dispositivo, coloque seu teclado em modo de reconhecimento e mande o dispositivo procurar periféricos.

Selecione o teclado e quando aparecer a janela coloque uma senha qualquer como 0000, 1234 ou 1111. Logo em seguida digite a mesma senha que você escolheu no teclado e aperte a tecla ENTER no teclado.

Siga isso atentamente, pois é mais uma limitação do android. Caso você tenha testado esse teclado no Windows ao ter conectado com o teclado deve ter surgido uma janela com uma sequência de dígitos para serem repetidos no teclado para fazer a sincronização.

O android sempre espera que o dispositivo forneça um PIN. Isso não ocorre com teclados. Então você coloca um PIN qualquer no android e rapidamente repete o mesmo PIN no teclado.

Seu teclado está pareado mas não está conectado.

Agora comece a utilizar os utilitários que você baixou e copiou no seu dispositivo:

Verifique o endereço Bluetooth de seu teclado:

# hcitool scan
Scanning ...
00:1D:4F:A7:9A:49 Bluetooth Keyboard

Conecte ao teclado:

# hidd --connect 00:1D:4F:A7:9A:49

Alguns comando bluetooth úteis:

Verifique o status do adaptador bluetooth do dispositivo:

# hciconfig
hci0: Type: UART
BD Address: 00:22:A5:B8:AD:65 ACL MTU: 1021:4 SCO MTU: 180:4
UP RUNNING PSCAN
RX bytes:8672 acl:98 sco:0 events:285 errors:0
TX bytes:3336 acl:102 sco:0 commands:89 errors:0

# hcitool dev
Devices:
hci0 00:22:A5:B8:AD:65

Conexões bluetooth ativas:

# hcitool con
Connections:
< ACL 00:1D:4F:A7:9A:49 handle 1 state 1 lm MASTER

Esses comandos devem ser digitados pelo adb. Obviamente você também quer fazer isso quando não tem nenhum computador por perto, para isso instale um emulador de terminal em seu dispositivo e digite os comandos diretamente pela linha de comando.

Conseguindo root no tablet android Genesis GT-7250

O Genesis GT-7250 é um tablet android usando a versão 2.3 (Gingerbread). Ao contrário da maioria dos tablets de marcas desconhecidas ou chineses sem marca, este possui acesso 3G sem a utilização de adaptador USB, pois possui slot para SIM card interno.

Pelo processador Qualcomm MSM7227 de modestos 800MHz eu diria que está mais para celular com tela de 7″ do que para tablet.

Como todo dispositivo android vem de fábrica sem acesso root. O root é o que permite maiores possibilidades de utilização de seus recursos internos (alteração de clock, acesso ao sistema de arquivos, acesso ao hardware, instalar arquivos no cartão SDHC externo…)

O root é conseguido geralmente através de utilitários criados por desenvolvedores espalhados pelo mundo (mas que parecem todos frequentar o xda-developers).

Alguns aplicativos são instalados diretamente no celular, como qualquer outra aplicação. O exemplo mais famoso desse tipo é o Z4root, porém a vulnerabilidade que ele explorava foi corrigida e dificilmente irá funcionar em um dispositivo que tenha menos de 2 anos.

Dos aplicativos utilizados no micro e que enviavam comandos ao dispositivo via cabo USB o mais famoso era o SuperOneClick, que está perdendo utilização nos dispositivos mais novos, lançados no mercado a partir de 2012. A vulnerabilidade que ele utilizava foi corrigida no final de 2011 e se o kernel for superior a 2.3.5 ele não consegue o root.

O kernel do GT-7250 é 2.3.6, compilado em março de 2012, o que me impossibilitava o root e a utilização do Link2SD, um utilitário que permite que aplicativos android sejam instalados em uma partição extra no cartão SDHC externo (de maneira melhor e mais eficiente do que a funcionalidade similar existente no Gingerbread, na minha opinião).

Então nossos amigos do xda-developers apareceram com uma solução, o Easy Root -Android 2.3.6 & ICS – CASUAL. Apesar de ser para dispositivos Motorola, funciona com o GT-7250.

Selecione a opção RootICSRAZR, ligue o tablet na USB e aperte o botão Do It! e pronto!

Como toda ferramenta que usa os comandos do adb, o GT-7250 deve ser reconhecido pelo adb. Se ele não aparece na listagem quando você usa o comando adb devices não perca tempo com o Easy Root. Primeiro resolva o problema com o adb.

Fiz uma postagem anterior explicando como resolver.

Fazendo o adb reconhecer seu dispositivo android

This post has been translated to english.

o adb (android debug bridge) é uma ferramenta desenvolvimento para android.

Geralmente para ativar basta conectar seu dispositivo android, ativar a depuração USB (USB debugging) e verificar com o comando “adb devices”, que deve retornar uma lista com o número serial dos dispositivos que estejam conectados.

Essa é a teoria. A prática é que só são reconhecidos de maneira automática dispositivos de fabricantes como HTC, Motorola, Samsung… se seu dispositivo é de algum fabricante obscuro ou um legítimo xing-ling, o resultado é parecido com esse:

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

Para que seu dispositivo seja reconhecido é necessário colocar o identificador de seu dispositivo no arquivo adb_usb.ini.

Como identificar o fabricante:

Conecte seu dispositivo na porta USB do seu micro (ative a depuração USB).

Linux: digite o comando lsusb e veja a lista de dispositivos


$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 002 Device 002: ID 8087:0020 Intel Corp. Integrated Rate Matching Hub
Bus 001 Device 003: ID 10ab:0816 USI Co., Ltd
Bus 002 Device 003: ID 04f2:b1da Chicony Electronics Co., Ltd
Bus 002 Device 004: ID d324:9018

O dispositivo android é o da última linha. O primeiro grupo de quatro dígitos após o ID é o VendorID, o código que precisamos

Esse dispositivo do exemplo é um tablet Genesis GT-7250. O fato de não haver uma descrição do fabricante ao se usar o lsusb é típico de produtos chineses feitos sem maiores cuidados. Praticamente se limitam a usar o projeto base do fabricante da CPU e chipset utilizados.

Windows: abra o Painel de Controle -> Sistema e Segurança -> Sistema -> Gerenciador de Dispositivos e veja as propriedades de um dispositivo identificado como Android Phone ou Android ADB Interface.

Clique com o botão direito sobre esse dispositivo e selecione Propriedades. Selecione a aba Detalhes e na caixa de seleção IDs de Hardware.

O valor a frente do texto USB\VID_ é o VendorID.

Uma maneira mais simpless é utilizar o aplicativo  USBView. Execute e conecte seu dispositivo ao computador. Observe o o valor da linha idVendor, é ele que você vai utilizar. Observe na figura abaixo que destaquei um caso em que aparece um triângulo amarelo na frente do nome de um dispositivo. Isso é um indicador que os drivers para seu dispositivo não foram instalados corretamente. Os drivers de Windows precisam ser instalados corretamente ou você nunca irá obter a conexão com o aparelho. Verifique se há um CD de instalação ou se no site do fabricante os drivers estão a disposição.

Captura de tela 2017-03-05 15.17.44

Como atualizar o arquivo:

Linux: no seu diretório home deve haver um diretório oculto com o nome .android, dentro desse diretório está o arquivo adb_usb.ini.

Atualize o arquivo com seu dispositivo com o comando

echo 0xd324 >> adb_usb.ini

Windows: na sua pasta pessoal deve haver uma pasta com o nome .android, dentro dessa pasta está o arquivo adb_usb.ini.

Abra esse arquivo com um editor sem formatação, como o notepad e adicione uma linha com o valor do VendorID

0xd324

Certifique-se que a depuração USB está ativa no seu dispositivo e confirme a identificação do seu dispositivo:

adb kill-server
* server not running *

adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
1234567890ABCDEF device

Caso essa pasta não exista, abra uma janela do prompt de comando (o Explorer não cria arquivos ou pastas cujo nome se iniciam com um ponto) e digite os seguintes comandos para criar a pasta e o arquivo:

cd /d %USERPROFILE%
md .android
cd .android
echo 0xd324 >> adb_usb.ini

Pronto! Agora você pode usar o adb e fazer coisas legais no seu android como desenvolvimento de aplicações ou coisas mais legais ainda como root.

Nas versões de android 4.x e superiores quando você digitar algum comando no adb irá aparecer uma janela de alerta na tela do dispositivo. Confirme tocando o OK e, se for um computador onde o dispositivo será sempre utilizado, marque a caixa “Sempre permitir deste computador” para que o alerta não seja acionado nas próximas vezes.

Screenshot_2017-04-23-18-46-27

Nos próximos posts:

– fazendo root no tablet Genesis GT7250 (por que vocês acham que eu descobri isso tudo sobre o adb?)

– conectando um teclado bluetooth no android

Matt's Entropy

... seeding /dev/random, one blog post at a time.

Maravilhoso Mundo Novo

De volta ao Paraíso

androideia

Idéias e Android, necessariamente não nessa ordem.

Another Airgun Blog

Idéias e Android, necessariamente não nessa ordem.

Armas de Pressão - Modificações e afins

Metade da graça em atirar está em fazer ajustes na arma.