quarta-feira, 13 de novembro de 2013

Conexão USB - Android 4.x - mtpfs - Linux


Android 4.x - mtpfs - Linux

E num belo dia você tem em mãos um dipositivo Samsung com android, versão 4.x ou outra versão que utiliza o MTP e ... MTP? que treko é esse?

Tudo bem, la vaí: esse treko é o protocolo de transferência de mídia.
Os dispositivos como smartphones e tablets que utilizam android, também utilizam este protocolo.
Com o tempo ele passou a ser mais utilizado e portanto ficou mais complicado conectá-lo numa máquina linux via cabo USB.

Tanto em Windows como em MacOS, temos o Kies da Samsung para seus respectivos dispositivos e o windows acaba por reconhecer o dispositivo como uma câmera ou um pendrive.
No caso de sistemas Linux isso não ocorre.
Para o Linux teremos que utilizar um pacote que trata o MPT como um sistema de arquivo, o mtpfs. O pacote é o go-mtpfs.

Após várias pesquisas, tentativas e erros, até que o resultado não foi ruim.

Então vamos aos procedimentos básicos que funcionou comigo. Detalhe: não é necessário ter o aparelho "rooteado".
Foi testado num Linux Mint Nadia – 14. Talvez haja algumas pequenas diferenças entre as variações das distros baseadas em Debian ou Ubuntu, mas creio que sejam poucas.

Como estamos conectando um dispositivo que utiliza o sistema de montagem de discos do linux, é natural que o recurso utilizado seja com base em sistema de arquivos, partições e etc.
Vamos abrir o terminal e digitar os comandos abaixo, um por vez.

sudo add-apt-repository ppa:webupd8team/unstable
sudo apt-get update
sudo apt-get install go-mtpfs

Explicando:
o primeiro comando adiciona o repositorio ppa webupd8;
o segundo comando atualiza os repositórios;
o terceiro instala o pacote go-mtpfs


Caso esteja utilizando o ubuntu com unity, então devem complementar com o seguinte comando;

sudo apt-get install go-mtpfs-unity mtpfs

Este último faz com que tenha o ícone do android no dash do unity. No meu caso eu fiz tudo pelo terminal mesmo, uma vez que utilizei o LInux Mint e não o Ubuntu, sendo que para mim foi mais fácil.
Após todo esse trabalho exaustivo e várias linhas de comandos, vamos então conectar o dispositivo. Após a conexão ele mostrará que está no modo de USB de conexão.
Verifique se o MTP está ativo. O modo MTP é ativado por padrão.




De volta ao sistema, vamos novamente para o terminal. Como usuário comum, digite:

go-mtpfs /media/MyAdroid

Este comando irá montar o dispotivo conectado no diretório /media/MyAndroid que ele cria por padrão. Mantenha desta forma.

Abra o seu gerenciador de arquivo e localize o dispositivo montato em MyAdroid, provavelmente como Phone. Se ele tiver um cartão de memória será mostrado também, com o nome de Card.
Pronto, já é possível navegar entre os diretórios. Note que mesmo sendo partições ou "discos" diferentes, ele monta no mesmo ponto de montagem, o MyAndroid.
É uma característica do go-mtpfs que é diferente do sistema antigo de Mass Storage.
Mudanças e mais mudanças. Não me aprofundei no assunto. Talvez mais a frente.

Após navegar entre os diretórios e gerenciar seus arquivos, é hora de desmontar dispositivo.
Então no terminal (vai ter que utilizar sim, sem medo), utilizar os comandos como root.

umount /media/MyAndroid

Pode parecer complicado, mas na verdade é simples. Uma das coisas boas do software livre e opensource é que quando uma solução é encontrada, ela acaba por ficar mais simplificada e fácil com o decorrer do tempo.
Logo aparecerá um modo bem mais simples para isto, se é que já não existe enquanto está
lendo este post.

Fontes de referência:
http://www.mysolutions.it/mounting-your-mtp-androids-sd-card-on-ubuntu/
http://community.linuxmint.com/tutorial/view/1185
http://diadialinux.wordpress.com/2013/02/08/montar-android-4-0-no-ubuntu-usando-mtpfs-mtp/
http://www.webupd8.org/2012/12/how-to-mount-android-40-ubuntu-go-mtpfs.html