Media Transfer Protocol - MTP
Published on October 16, 2015.
Vivíamos muito bem utilizando pendrives, HD externos, … como se fossem
uma unidade de armazenamento qualquer e portanto só precisávamos dos
comandos dmesg, para descobrir o endereço do dispositivo, e mount,
para montar o dispositivo. Infelizmente smartphones com memória
interna são acessíveis apenas através do Media Transfer Protocol (MTP).
Instalando
No Debian :
$ sudo apt-get install libmtp-common
$ sudo apt-get install mtp-tools
Encontrando dispositivo
Utilize mtp-detect para verificar se possui algum dispositivo
conectado. :
$ mtp-detect
libmtp version: 1.1.9
Listing raw device(s)
Device 0 (VID=2717 and PID=ff60) is UNKNOWN.
Se você obter :
libmtp version: 1.1.9
Listing raw device(s)
No raw devices found.
tente:
Talvez você precise editar
/lib/udev/rules.d/69-libmtp.rules. Por exemplo :# Xiaomi Redmi 2 (MTP) ATTR{idVendor}=="2717", ATTR{idProduct}=="ff60", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" # Xiaomi Redmi 2 Pro (MTP) ATTR{idVendor}=="2717", ATTR{idProduct}=="ff", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1" # Xiaomi Redmi 2 (MTP+ADB) ATTR{idVendor}=="2717", ATTR{idProduct}=="ff68", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"Se você editar
/lib/udev/rules.d/69-libmtp.rulesvocê precisará :$ sudo service udev restartEditar
~/.android/adb_usb.ini. Por exemplo :# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT. # USE 'android update adb' TO GENERATE. # 1 USB VENDOR ID PER LINE. 0x2717
Após qualquer uma das tentativas anteriores, desconecte o cabo USB e reconecte-o novamente.
Navegando no sistema de arquivos e outras operações
Utilize mtp-folders para listar diretórios. Por exemplo :
$ mtp-folders
Attempting to connect device(s)
Device 0 (VID=2717 and PID=ff60) is UNKNOWN.
mtp-folders: Successfully connected
Android device detected, assigning default bug flags
Friendly name: (NULL)
Storage: Internal storage
1 Music
2 Podcasts
3 Ringtones
4 Alarms
5 Notifications
6 Pictures
7 Movies
8 Download
9 DCIM
31 Screenshots
10 Android
11 data
12 com.miui.systemAdSolution
13 cache
14 com.android.email
15 files
16 Ringtones
17 com.android.deskclock
18 files
38 com.touchtype.swiftkey
39 files
40 mr_IN
41 bn_IN
42 id_ID
43 ms_MY
44 en_GB
45 hg_IN
46 ur_PK
47 hi_IN
48 ta_IN
49 te_IN
50 en_US
51 com.google.android.googlequicksearchbox
52 files
53 pending_blobs
54 com.miui.gallery
55 cache
19 MIUI
20 backup
21 AllBackup
22 debug_log
23 Mms
24 com.miui.cloudservice
OK.
Utilize mtp-files para obter uma lista de todos os arquivos.
Utilize mtp-filetree para obter os arquivos como uma árvore.
Utilize mtp-getfile para obter um arquivo. Você pode passar tando o
File ID como o endereço do arquivo.
Utilize mtp-sendfile para enviar um arquivo. Você precisa passar o
arquivo a ser enviado e o local de destino dele.
Utilize mtp-delfile para remover um arquivo. Você pode passar tanto o
File ID como o endereço do arquivo.
Montando o dispositivo
Requisito
Abra o arquivo /etc/fuse.conf e descomente a linha contendo
user_allow_other.
Também é possível montar o dispositivo utilizando:
$ mtpfs -o allow_other ~/mnt
Para desmontar o dispositivo utilize:
$ fusermount -u ~/mnt
Referências
Tags: