Czy urządzenia obsługujące MTP współpracują z Ubuntu?


69

Od czasu przechowywania Ubuntu 13.04 dostęp do urządzeń zewnętrznych za pośrednictwem MTP powinien działać od razu po wyjęciu z pudełka za pośrednictwem modułu GVFS-MTP.

Chociaż to pytanie dotyczy Galaxy Nexus, obsługiwane są również inne urządzenia z Androidem, a także telefony z systemem Windows i odtwarzacze multimedialne z obsługą MTP .

Aby uzyskać informacje na temat rozwiązywania problemów, zobacz tę odpowiedź .


Mam dość problemów z przesyłaniem plików w trybie MTP w Galaxy Nexus. Używam 64-bitowego Kubuntu 11.10 i oto co zrobiłem i wyniki, które otrzymuję:

  1. Dodano regułę dla urządzenia w /etc/udev/rules.d/51-android.rules. Reguła jest następująca i działa dla adb:

    SUBSYSTEMS=="usb", ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6860", MODE="0666", OWNER="leob" #Galaxy Nexus
    
  2. Zrestartowano udev(i na wszelki wypadek komputer).

Adb działa i wszystkie metody odczytu z urządzenia za pośrednictwem MTP wydają się działać (próbowałem zamontować z mtpfs, gmtp i bezpośrednio użyć pakietu mtp-tools). Kiedy próbuję pisać na urządzeniu, nic, co próbowałem, działa.

Na przykład uruchomienie mtp-newfolder test_dir 0 0daje następujące dane wyjściowe:

libmtp version: 1.1.0
Device 0 (VID=04e8 and PID=6860) is a Samsung GT-P7510/Galaxy Tab 10.1.
Folder creation failed.
ERROR: Could not close session!

Jeśli uruchomię się mtp-folderspo uszkodzonym folderze mtp-newfolder bez ponownego podłączania urządzenia, otrzymam następujące dane wyjściowe:

Attempting to connect device(s)
Device 0 (VID=04e8 and PID=6860) is a Samsung GT-P7510/Galaxy Tab 10.1.
PTP_ERROR_IO: failed to open session, trying again after resetting USB interface
LIBMTP libusb: Attempt to reset device
mtp-folders: Successfully connected
Friendly name: (NULL)
Error 1: Get Storage information failed.
Error 2: PTP Layer error 02fe: get_all_metadata_fast(): could not get proplist of all    objects.
Error 2: (Look this up in ptp.h for an explanation.)
Error 2: PTP Layer error 02fe: get_handles_recursively(): could not get object handles.
Error 2: (Look this up in ptp.h for an explanation.)
LIBMTP_Get_Storage()
: Resource temporarily unavailable
OK.

Towarzyszy im w dmesg:

[ 1000.912082] usb 2-4: reset high speed USB device number 7 using ehci_hcd
[ 1001.045877] usb 2-4: usbfs: process 3166 (mtp-folders) did not claim interface 0 before use

Czy ktoś ma pojęcie o tym, co robić?

EDYTOWAĆ:

Próbowałem także w trybie PTP. Znów czytanie działa dobrze, ale nie mogę nic zapisać na urządzeniu.


Nie sądzę, że to Samsung ... i myślę, że to Android. Moje urządzenie o strukturze plastra miodu jest dokładnie tym samym sposobem, w którym musisz używać tylko MTP. Myślę, że tak właśnie będą wyglądały wszystkie urządzenia z Androidem po wersji 2.3.

Odpowiedzi:


37

Od Ubuntu 13.04 dostęp do pamięci masowej urządzeń zewnętrznych przez MTP działa od razu po wyjęciu z pudełka za pośrednictwem modułu GVFS-MTP.

Powiązane pytanie: Czy są jakieś plany poprawy obsługi protokołu mtp w przyszłych wersjach systemu Ubuntu?

Aby uzyskać informacje na temat rozwiązywania problemów, zobacz tę odpowiedź .


Dla mnie był to problem z brakiem najnowszych libmtpplików w moim systemie. Naprawiłem więc problem i napisałem ten artykuł, aby pomóc innym .

Podsumowanie linku: Wystąpił błąd w libmtppakiecie ze starszymi wersjami Ubuntu. Ten błąd został już rozwiązany w najnowszej źródła o libmtp.


