Infra - Linux

Utilize seu iPad/iPhone/IPod Touch na plataforma GNU/Linux

Ao receber o iPad fiquei frustrado ao perceber que o iTune (software utilizado para transferência de dados com iPad e outros devices da APPLE) não está disponível para a versão Linux. Então não restou outra saída a não ser pesquisar as soluções alternativas no mundo open source.

por Alessandro de Oliveira Faria



Introdução

Ao receber o iPad fiquei frustrado ao perceber que o iTune (software utilizado para transferência de dados com iPad e outros devices da APPLE) não está disponível para a versão Linux. Então não restou outra saída a não ser pesquisar as soluções alternativas no mundo open source.

A seguir dicas para não precisar recorrer aos sistemas operacionais proprietários. Vale a pena mencionar que para o iPod Touch e iPhone podemos contar com o software Rhythmbox, gtkpod e Amarok (vide vídeo abaixo).


Sobre o iPad:

iPad é um dispositivo em formato tablet produzido pela Apple Inc. O aparelho foi anunciado em 27 de janeiro de 2010, em uma conferência para imprensa no Yerba Buena Center for the Arts em São Francisco.[1] Meses antes de seu anúncio, surgiram rumores do nome do aparelho: iSlate, iBook e iTablet, entre outros.

O iPad foi apresentado como um dispositivo situado a meio caminho entre um notebook e um smartphone. O dispositivo utiliza o mesmo sistema operacional do iPhone e é voltado para o público leigo, devido ao tipo de interface oferecido.

A recepção inicial do iPad foi bastante misturada, com muitos entusiastas ficando contra o aparelho devido ao que percebem como limitações e com outros tantos demonstrando grande empolgação com facilidade de interação que a interface demonstra.

As especificações técnicas incluem redes sem fio Wi-Fi 802.11n e Bluetooth 2.1, tela touch de 9,7 polegadas, acelerômetro e bússola. O chip foi identificado pela Apple como A4, de 1GHz. Seu peso é de 680 gramas e sua espessura é de 0,5 polegadas (1, 27cm). Bateria para 10 horas de vídeo e 1 mês de standby. Possui diferentes versões com espaços de 16, 32 e 64 GB.

Fonte: IPad - Wikipédia


Download dos pacotes

Requisitos de software:

A seguir os programas necessários para prosseguir neste tutorial e alguma dicas para instalação para as distribuições SUSE, Mandriva, Ubuntu e Fedora.

Fuse: http://fuse.sourceforge.net

FUSE ou Filesystem in Userspace. Ele é um projeto que permite o roteamento do pedidos do sistema de arquivos através do VFS (abstração do sistema de arquivos). Um bom exemplo sobre o Fuse é o GmailFS, que permite "montar" sua conta do Gmail, acessando-a como se fosse um HD externo.

libimobiledevice e iFUSE: http://www.libimobiledevice.org

É uma biblioteca com protocolo de comunicação para iPhone, iPod Touch e iPad sem dependência de biblioteca da Apple. O iFuse permite montar o seu iPad no seu sistema de arquivos.

Calibre: http://calibre-ebook.com/

Uma suíte completa para criar, manipular e publicar ePub (livro eletrônico), ou seja, conversor, leitor e editor de arquivos ePub.

Dicas de download:

Abaixo os links para download dos códigos fonte:
Mais informações em: http://www.libimobiledevice.org/

Download para as principais distros:


Mão na massa

Acredito que em breve o software Rhythmbox, gtkpod e Amarok serão 100% funcionais com iPad como são atualmente compatíveis com os telefone iPhone e iPod Touch. Veja o vídeo a seguir para entenderem onde quero chegar. Mas por enquanto vamos aos recursos disponíveis.


Conversão de vídeos: se você possui vídeos no padrão WMV, DIVX, XVID e outros, utilize a linha abaixo para torná-lo compatível com o formato de reprodução do iPad.

$ ffmpeg -i [NOME-ARQ] -s 640x480 -vcodec mpeg4 -b 2000k -acodec aac -ac 1 -ar 16000 -r 13 -ab 32000 -aspect 3:2 [NOME-ARQ-FINAL.mp4]

Transferindo fotos: utilize o utilitário iFuse para montar o iPad na pasta especificada do filesystem. Para tal operação, basta criar a pasta e executar o comando conforme o exemplo a seguir.

$ mkdir iPad
$ ifuse iPad


