Autor Tópico: Acesso Android usando MTP Media Transfer Protocol no Ubuntu  (Lida 10629 vezes)

Offline druidaobelix

  • Usuário Ubuntu
  • *
  • Mensagens: 5.552
    • Ver perfil
Acesso Android usando MTP Media Transfer Protocol no Ubuntu
« Online: 08 de Setembro de 2017, 22:03 »
Media Transfer Protocol (MTP) é um protocolo de comunicação que permite acessar e transferir arquivos entre dispositivos móveis com sistema operacional Android, especialmente smartphones e tablets, e o computador com Ubuntu instalado.

O MTP mode veio substituir, a partir da versão jellybean 4.1 (9/julho/2012) do Android, o método conhecido como USM Mode (USB Mass Storage), por razões de segurança, operacionalidade e ainda por questões vinculadas ao DRM - Digital Rights Management.

O que aqui está abordado parte da ideia de, no Ubuntu, usar o MTP Media Transfer Protocol em celular do tipo smartphone e tablets com sistema operacional Android para estabelecer a conexão, usando um cabo do tipo USB.


I) Instalando os pacotes necessários

Código: [Selecionar]
sudo apt install go-mtpfs mtpfs mtp-tools
Também é necessária a biblioteca libmtp, porém no específico caso do Ubuntu padrão (=Unity) ela existe na forma de libmtp9 e quando faz as instalações acima ela também se instala por dependência, ou seja, não precisa instalar mais nada, muito possivelmente também com os demais "sabores" da família Ubuntu, porém concretamente não foi testado e mais especialmente se a distribuição for uma do tipo like-Ubuntu (como o Mint, por exemplo), então é bom conferir mesmo se está realmente também instalada tal biblioteca.

Nos demais sabores e distribuições like-Ubuntu, confira com esse comando se a biblioteca se encontra instalada:

Código: [Selecionar]
apt-cache policy libmtp9

II) Habilitando MTP no Smartphone

Agora conecte o smartphone, que precisa estar desbloqueado para que tudo isso funcione.

Verifique numa janela de terminal se o smartphone está sendo identificado:

Código: [Selecionar]
lsusb
O dispositivo deverá estar aparecendo na lista obtida pelo lsusb, algo assim:

Citar
Bus 002 Device 002: ID 1bbb:af2a T & A Mobile Phones

Então habilite no smartphone o gerenciamento de USB, o Transfer File (MTP).

Note que dependendo da marca/modelo de smartphone essa nomenclatura pode variar.
Geralmente quando se pluga o celular usando um cabo numa porta usb do computador, no celular irá aparecer aquele ícone padrão de conexão USB, então se clicar sobre o ícone deverá ser possível acessar o gerenciamento de USB e essa opção deverá estar lá.


III) Detectando o Smartphone e identificando o hardware

Uma vez habilitado o protocolo MTP no smartphone, então agora execute:

Código: [Selecionar]
mtp-detect
Localize logo nas primeiras linhas da saída obtida (que é muito longa) algo semelhante aos exemplos abaixo, evidentemente os dados concretos serão outros:

Citar
Listing raw device(s)
Device 0 (VID=1bbb and PID=af2a) is a Alcatel OneTouch Idol 3 small (MTP).
   Found 1 device(s):
   Alcatel: OneTouch Idol 3 small (MTP) (1bbb:af2a) @ bus 2, dev 2
Attempting to connect device(s)


Listing raw device(s)
Device 0 (VID=22b8 and PID=41da) is a Motorola DROID2 (ID1).
   Found 1 device(s):
   Motorola: DROID2 (ID1) (22b8:41da) @ bus 2, dev 2
Attempting to connect device(s)


Listing raw device(s)
Device 0 (VID=04e8 and PID=6860) is a Samsung Galaxy S II (ID1).
   Found 1 device(s):
   Samsung: GALAXY (ID1) (04e8:6860) @ bus 3, dev 2
Attempting to connect device(s)

Das informações acima importam VID (Vendor ID) e PID (Product ID) que estão em negrito, as quais servirão para configurar.

IV) Criando um regra de identificação no udev

Crie um arquivo de regra de identificação para o udev fazendo:

Código: [Selecionar]
sudo gedit /etc/udev/rules.d/51-android.rules
O arquivo evidentemente irá abrir em branco, vez que antes não existia.

Use os dados VID e PID obtidos no item anterior, adicionando ao arquivo a seguinte linha, com os dados concretos obtidos a partir do seu específico smartphone:

Citar
#Alcatel OneTouch Idol 3 (MTP) (1bbb:af2a)
SUBSYSTEM=="usb", ATTR{idVendor}=="1bbb", ATTR{idProduct}=="af2a", MODE="0666"

#Motorola DROID2 (ID1) (22b8:41da)
SUBSYSTEM=="usb", ATTR{idVendor}=="22b8", ATTR{idProduct}=="41da", MODE="0666"

A primeira linha, aquela que começa com o símbolo # (tralha, jogo da velha) é apenas uma identificação para facilitar a visualização, coloque ali uma descrição que lhe seja melhor, principalmente no caso de existirem vários dispositivos no sistema.

Salvar e sair

V) Reiniciando o serviço

Reinicie o serviço fazendo:

Código: [Selecionar]
sudo service udev restart

VI) Complementos

Os arquivos armazenados no Android estarão montados em:

ls /run/user/999/gvfs

no que aparecerá algo semelhante à:

mtp:host=%5Busb%3A002%2C046%5D

Uma entrada relativa ao smartphone montada aparecerá também no Nautilus, devendo os arquivos serem acessados por lá, embora evidentemente também possam ser acessados por linha de comando através de uma janela do terminal.

Também funciona com Windows Phone (WP), aliás o MTP é nativo da Microsoft, porém pela falta de dispositivo com esse sistema operacional, não foi nele testado.



                                                                                                                                                                                     #5000

« Última modificação: 08 de Setembro de 2017, 23:34 por druidaobelix »
www.arredondar.org.br
Vencedor Desafio de Impacto Social Google 2016!
Você também pode participar e fazer a diferença.