1
Wydaje się, że problem został rozwiązany w pakietach dla Ubuntu 12.04, więc można ich użyć, jeśli masz dość odwagi, aby to zrobić. Wziąłem je z launchpad.net/ubuntu/+source/libmtp/1.1.1-1 i stworzyłem pakiety dla systemu (i to samo dla gmtp)
Tatu Lahtela,

@Shannon. Dzięki. To najlepsze rozwiązanie. Szkoda, że ​​nie znalazłem go pierwszy.
MountainX

2
rhythmbox nadal zawiesza się i wyświetla błędy (LIBMTP_Send_Representative_Sample (): nie można uzyskać informacji o obiekcie.) podczas próby uzyskania dostępu do nexusa, a nautilus daje: Nie można zamontować Galaxy Nexus; Błąd inicjalizacji kamery: -60: Nie można zablokować urządzenia. Poo.
waspinator

Byłoby miło zaktualizować instrukcje, aby uzyskać najnowszy mtp, a nie 1.1.1
Kostiantyn Rybnikov

21

Czy próbowałeś sugestii Bilala Akhtara w omgubuntu ?

Podłączanie telefonu lub tabletu z systemem Android do Ubuntu za pomocą MTPFS

  1. Ustawiać

    Najpierw zainstaluj niezbędne narzędzia za pomocą sudo apt-get install mtp-tools mtpfs

    Podłącz Galaxy Nexus do komputera. W telefonie otwórz szufladę powiadomień i kliknij „Typ połączenia USB”. Upewnij się, że wybrano MTP.

    obraz przedstawiający ustawienia połączenia USB systemu Android

    Następnie uruchom następujące polecenia:

    mtp-detect | grep idVendor
    mtp-detect | grep idProduct
    

    Otrzymasz takie wyjście: wprowadź opis zdjęcia tutaj

    Teraz uruchom następujące polecenia:

    gksu gedit /etc/udev/rules.d/51-android.rules
    

    Powinno się otworzyć okno Gedit. Wpisz w to ten tekst, wszystko w jednym wierszu :

    SUBSYSTEM=="usb", ATTR{idVendor}=="VENDORID", ATTR{idProduct}=="PRODUCTID", MODE="0666"
    

    Zamień VENDORIDna idVendorwcześniej zanotowany. Podobnie zamień PRODUCTIDna idProductzanotowany. W moim przypadku były 04e8i 685codpowiednio, ale mogą one być różne dla Ciebie.

    Zapisz i zamknij plik. Następnie odłącz telefon i uruchom następujące polecenia:

    sudo service udev restart
    sudo mkdir /media/GalaxyNexus
    sudo chmod a+rwx /media/GalaxyNexus
    sudo adduser $USER fuse
    

    $USERjest domyślną zmienną powłoki i powinien to być użytkownik, którego chcesz dodać (zazwyczaj sam). Teraz uruchom to polecenie:

    gksu gedit /etc/fuse.conf
    

    W oknie Gedit usuń #na początku ostatniego wiersza (ten, który zaczyna się od #user_allow_other) w następujący sposób:

    wprowadź opis zdjęcia tutaj

    Jesteś prawie gotowy! Teraz uruchom ponownie komputer, a następnie uruchom następujące trzy polecenia:

    echo "alias android-connect=\"mtpfs -o allow_other /media/GalaxyNexus\"" >> ~/.bashrc
    echo "alias android-disconnect=\"fusermount -u /media/GalaxyNexus\"" >> ~/.bashrc
    source ~/.bashrc
    
  2. Stosowanie

    Podłącz telefon, upewnij się, że telefon korzysta z MTP i uruchom android-connect.

    Voila! Teraz możesz przeglądać zawartość swojego telefonu z Androidem za pomocą Nautilus. Po prostu uruchom menedżera plików, a następnie na pasku bocznym kliknij GalaxyNexus, aby przeglądać zawartość telefonu tak, jak w przypadku pamięci USB. Możesz także dodawać, usuwać i modyfikować pliki tak jak normalny system plików.

    zrzut ekranu nautilusa wyświetlającego zawartość telefonu

    Aby bezpiecznie usunąć telefon, po prostu uruchom android-disconnect.

  3. Wniosek

    Od teraz wystarczy uruchomić, android-connectaby zamontować telefon, a następnie android-disconnectbezpiecznie go usunąć. Wszystko inne powinno być obsługiwane automatycznie. Próbowałem wielu sposobów, aby montowanie i odmontowywanie odbywało się automatycznie po podłączeniu kabla, ale było to najlepsze rozwiązanie, jakie mogłem wymyślić.

    Te dwa polecenia nie będą wymagały uprawnień roota do uruchomienia. Wszyscy użytkownicy, którzy są członkami grupy użytkowników bezpieczników, powinni mieć możliwość uruchamiania tych poleceń bez dostępu użytkownika root.

    Otóż ​​to! Pomyślnie podłączyłeś telefon Ice Cream Sandwich do komputera Ubuntu. Proces ten może być długi dla początkującego, ale jestem pewien, że ktoś przyjdzie i stworzy GUI dla tego wszystkiego, aby wszystko przebiegło gładko. :)