Verifique se a montagem ocorre com sucesso.

$ df
Sist. Arq.  1K-blocos      Usad Dispon.   Uso% Montado em
/dev/sda6   22705980  14327520   7224996  67% /
udev        2028528       684   2027844   1% /dev
/dev/sda3   65538604  36285228  29253376  56% /windows
ifuse       30443104   1333056  29110048   5% /home/cabelo/iPad

Se tudo estiver funcionando corretamente, copie as fotos para a pasta 100APPLE como no exemplo abaixo:

$ cp /home/cabelo/imagem/*.JPG iPad/DCIM/100APPLE/

ATENÇÃO: As imagens devem possuir obrigatoriamente o nome IMG_[NUMERO_SEQUENCIAL].JPG. Vejam a saída do comando ls logo a seguir.

$ ls iPad/DCIM/100APPLE/
IMG_0001.JPG
IMG_0004.JPG
IMG_0007.JPG
IMG_0011.JPG
IMG_0014.JPG
IMG_0017.JPG
IMG_0020.JPG
IMG_0023.JPG
IMG_0026.JPG
IMG_0002.JPG
IMG_0005.JPG
IMG_0008.JPG
IMG_0012.JPG
IMG_0015.JPG
IMG_0018.JPG
IMG_0021.JPG
IMG_0024.JPG
IMG_0003.JPG
IMG_0006.JPG
IMG_0009.JPG
IMG_0013.JPG
IMG_0016.JPG
IMG_0019.JPG
IMG_0022.JPG
IMG_0025.JPG

Comandos úteis

A seguir comandos úteis para utilizar na linha de comando. Função de backup, restore, listagem do dispositivo conectado, e até obter screenshot é possível na linha de comando.

Backup e restore:

$ /usr/bin/idevicebackup backup /home/cabelo/iPad/
$ /usr/bin/idevicebackup restore /home/cabelo/iPad/


Gerando screenshots:

$ /usr/bin/idevicescreenshot
Screenshot saved to screenshot-2010-06-28-17-21-24.tiff

Exibindo log de operações:

$ /usr/bin/idevicesyslog
=====================
ASL is here to serve you
>
> Jun 28 14:24:00 unknown Stanza[2683] <Warning>: Stanza exiting cleanly

Listando o device conectado:

$ /usr/bin/idevice_id -l
1f0970a04333c665050d608aef364d1ed1c03636

Informações sobre o device:

$ /usr/bin/ideviceinfo
ActivationPublicKey: LS0tLw1CRUdJwiBeU0rgUFVWTEl
ActivationState: Activated
ActivationStateAcknowledged: true
BluetoothAddress: e8:03:83:90:21:e2
BuildVersion: 7B367
CPUArchitecture: armv7
DeviceCertificate: LS0tLS1CRUdJTiBDIO
DeviceClass: iPad
DeviceColor: unknown
DeviceName: iPad de Ricardo Alexandre Lemos Valverde
DevicePublicKey: AaS0tLS1CRUdJTiBSU0EgUFV
DieID: 3747037828049680404
FirmwareVersion: iBoot-817.28
HardwareModel: K48AP
HostAttached: true
MLBSerialNumber: J60152510G9YG
ModelNumber: MB293
PasswordProtected: false
ProductType: iPad1,1
ProductVersion: 3.2
ProductionSOC: true
ProtocolVersion: 2
RegionInfo: LL/A
SBLockdownEverRegisteredKey: false
SDIOManufacturerTuple:
IOSDIOManufacturerID: 720
IOSDIOProductID: 17193
SDIOProductInfo: P=K48 m=u80
SIMStatus: kCTSIMSupportSIMStatusReady
SerialNumber: V5016EVDZ39
SoftwareBehavior: EQAAAAAAAAAQAAAAABBBBB==
SoftwareBundleVersion:
SomebodySetTimeZone: true
SupportedDeviceFamilies[2]:
0: 1
1: 2
TimeIntervalSince1970: 1277742526
TimeZone: America/Sao_Paulo
TimeZoneOffsetFromUTC: -10800.000000
TrustedHostAttached: true
UniqueChipID: 223922014622
UniqueDeviceID: 1f0972a04222c665050d608aef364d1ed2c23611
Uses24HourClock: false
WiFiAddress: e8:06:82:90:21:e2
iTunesHasConnected: true

Criando a sua biblioteca ePUB (servidor de conteúdo)

Para instalar livros sem precisar da App Store, a seguir os procedimentos para montar o seu próprio servidor de livros, inclusive criados ou editados por você. Em primeiro lugar instale o software Calibre (lembra dele?). A instalação passo-a-passo encontramos no artigo publicado aqui no Linha de Código: ePub - O MP3 dos livros

Com o programa Calibre em execução, adicione e/ou selecione os livros ou gibis que serão enviados para o iPad ou iPhone e logo em seguida clique no botão preferências. No formulário preferências, selecione o item Servidor de Conteúdo, define a porta de comunicação, login, senha e clique no botão "Iniciar Servidor".





Agora entre no ícone APP Store no iPad, selecione e instale o programa Stanza. Após a instalação, execute-o e clique no ícone "Get Books" conforme a ilustração a seguir.



Agora, na aba "Share", clique no ícone "+" para adicionar um servidor de conteúdo.



Preencha os campos Name e URL com um nome para o seu servidor de conteúdo, na URL o IP seguido da porta seleciona e configurada anteriormente no software calibre.



Se tudo estiver funcionando corretamente, teremos na lista de "Sources Books" do novo servidor cadastrado. Para conectar, clique no servidor recém cadastrado.



Informe no formulário "Secure Catalog" o login e senha definida nos parâmetros do servidor de conteúdo no software calibre.



Após a autenticação, visualizaremos a lista dos livros e gibis disponíveis. Selecione o documento desejado, clique em Download e pronto!





Opções como iBook só funcionará com o iTune no Mac e Linux (por enquanto). Pretendo desenvolver um aplicativo inserir mídias no iPad na linha de comando, pois as mídias inseridas no iPad são registro inclusos em bancos SQLite3. Para inserir mídias MP3 ou MP4 foi preciso utilizar os comando insert manualmente. A seguir uma breve explicação.





Entrando na pasta iTunes Library.itlp, encontramos diversos bancos, entre eles o Locations.itdb com as tabelas base_location (path da localização da mídia) e location (as mídias na integra).

$ cd IPAD/iTunes_Control/iTunes/iTunes\ Library.itlp/
$ sqlite3 Locations.itdb

sqlite> .table
base_location location
sqlite>

Abaixo a estrutura da tabela location e base_location:

sqlite> .schema location
CREATE TABLE location (
item_pid INTEGER NOT NULL,
sub_id INTEGER NOT NULL DEFAULT 0,
base_location_id INTEGER DEFAULT 0,
location_type INTEGER,
location TEXT,
extension INTEGER,
kind_id INTEGER DEFAULT 0,
date_created INTEGER DEFAULT 0,
file_size INTEGER DEFAULT 0,
file_creator INTEGER,
file_type INTEGER,
num_dir_levels_file INTEGER,
num_dir_levels_lib INTEGER,
PRIMARY KEY (item_pid,sub_id));


sqlite> .schema base_location
CREATE TABLE base_location (id INTEGER NOT NULL, path TEXT, PRIMARY KEY (id));


O iTunes é todo baseado nestas tabelas, reparem que mídias mp3, vídeo mp4 e livros são incluso no aparelho com um simples comando insert.

sqlite> select * from location;
4610245287509869689|0|1|1179208773|F36/JJHG.mp3|1297101600|1|298737443|4473555||||
-6283167265674541040|0|1|1179208773|F45/IJDM.mp3|1297101600|1|298737443|4063119||||
-5642726876562733935|0|1|1179208773|F41/IIAE.mp4|1297101856|2|298952628|21454398||||

sqlite> select * from base_location;
1|iTunes_Control/Music
4|Podcasts

Com estas dicas é possível tornar o seu iPad mais independente... Como sempre menciono: Colaborar atrai amigos, competir atrai inimigos...



Sobre o autor: http://www.netitec.com.br/alessandro
Alessandro de Oliveira Faria

Alessandro de Oliveira Faria - Sócio-proprietário da empresa NETi TECNOLOGIA fundada em Junho de 1996 (http://www.netitec.com.br), empresa especializada em desenvolvimento de software e soluções biométricas, Consultor Biométrico na tecnologia de reconhecimento facial, atuando na área de tecnologia desde 1986 assim propiciando ao mercado soluções em software nas mais diversas linguagens e plataforma, levando o Linux a sério desde 1998 com desenvolvimento de soluções open-source, membro colaborador da comunidade Viva O Linux, mantenedor da biblioteca open-source de vídeo captura entre outros projetos.