Como instalar arquivos ".bar"
Converter Apps Android para Playbook
Apps Android Convertidas

segunda-feira, 18 de junho de 2012

Convertendo Apps do Android para o Playbook (converter apk em bar)

Neste artigo falarei sobre a conversão de apps do Android(que estão sobre o formato apk) para o formato do Blackberry Playbook(formato bar). Este artigo é um pouco extenso mas extremamente útil. O processo é divido em três partes: preparação, conversão, assinatura. Vale salientar que muitas aplicações Android ainda não funcionam mesmo após convertidas, e não podem usar certos recursos como câmera(já disponível no OS 2.1 beta), bluetooth, wifi, etc.
Veja lista completa de limitações em: https://bdsc.webapps.blackberry.com/android/apisupport/


Requisitos:

Java instalado (pode encontrar milhares manuais de instalação para seu sistema na internet)
Android SDK Tools: Faça o download para seu respectivo sistema em: http://developer.android.com/sdk/index.html Seleciona "Other IDE", para baixar somente o SDK.
Playbook Command Line Tools: o mesmo utilizado para instalar arquivos .bar, faça o download:
https://bdsc.webapps.blackberry.com/android/downloads/fetch/CommandLineTools.zip
Chaves para Assinatura de Pacotes: Solicite as sua em:
https://www.blackberry.com/SignedKeys/codesigning.html   : Preencha o formulário, em PIN crie uma senha que será usada na assinatura da App convertida, marque a opção "for Playbook". Depois de enviado os dados você receberá a chave para assinatura(dois arquivos anexos) por Email em no máximo duas horas.

Preparação do Android SDK

Abra o Android SDK manager após instala-lo (ou extraí-lo se estiver no Linux), se for no Windows ele criou um atalho no menu iniciar, se for no linux, acesso a pasta "/android-sdk-linux/tools" e execute o aplicativo "android"(dê permissões de excutável com comando "chmod +x android" e depois execute com o comando "./android"). Uma vez aberta o SDK manager, ele vai atualizar a lista de opções dispónives para download. Depois de atualizar a lista marque as seguintes opções:
Pasta "Tools", opções "Android SDK Tools" e "Android SDK Plataform Tools"
Pasta "Android 2.3.3 (API 10)", opção "SDK Plataform"



Clieque em "install packages", aguarde a instalação e pronto. ja está configurado seu Android SDK. pode fecha-lo.

Extraia agora o Command Line Tools para uma pasta de sua preferência. acesse a pasta extraída "blackberry.tools.SDK/bin". Nela será onde você fará todo o trabalho, será necessário também mover os dois arquivos da Chave de Assinatura recebidos por Email para esta pasta. Abra aqui o Terminal (se no linux) ou o Command (se no windows, basta segurar shift e clicar com o botão direto do mouse, depois selecionar "Abrir janela de comando aqui").


Configurando Assinatura (Primeira Vez)

Essa é a parte mais complicada pois para se instalar arquivos .bar em um Playbook é necessário assina-las, e a configuração para criação do certificado é um pouco grande(pra não dizer exagerada). SÓ É NECESSÁRIO ESSES COMANDO NA PRIMEIRA VEZ QUE FOR ASSINAR UM APP CONVERTIDO.Para os usuários de linux a partir de agora lembrem sempre de antes de executar os comando darem permissão de execução(comando "chmod +x <comando>") e executar com o "./" seguido do comando (exemplo: comando apk2bar, execute digitando "./apk2bar"). Vamos aos comandos a serem executadas na mesma pasta blackberry.tools.SDK/bin:

#blackberry-signer -csksetup -cskpass SEUPINAQUI

Como é de se esperar, substitua o SEUPINAQUI pelo PIN(senha) cadastrado no formulário de requisição de chaves. Agora vai fazer um procedimento para cada arquivo recebido por E-mail, observe que ambos são arquivos .csj mas o nome muda, um começa com client-RDK e o outro com client-PBDT,o restante do nome é um codigo gerada para cada pedido de chave.

#blackberry-signer -register -csjpin SEUPINAQUI -cskpass SEUPINAQUI client-PBDT-CODIGOGERADO.csj

Mais uma vez substitua o SEUPINAQUI pela senha PIN e o CODIGOGERADO pelo codigo do seu arquivo client-PBDT(pode simplesmente copiar o nome do arquivo e substituir o final do comando).Agora novamente para o arquivo client-RDK*.csj:

#blackberry-signer -register -csjpin SEUPINAQUI -cskpass SEUPINAQUI client-RDK-CODIGOGERADO.csj

Mais uma vez substitua o SEUPINAQUI pela senha PIN e o CODIGOGERADO pelo codigo do seu arquivo client-RDK(pode simplesmente copiar o nome do arquivo e substituir o final do comando). Atente em ambos os comandos acima ha eventuais erros de conexão com o servidor da RIM, então caso apresente mensagem de erro, tentem novamente.

Agora vamos gerar o arquivo .p12 , que será usado para assinar as apps convertidas:

#blackberry-keytool -genkeypair -keystore QNX.p12 -storepass SEUPINAQUI -dname "cn=NOMEEMPRESAAQUI" -alias author

Substitua o SEUPINAQUI pela senha PIN, e NOMEEMPRESAAQUI por o nome da sua empresa ou coloque qualquer nome. Com isso será gerado o arquivo QNX.p12 que servirá para assinar os apps convertidos. Caso perca esse arquivo QNX.p12 vai ter que fazer tudo de novo, então é bom ter um backup dele.


Conversão

Por incrível que pareça essa é a parte mais fácil. Copie o .apk que deseja converter para a pasta blackberry.tools.SDK/bin, depois abra o Terminal ou a Janela de Comando na pasta e execute o comando abaixo:

#apk2bar <arquivo apk> <pasta do android sdk>

Exemplo:
Air Horn free.apk
Local do Android SDK: C:\program files\Android\android-sdk

#apk2bar "Air Horn free.apk" "C:\program files\Android\android-sdk"

Caso seja apresentado alguma mensagem de erro é indício que o apk não pode ser convertido. Qualquer dúvida pode colocar nos comentários. Se der tudo certo ele vai gerar o arquivo .bar com o mesmo nome de origem.

Assinatura

Apos a conversão e já estar configurado o arquivo QNX.p12 chegou o ultimo passo, a assinatura. Supondo que o arquivo apk era o Air Horn free.apk, foi gerado na conversão o arquivo Air Horn free.bar. Mova o arquivo .bar gerado para uma pasta dentro da pasta bin(pode criar você mesmo). No meu caso criei a pasta "bar" dentro da pasta "bin". Agora executo o comando abaixo:

#batchbar-signer <Pasta com arquivo .bar> QNX.p12 SEUPINAQUI

No meu caso do  Air Horn free.apk que esta dentro da pasta bar e minha senha era 12345:

#batchbar-signer bar\ QNX.p12 12345

Caso dê certo vai aparecer na a mesagem no resultado(além de outras informações)
[Air+Horn+free.apk.bar] Signed

Você pode inclusive colocar vários arquivos .bar dentro da pasta para assinatura de uma única vez.

Se tudo der certo o arquivo .bar vai estar pronto para ser instalado, então basta instalar pelos vários métodos disponíveis, como esse:
http://meuplaybook.blogspot.com.br/2012/05/playbook-app-manager-instale-e.html

Pode também acontecer de apresentar erro de conexão com o servidor. Nesse caso tente novamente. Outra possibilidade é de alguem ja ter Assinado o mesmo arquivo, então vai informar que o arquivo "previously signed" e não vai assinar o seu .bar. Nesse caso siga para o opção abaixo(ou procure na net, pois nesses caso geralmente vai achar em algum forum ou no Good E-Reader)


Re-assinar (Re-signe) (Caso o app já tenha sido assinado)

Instale no seu PC o notepad++, fazendo o download pela priemira opção abaixo:
http://notepad-plus-plus.org/download/

Apos instalado ele vai automaticamente abrir, então no programa clique no menu arquivo>abrir e procure pelo seu arquivo .bar, no meu exemplo Air Horn free.bar . Apos abri-lo vai ver no inicio do arquivo mais ou menos como esse:
Package-Author: MeuPlaybook
Package-Author-Id: testEBRaRkVPnpsReKdNs4eKTS4
Package-Name: com.alwaysonpc.android.vnc
Package-Id: testELxDSuWxUsp7Jx3UcZmFMF4
Package-Version: 1.0.15.0
Package-Version-Id: testEFQzi7kIEdIXDNYN9adxXAU
Package-Type: application
Package-Architecture: armle-v7