Tak, już wypróbowałem większość sposobów korzystania z narzędzi mtpfs. Jak się dowiedział Shannon, libmtp był prawdopodobnie błędem.
Leo

Działa, ale mam kilka pytań. 1. Co robi ta konfiguracja udev, dlaczego nie działa bez niej? 2. Jaką magią wie, które urządzenie zamontować, kiedy to robisz mtpfs, czy może po prostu obsługuje tylko 1 podłączone urządzenie na raz?
Bart van Heukelom

Również podczas kopiowania dużego pliku (za pomocą Nautilus) będzie wyglądało, że kopiuje się bardzo szybko (50 MB / s), ale w tym czasie niczego nie kopiuje. Dopiero gdy pasek postępu osiągnie 100%, rozpocznie się prawdziwa kopia (a interfejs zawiesi się). Może jakiś rodzaj bufora można wyłączyć?
Bart van Heukelom

Niestety nie znam odpowiedzi, które chcesz. Przykro mi.
desgua

Zrobiłem to wszystko, ale otrzymałem ten komunikat podczas próby połączenia z systemem Android: fusermount: nie udało się otworzyć /etc/fuse.conf: Odmowa zezwolenia fusermount: opcja allow_other dozwolona tylko wtedy, gdy w pliku /etc/fuse.conf ustawiona jest opcja „user_allow_other” chociaż edytowałem /etc/fuse.conf zgodnie z instrukcją.
Dmitrij Shvedov

21

Łączenie urządzeń przez MTP z GVFS

Od czasu Ubuntu 13.04 dostęp do urządzeń obsługujących MTP działa od razu po instalacji przez backend GVFS . Proszę spojrzeć na Czy są jakieś plany poprawy obsługi protokołu mtp w przyszłych wersjach Ubuntu? instrukcje instalacji przed 13.04.

To rozwiązanie powinno działać na wszystkich urządzeniach z Androidem, które zapewniają funkcjonalność MTP i prawdopodobnie na wszystkich urządzeniach innych niż Android z funkcją MTP, takich jak telefony z systemem Windows i przenośne odtwarzacze multimedialne .

Nie mylcie się

Nastąpiło pewne zamieszanie, spróbujmy wyjaśnić:

  • Ty nie musisz robić niczego, co może spowodować utratę gwarancji!

    • Nie musisz rootować urządzenia.
    • Nie musisz odblokowywać bootloadera. (Możesz znaleźć instrukcje dla Androida jej e .)

    Odblokowanie odnosi się tylko do ekranu blokady systemu operacyjnego w tej odpowiedzi.

  • Nie musisz konfigurować dostępu programisty do swojego urządzenia, takiego jak ADB, fastboot lub coś podobnego za pomocą pewnych reguł udev. (Można znaleźć instrukcje dla Androida w rozdziale Konfigurowanie dostępu USB swój e lub jej e ).

  • O ile wiem, również nie potrzebujesz BEZPIECZNIKA ani nie konfigurujesz opcji związanych z BEZPIECZNIKIEM.

