Dotychczas kopiowałem pliki między Androidem a swoim biurkowym systemem za pomocą SFTP (SSH File Transfer Protocol). Rozwiązanie to jest dość wygodne, lecz nie jest pozbawione wad, główną i w sumie jedyną wadą z jaką się borykałem, to szybkość transferu.
Szybkość transferu na poziomie ~1MB/s była dla mnie co najmniej niezadowalająca, dlatego w wolnej chwili zacząłem zastanawiać się jak zamontować urządzenie z Androidem które podłączone jest kabelkiem USB do komputera. Wbrew pozorom nie było to dla mnie zadanie łatwe do wykonania, ponieważ Android do transferu plików wykorzystuje MTP (Media Transfer Protocol). W repozytoriach odnalazłem pakiet MTPfs, który to pozwala na zapis i odczyt w systemie plików poprzez FUSE W MTP. Za jego pomocą nie udało mi się jednak uzyskać dostępu do plików na urządzeniu z Androidem 4.2.1.
Zniesmaczony zaistniałą sytuacją (znowu coś na Linuxie mi nie działa ;-)), skontaktowałem się w tej sprawie z wujkiem Google, gdzie znalazłem rozwiązanie którym teraz podzielę się.
Rozwiązanie to jest bardzo proste, ponieważ nie wymaga żadnej dodatkowej konfiguracji:
1. Instalacja niezbędnych zależności:
aptitude install golang fuse git-core libmtp-dev libfuse-dev
2. Dodanie użytkownika do grupy fuse:
adduser $USER fuse
3. Pobieranie binarki go-mtpfs i przeniesienie jej do /usr/bin:
mkdir /tmp/go
GOPATH=/tmp/go go get github.com/hanwen/go-mtpfs
mv /tmp/go/bin/go-mtpfs /usr/bin/
3.1 Na Ubuntu w wersji 12.04, 12.10 lub 13.04 można posłużyć się repozytorium które przygotował Andrew z webupd8.org:
sudo add-apt-repository ppa:webupd8team/unstable
sudo apt-get update
sudo apt-get install go-mtpfs
4. Utworzenie katalogu w którym zamontowany będzie Android:
mkdir ~/Android
5. Po wykonaniu wyżej wymienionych czynności można już zamontować Androida:
go-mtpfs ~/Android &
6. Po zakończeniu pracy oczywiście urządzenie należy odmontować:
fusermount -u ~/Android
7. Użytkownicy Ubuntu mogą również zainstalować odpowiedni Launcher dla Unity, pozwoli on na montowanie i odmontowanie urządzenia z Androidem z poziomu GUI. Należy mieć dodane repo webupd8.org o którym pisałem wyżej:
sudo apt-get install go-mtpfs-unity
Sponsor artykułu: naprawaagd-wroclaw.pl
26 grudnia, 2012 at 10:30
czy MTP to nie przypadkiem wynalazek Microsoftu? więc – pytam się ja – why? a może to Apple?
26 grudnia, 2012 at 12:51
Tak, Microsoft chyba wymyślił MTP, jest on częścią Windows Media. Protokół ten jest powszechnie stosowany w odtwarzaczach mp3 etc. Nie jest tak źle z tym MTP, jest on zgodny z PTP (protokół do przesyłania zdjęć z aparatu), udostępnili też MTP Porting Kit.
26 grudnia, 2012 at 16:50
MTP początkowo był rozszerzeniem Microsoftu, ale w 2008 r. stał się standardem.
Android nie miał innej możliwości, bo zwykły interfejs mass storage zapewnia tylko blokowy dostęp do urządzenia, czyli podczas połączenia z komputerem nie byłoby możliwe korzystanie z telefonu, poza tym Windows musiałby obsługiwać yaffs lub ext4 (w zależności od wersji Androida) lub Android przejść na opatentowany i mało funkcjonalny FAT32.
26 grudnia, 2012 at 13:49
Bardzo lajtowy wpis, dzięki Franek :)
27 grudnia, 2012 at 14:13
@Colin: Zawsze można było zakombinować z patentem z Windows Mobile, czyli USB Ethernet. Po nim można było wystawić Sambę albo serwer FTP :)
5 lipca, 2013 at 19:29
MTP Mega Turbo Porażka :/ chyba prędzej postawię serwer www i przegram pliki z komputera przez przeglądarkę niż tym czymś…
17 lipca, 2013 at 15:22
ni cholery z tego nic nie rozumiem:/ jest gdzieś wersja dla nie informatyków tylko laików komputerowych? coś w stylu w ubuntu wchodzisz tu i tu wpisujesz to i to….w telefonie wchodzisz tu i tu i wpisujesz to i to.Nic mi nie mówi :". Pobieranie binarki go-mtpfs i przeniesienie jej do /usr/bin:" etc.
z góry dziękuję za pomoc.pozdrawiam
20 sierpnia, 2013 at 1:32
Witam! Na Debianie 7 zadziałało po długich poszukiwaniach gdy odpaliłem z parametrem:
#go-mtpfs -allow-other=true ~/Android
ponieważ domyślnie opcja jest ustawiona na false i miałem dostęp do plików tylko z poziomu roota, poza tym wpis był baardzo pomocny, dziękuję i pozdrawiam!
13 października, 2013 at 17:31
Cześć dzięki za wpis niestety pomógł częściowo…
Widzę pliki w telefonie ale nie jestem w stanie ich skopiować na dysk. Proszę o pomoc :-)
1 czerwca, 2014 at 22:13
Cześć
Zainstalowałem mtp i w dolphinie znalazłem telefon w sieć – urządzenia mtp
Od strony komputera działa w obie strony
1 czerwca, 2014 at 22:14
aa.. przepraszam, na debianie jessie to zrobiłem
:)
27 kwietnia, 2016 at 14:30
niestety jak wpisuje tą linijkę : GOPATH=/tmp/go go get github.com/hanwen/go-mtpfs to dostaje w terminalu taka odpowiedz – go: command not found
co jest z tym nie tak?
14 kwietnia, 2019 at 20:28
SUPER SUPER super zadziałało mi montowanie po wpisaniu komendy