Kategorie | Android

  

Kopiowanie plików poprzez MTP Linux ⇔ Android 4.0+

Opublikowano 25 grudnia 2012 przez Franek

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

Źródło.

  

13 Comments For This Post

  1. damek Says:

    czy MTP to nie przypadkiem wynalazek Microsoftu? więc – pytam się ja – why? a może to Apple?

  2. Franek Says:

    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.

  3. Colin Says:

    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.

  4. Rocky_Balboa Says:

    Bardzo lajtowy wpis, dzięki Franek :)

  5. uoiu Says:

    @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 :)

  6. A... Says:

    MTP Mega Turbo Porażka :/ chyba prędzej postawię serwer www i przegram pliki z komputera przez przeglądarkę niż tym czymś…

  7. burn your computer Says:

    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

  8. sako Says:

    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!

  9. Pawelo83pl Says:

    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 :-)

  10. makak Says:

    Cześć
    Zainstalowałem mtp i w dolphinie znalazłem telefon w sieć – urządzenia mtp
    Od strony komputera działa w obie strony

  11. makak Says:

    aa.. przepraszam, na debianie jessie to zrobiłem
    :)

  12. wojtek Says:

    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?

  13. Maciek Says:

    SUPER SUPER super zadziałało mi montowanie po wpisaniu komendy

Leave a Reply

Polityka komentarzy

     
     
Green Dog Says

MiniBlog