Rozwiązywanie problemów

  1. Nie mogę umieścić plików na urządzeniu.

    Twoje urządzenie musi być odblokowane, aby uzyskać dostęp do pamięci urządzenia z Ubuntu za pośrednictwem MTP.

    pokazując urządzenie w nautilusie w stanie zablokowanym i odblokowanym

  2. Otrzymuję komunikat o błędzie informujący, że urządzenia nie można zamontować.

    Jeśli pojawi się poniższy komunikat o błędzie, spróbuj ponownie uruchomić urządzenie raz .

    komunikat o błędzie, który może pojawić się podczas łączenia

    Jeśli komunikat o błędzie pojawi się ponownie, otwórz nowe okno nautilusa w programie uruchamiającym (najlepiej klikając ikonę urządzenia) i prawdopodobnie zamykając bieżące okno nautilusa. Możliwe powiązanie: jak utworzyć reguły udev, aby wyłączyć jedno z urządzeń z Androidem?

  3. Sprawdź, czy dla Twojego urządzenia istnieją reguły udev

    Otwórz terminal i wpisz lsusb. Znajdź swoje urządzenie na wyjściu i zanotuj identyfikator (np 0fce:01b1.). Pierwsza część to identyfikator dostawcy, ostatnia część to identyfikator produktu.

    Otwórz odpowiedni plik reguł mtp udev za pomocą nano /lib/udev/rules.d/69-libmtp.rulesi wyszukaj identyfikator produktu (użyj Ctrl+ W). Jeśli nie możesz go znaleźć, musisz utworzyć niestandardowy wpis /etc/udev/rules.d/69-libmtp.ruleszgodnie z poniższym wzorcem i uruchomić ponownie .

    # SONY Xperia Z2 MTP
    ATTR{idVendor}=="01b1", ATTR{idProduct}=="01b1", SYMLINK+="libmtp-%k", MODE="660", GROUP="audio", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
    

    Powinieneś rozważyć zgłoszenie błędu w pakiecie libmtp (a dokładniej - wspólny libmtp ), aby Twoje urządzenie zostało uwzględnione w przyszłych wersjach, jeśli to zadziałało.

  4. Nadal nie mogę się połączyć

    Twoje urządzenie nie jest obsługiwane przez urządzenie bazowe libmtplub możesz napotkać ten sam problem, który mam z moim Lumią 620, postępuj zgodnie z obejściem (kroki do odtworzenia), które opublikowałem w LP # 1247572: Nokia Lumia 620 (WP8) nie można zamontować niezawodnie za pośrednictwem gvfs-mtp w nautilus . (Urządzenie nadal nie działa tutaj bezbłędnie, ale korzystanie z mtp-detectpomocy.)

    Powinieneś przeszukać tracker błędów libmtp dla swojego urządzenia i postępować zgodnie z instrukcjami dla nowych urządzeń na stronie projektu, aby otworzyć raport o błędzie.

  5. Moduł śledzenia błędów wyświetla moje urządzenie jako obsługiwane, ale nadal nie działa

    W niektórych przypadkach raport o błędzie dotyczący twojego urządzenia mógł być już złożony i rozwiązany w nowszym wydaniu libmtp niż to, z czym jest dostarczana Twoja dystrybucja (np .: Motorola Moto G ). W takim przypadku musisz poczekać na aktualizację oficjalnych repozytoriów lub poszukać zaktualizowanej umowy PPA.

    Zaktualizowaną listę wszystkich wersji libmtp dostępnych za pośrednictwem oficjalnych kanałów oprogramowania Ubuntu i prywatnych umów PPA można znaleźć tutaj (koniecznie rozwiń Inne wersje „libmtp” w niezaufanych archiwach ). Od 2014/02/13 ten PPA autorstwa Matthieu Baerts oferuje najnowszy pakiet libmtp dostępny dla Ubuntu.

    Ostrzeżenie : ten PPA zawiera wiele różnych i prawdopodobnie niestabilnych pakietów. Odradzam dodawanie go do twojego systemu. Zamiast tego możesz pobrać pakiety libmtp osobno i ręcznie zainstalować je w systemie.

    Zanim przejdziesz dalej, zapoznaj się z umowami PPA i ich ryzykiem . Przeczytaj także poniższy akapit dotyczący przywracania oryginalnych pakietów, zanim wykonasz następujące czynności:

    1. Głowa do strony pakiet szczegółowości PPA i rozszerzyć wpis libmtp
    2. Pobierz następujące pakiety: libmtp-common, libmtp-runtime, libmtp9, mtp-tools. Upewnij się, że wybrałeś odpowiednią architekturę dla swojego systemu (zazwyczaj tak będzie amd64).

      Oto linki do pakietów na dzień 2014/02/13: libmtp-common , libmtp-runtime , libmtp9 , mtp-tools

    3. Kontynuuj, aby ręcznie zainstalować zaktualizowane pakiety za pomocą dpkg (przejdź $HOME/Downloadsdo folderu pobierania i upewnij się, że nie ma innych plików deb:

      cd "$HOME/Downloads"
      sudo dpkg -i *.deb
      
    4. Po pomyślnym zainstalowaniu wszystkiego uruchom ponownie komputer, odblokuj urządzenie z Androidem, podłącz je przez USB i powinno pojawić się w menedżerze plików.

    Działa to dobrze dla mnie (@Glutanimate) z moją Motorolą Moto G. Ponieważ korzystałem z Ubuntu 12.04 LTS, najpierw musiałem zainstalować zaktualizowaną wersję gnome-gvfs. Więcej informacji znajduje się na górze instrukcji instalacji przed 13.04 .

    Aby cofnąć zmiany, jeśli coś pójdzie nie tak lub urządzenie nadal nie zostanie rozpoznane, musisz ręcznie zainstalować oryginalne pakiety. Głowa do informacji źródłowej libmtp i znaleźć wydaniu Ubuntu. Rozwiń wpis i przejdź do pobierania pakietów, tak jak w kroku 2 wcześniej. Kontynuuj instalację zgodnie z opisem w kroku 3 i uruchom ponownie system. Wszystko powinno teraz wrócić do normy.


1
+1 za „Don't be mylić” Nie działa jednak w mojej galaktyce s3 mini :(
hugo der hungrige

Pracowałem dla mojego tabletu Samsung Galaxy z Androidem 4.1.2, ale nie mogę edytować plików w podróży. Czy masz na to rozwiązanie?
Vesnog

„Niektóre przewodniki sugerują dodanie reguł udev do pliku o nazwie 51-android.rules. Nie są to MTP,…” Straciwszy całą wiarygodność, kiedy to powiedziałeś. Reguły w udev / rules.d / są całkowicie elastyczne. 51-android-rules jest dla nich idealnym miejscem.
Równie

@Auspex Linia mogła zostać napisana lepiej, ale zamiast narzekać, mogłeś to zrobić (wymagałoby to przeczytania i zrozumienia całego postu) lub podać lepszą odpowiedź. Patrząc na twój profil zakładam, że wiesz, jak powinny działać witryny SE. To, jak (źle) zarządzasz swoimi plikami, /etczależy wyłącznie od Ciebie. Jak wyjaśniono powyżej, najlepiej wszystkie reguły udev powinny być dostarczone ootb. Jeśli nie, należy zgłosić błąd w celu włączenia brakującej reguły /lib/.../69-libmtp.rules, aby wszyscy byli zadowoleni z następnej wersji.
LiveWireBT

1
@Auspex Nie rozumiem, co próbujesz tutaj osiągnąć. Powtarzam: sposób zarządzania plikami /etczależy od Ciebie. /lib/udev/rules.d/69-libmtp.rulesjest to, co wybrali opiekunowie pakietów i sugeruję, aby zgłosić błąd w tym pakiecie (zaktualizowałem odpowiedź) dla użytkowników, którzy napotkają ten problem. Jeśli nadal masz z tym problem, porozmawiaj z opiekunami lub opublikuj własną odpowiedź. Kłaniam się teraz rozmową z tobą na ten temat.
LiveWireBT

5

Wszystkie programy oparte na libmtpnadal wydają się mieć problemy z Galaxy Nexus (od libmtp 1.1.3). Programy oparte na gphoto2pracy dla mnie.

Osobiście używam gphotofs, dostępny w pakiecie o tej samej nazwie.

Użyj, gphotofs ~/mymountpointaby zamontować, a następnie fusermount -u ~/mymountpointodmontować, kiedy skończysz.


Właśnie uaktualniono do 12.04 i wygląda na to, że libmtp 1.1.3 nie działa poprawnie, jak powiedziałeś. Będę musiał to zbadać nieco bardziej. gphotofs działa jednak idealnie, więc dziękuję za sugestię!
Leo

1
Używanie gphotofspozostawia mi jeden katalog, który jest pusty.
Nathan Osman

4

Zainstaluj następujące elementy i uruchom ponownie:

sudo apt-get install gvfs-backends mtpfs jmtpfs libmtp-common mtp-tools libmtp-dev libmtp-runtime libmtp9 gmtp libdbus-cpp5 libgflags2v5 libgoogle-glog0v5 libmtp-dbg libmtp-doc libmtpserver-dev libmtpserver1 libprocess-cpp3 mtp-server

I tak, ta odpowiedź dotyczy również „Ubuntu 13.04 [i wyżej; gdzie] dostęp do pamięci urządzeń zewnętrznych za pośrednictwem MTP powinien działać od razu po wyjęciu z pudełka za pośrednictwem modułu GVFS-MTP” . Ponieważ może po prostu nie zostać zainstalowany po wyjęciu z pudełka. Nawet gdy Twoje urządzenie MTP jest już jakoś automatycznie zamontowane! (Ale daje ci dostęp tylko do odczytu lub inne problemy.)
tanius

1
@ Tanius Muszę powiedzieć, że MTP jest tak boleśnie powolny, że nawet go nie używam. esfile explorer ma serwer ftp i po prostu używam curl do przesyłania plików do urządzenia w mojej sieci lokalnej.
mchid

To polecenie wskazuje źródło problemu:The following packages have unmet dependencies: gvfs-backends : Depends: gvfs (= 1.28.2-1ubuntu1~16.04.2) but 1:1.20.3-4salbabix27trusty is to be installed Depends: gvfs-daemons (= 1.28.2-1ubuntu1~16.04.2) Depends: gvfs-libs (= 1.28.2-1ubuntu1~16.04.2) but 1:1.20.3-4salbabix27trusty is to be installed Depends: gvfs-common (= 1.28.2-1ubuntu1~16.04.2) but 1:1.20.3-4salbabix27trusty is to be installed E: Unable to correct problems, you have held broken packages.
NoBugs

1
Należy zauważyć, że gdy to się nie powiedzie, jak w powyższym komentarzu, usuń i ponownie zainstaluj „ubuntu-desktop” i powyższe za pomocą sudo apt-get install - reinstall. a następnie uruchom ponownie.
NoBugs

0

Pierwszym krokiem byłoby zainstalowanie jmtpfs( sudo apt-get install jmtpfsw terminalu - Ctrl+ Alt+ T), następnie utworzenie folderu za pomocą, mkdir foldernamea następnie zamontowanie urządzenia za pomocą jmtpfs foldername, a następnie przejście do nautilus (Pliki).

Jeśli twoje urządzenie nie jest kompatybilne z libmtpwersją w Ubuntu. Musisz pobrać i zbudować najnowszą wersjęlibmtp (> 1.1.12), jak w: Jak mogę zainstalować najnowszą wersję libmtp?

Powinieneś być w stanie zobaczyć foldery również mtp-foldersw terminalu lub z interfejsem graficznym gmtp.

Poprzednie kroki mogą pokazywać błąd, jeśli uruchomisz je bez sudo:

libusb_open() failed!: Permission denied

Aby uniknąć korzystania z sudo, należy dodać urządzenie do /etc/udev/rules.d/51-android.rulespliku jak wyżej (patrz desgua) i przeładować reguły lub ponownie uruchomić.


-1

Tylko małe obejście, połącz swój telefon oparty na ICS ze starym, dobrym MASOWYM PRZECHOWYWANIEM http://forum.xda-developers.com/showthread.php?t=1556367

adb install UMS1.0.apk

1
Chociaż jest to dobre rozwiązanie dla niektórych telefonów, działa to tylko wtedy, gdy telefon ma oddzielną kartę SD. W stosunku do pierwotnego pytania to nie działałoby z Galaxy Nexus.
covernail

Nawet z oddzielną kartą SD nie sądzę, aby montowanie jako urządzenie pamięci masowej było opcją w nowszych wersjach Androida. Chociaż „zawsze są gdzieś tylne drzwi”, więc nie posunę się tak daleko, by powiedzieć, że to niemożliwe.
mchid

To było 4 lata temu;)
jflaflamme
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.