Application-Name: AlwaysOnPC
Application-Id: testEFh42gUFesBuzJgLgh1Daow
Application-Version: 1.0.15.0
Application-Version-Id: testEFQzi7kIEdIXDNYN9adxXAU


Agora altere somente o Package-Version e o Application-Version, aumentando um pouco a versão. Por exemplo a versão atual é 1.0.15.0, então tente alterar em ambos o número para 1.0.16.0. Clique no menu arquivo>salvar, depois feche e tente assinar novamente.

Caso ainda dê como resultado "previously signed", abra de novo o arquivo .bar e aumente ainda mais a versão até dar certo. Isso as vezes é necessário porque alguém já fez o que você esta tentado fazer(aumentar a versão). Geralmente funciona na primeira tentativa.




Bem pessoal isso é tudo, qualquer dúvida ou mensagem de erro postem nos comentários.

10 comentários:

  1. Olá. Qual a diferença entre converter por este processo e por aqueles conversores automáticos da net, onde vc informa o local que esta o .apk e automaticamente ele gera o app/jogo no .bar?

    ResponderExcluir
    Respostas
    1. Nenhuma diferença. A vantagem desse método é que não depende quase de internet, então não vai precisar upar o arquivo e depois baixar, além do site online poder ficar fora do ar de vez em quanto etc. Enfim, esse é mais um meio alternativo emergencial mesmo.

      Excluir
  2. darktemplar!!
    a parte de abrir o command é pelo vista!
    como faço para abrir pelo XP pq já tentei de varias maneias e não consegui??
    agradeço a ajuda

    ResponderExcluir
    Respostas
    1. Olha se não abre com shift+botão direito é simples.

      Clique no botão iniciar no windows, depois clique em "executar"

      Digite: CMD

      vai abrir a janela de comando, aí é só mudar para a pasta blackberry.tools.SDK/bin. Se ela tiver na raiz da unidade C:\ por exemplo basta digitar:

      cd C:\blackberry.tools.SDK\bin

      Pronto, dai em diante é só seguir o tutorial

      Excluir
  3. ahhaha... agora deu certo!!!
    mas tem ums problemas!
    apenas o jogo que foi usado como base o "Air Horn free.apk" que deu certo, os outros apareciam uma msg de "fechamento forçado!"
    Nesse caso só games androids 2.0 pega e/ou é por causa das limitações??
    se eu colocar a atualização 2.1 pegará normalmente?
    abração

    ResponderExcluir
    Respostas
    1. Jeymesson a maioria dos jogos do android não podem ser convertidos(em geral qualquer jogo 3D não pega). Até mesmo apps que usam códigos nativos do android(códigos sem base no dalvik, maquina java do android) como Instaggram, Skype, etc não funcionam no Playbook(pode instalar mas vai fechar na hora de abrir). O mesmo acontece até na versão OS 2.1 beta. Os apps/jogos precisam também poder rodar no Android 2.3.3, então apps exclusivos para HoneyComb(android 3.x) e Ice Cream Sandwich (android 4.x) não funcionarão no Playbook.

      Excluir
  4. Oi meu playbook é 2.0.1.358 li na internet que nesta versao do Playbook
    permiti que eu instale apk em convertelos em bar como devo proseguir
    qual versao do ddpb devo ter para isso obrigado.
    joker pirata@ hotmail.com

    ResponderExcluir
  5. Olá!

    Primeiramente, parabéns pelo blog.

    Estou com uma dificuldade: fiz todo o procedimento até o passo CONFIGURANDO ASSINATURA.

    Quando entro com o comando #blackberry-signer -csksetup -cskpass,
    a mensagem que prompt de comando do windows me envia é essa:

    '#blackberry-signer' não é reconhecido como um comando interno
    ou externo, um programa operável ou um arquivo em lotes.

    E se eu retiro o jogo da velha do início do comando, a mensagem que aparece é essa:

    'java' não é reconhecido como um comando interno
    ou externo, um programa operável ou um arquivo em lotes.

    O que poderá ter acontecido?

    ResponderExcluir
  6. por que apareçe força fechamento e não abre os jogos

    ResponderExcluir
    Respostas
    1. Porque a maioria de jogos nao pega convertidos mesmo, os que pegam são jogos bem simples e em 2d bem safadinho. A conversão funciona mais com aplicativos do que jogos e tem q ser feito para versão 2.3 pra baixo

      Excluir