LINUX.ORG.RU

Android File Transfer for Linux

 ,


7

5

Наверняка многие из вас используют MTP, наверняка кто-то успешно, но может быть у кого-то (как у меня) всё время случаются недокачанные файлы, пропавшие тэги, отсутствие обложек, обрывы соединения, зависания, отключения устройства, жуткие тормоза, замедление закачки при закачивании целых каталогов. Это всё из-за печально известной libmtp. Меня такое положение дел давно не устраивало и я написал свой MTP клиент, на c++11, с референсной реализацией модели для Qt.

Минимальный ui, создание папки, закачка папки, закачка альбома (с автоматической подборкой и установкой картинки). Никаких fuse, libmtp, libptp, только libusb и Qt, только хардкор.

Очень жду фидбека и хотелок в тракере github, обещаю пилить, так как постоянно использую сам.

>>> Исходный код на github



Проверено: anonymous_incognito ()
Последнее исправление: ymn (всего исправлений: 3)

Ответ на: комментарий от oddmean

Почти всегда стартую FTP-сервер на девайсе и ривычным MC копирую.

Удваиваю, удобно.

// Хотя mtp у меня отлично работает, а винда косячит и тормозит (а при создании новой папки на девайсе ещё и вешает проводник нафиг).

devl547 ★★★★★
()
Ответ на: комментарий от Deleted

андроид
Безопасность

А ты шутник.

anonymous
()

Кто бы под винду MTP нормальную сделал. Вот где мучения жуткие.
Оно даже не умеет проверять объем свободного места перед началом копирования

anonymoos ★★★★★
()
Ответ на: комментарий от KirG0FF

там есть простая утилитка, который умеет показывать списки, закачивать/скачивать файлы, если вам что-то нужно конкретное, напишите в багтракер, я сделаю.

whoozle
() автор топика
Ответ на: комментарий от anonymoos

Кто бы под винду MTP нормальную сделал. Вот где мучения жуткие. Оно даже не умеет проверять объем свободного места перед началом копирования

Врёшь и не краснеешь, только что проверил.

anonymous
()

я использую дропбокс дл пересылки файлов, даже на читалку для книг.

i3draven ★★
()

только libusb и Qt, только хардкор.

Стоило тянуть Qt ради этого, да:

printf("filename = %s\n", info.Filename.c_str());
FILE *f = fopen(info.Filename.c_str(), "wb");

А вот это вообще хохма: https://github.com/whoozle/android-file-transfer-linux/blob/master/mtp/ptp/Ob...

Автор, сделай `man file`.

Короче, всем настоятельно рекомендую пользоваться этой бурлящей смесью POSIX и Qt.

xusrol
()
Ответ на: комментарий от Wizard_

Есть несколько коммерческих реализаций sshd для актуальных версий Android. Подключаю через sshfs

Родителей обучил использовать WiFi File Transfer: https://play.google.com/store/apps/details?id=com.smarterdroid.wififiletransfer — бесплатная версия ограничена размером скачиваемого файла.

Evgueni ★★★★★
()
Ответ на: комментарий от andreyu

1.злоумышленник с вашего компьютера (многие раздают аккаунты по ssh, либо воспользовавшись дырой) может дождацо вставленного телефона и поставить что угодно, а если у вас рутованный телефон, то можно поставить так, что не избавитесь от руткита никогда. 2. adb push не добавит картинки к альбомам, с ними всё «более лучше» выглядит

whoozle
() автор топика
Ответ на: комментарий от Klymedy

А, это, нам решили «улучшить» жизнь в актуальных версиях Android. Ну и реализация extfs таки глючновата пока ещё в Linux.

Evgueni ★★★★★
()
Ответ на: комментарий от whoozle

Ээээ, как правило злоумышленники отбирают телефон, а не устанавливают туда руткит. Такая атака осмыслена, только если автоматизирована.

Evgueni ★★★★★
()
Ответ на: комментарий от xusrol

«Стоило тянуть Qt ради этого, да».

Это тестовый файл и называется mtp-test.cpp, вообще-то.

А что, к file сделали API? system на каждый файл что ли делать? Часто вы храните mkv в файлах с расширениями mp3?

whoozle
() автор топика
Ответ на: комментарий от anonymoos

Если я правильно понимаю, то MTP — это майкрософтовский протокол, так что их реализация «эталонная».

Evgueni ★★★★★
()
Ответ на: комментарий от Deleted

Ха-ха, но в некоторых версиях от HTC отладка была нужна для стабильной работы телефона... В общем как повезёт.

Evgueni ★★★★★
()
Ответ на: комментарий от xusrol

Стоило тянуть Qt ради этого, да:

Код зависящий от Qt только в папке qt/, в качестве примера приложения. Сама библиотека общения зависит только от libusb.

whoozle
() автор топика

спасибо.

попробую

а то mtp кривой, а adb не удобно

anonymous
()
Ответ на: комментарий от anonymous

Эталонный MTP от авторов

Врёшь и не краснеешь, только что проверил.

Что проверил-то? Ты попробуй закинуть на N4 16GB 5ГБ-й архив для переноски на другой компьютер — обплюёшся на четвёртом обрыве из-за ВНЕЗАПНО умершего процесса MTP! И ничего не поделаешь — такое поведение, что на лохматом ОФТОПИК XP, что на молодёжной ОФТОПИК 8.1, что через USB 2.0, что — 3.0, что на Андроид 4.4, что — 5.0.

ТСу желаю успехов!

anonymous
()
Ответ на: комментарий от Deleted

Так на USB только.

Ну и плюс, работать с андроидом мне сейчас часто надо.

a1batross ★★★★★
()

недокачанные файлы, пропавшие тэги, отсутствие обложек, обрывы соединения, зависания, отключения устройства, жуткие тормоза, замедление закачки при закачивании целых каталогов.

Я подключаю по шнурку, накопитель монтирую в /mnt/u1 и копирую/удаляю. Прыщей у меня нет. Что делаю не так?

int13h ★★★★★
()

MTP ненавижу люто... дикая дрянь. Гугл за отказ от UMS надо на деревьях перевешать.

Кстати, мтп вообще в принципе-то скажем даты модификации файлов понимает вообще? Или никак их при копировании не сохранишь?

vitalif ★★★★★
()
Ответ на: комментарий от whoozle

Я часто храню файлы вообще без расширений. К чему расширения на linux. А за программу - спасибо.

Weres ★★★
()

Я не понял в чем проблема.
Под линю я раздаю файлы с андройда/на андройд через OpenSSH.
Под винду - FTP или SMB.
Если мне нужно передать файл на другой телефон - у меня есть HTTP сервер.

Зачем тут MTP?

kir2yar
()

Респект и уважуха аффтору. Обязательно бы заюзал, но только у меня МТП пашет искаропки и идеально, поэтому вряд ли попробую.

GogaN
()

Нужно! С текущей реализацией MTP постоянно какая-то фигня происходит — то не докопируется, то копирование зависнет, то устройство внезапно отвалится.

Alden ★★★★
()
Ответ на: комментарий от kir2yar

Кому-то нравиться просто воткнуть кабель и передать файлы. А не включить wifi, включить сервер и т.д.

А так-то да, можно и через дропбокс перекинуть и ещё чего-нибудь придумать. Вариантов масса.

anonymous
()
Ответ на: комментарий от svs

svs> Как вы представляете UMS на внутренней флешке?

Она там итак на кучу разделов разбита. Более того - внутренняя флешка всё также доступна по тем же путям ФС, что и SD-карта. По факту сделали то же самое, как если бы SD-карту внутрь припаяли и нельзя было её вытащить.

Quasar ★★★★★
()

А я FTP использую. В miui можно в FM включить FTP и зайти на смартфон через FM десктопа и заливать файлы.

user42 ★★
()
Ответ на: Эталонный MTP от авторов от anonymous

5ГБ-й архив для переноски на другой компьютер — обплюёшся на четвёртом обрыве из-за ВНЕЗАПНО умершего процесса MTP!

Да есть такое, но это другое. Не из-за оставшегося места, а из-за ограничения fat32. Mtp не знает сути ФС и того, что FAT32 не умеет файлы больше 4 ГБ, и начинает тупо копировать, хотя априори это обречено на провал. С точки зрения юзерэкспиеренс - это позорище.

Надо посмотреть как это под линуксами и OS X происходит кстате.

PS: ну и почему убогий ведроид не поддерживает ничего кроме fat32 - это другой вопрос (всякие кастомы и прочая ерунда не в счёт).

anonymous
()
Ответ на: комментарий от andreyu

вообщето это никак не относится к версии ондроеда :-)
Я не очень в курсе конфеты, но в вафельном батончике UMS работает отлично у тех вендоров которые это решили включить.

Jetty ★★★★★
()
Ответ на: комментарий от Deleted

Я тоже закачиваю на свой телефон через ADB, не вижу в этом ничего особенного. Очень удобный тул для того, чтобы быстро что-то туда-сюда перебросить.

mono ★★★★★
()

Тред — детектор ретроградов льющих через шнурок во времена 802.11n со скоростью в 300-450 мегабит.
Тред — детектор пассивных анальных рабов корпораций и облаков (да-да, dropbox, я про тебя).

Чем вам Syncthing не угодил? Прозрачно решает 100% задач по перекачке файлов с-/на-, локально, надёжно, более чем быстро.

...mtp, бле, в 2015-м! По шнурку!

haku ★★★★★
()
Ответ на: комментарий от dib2

крайний раз испытывал проблемы года полтора-два назад. в федоре 20 и сейчас в дебиан джесси вообще никаких проблем не испытываю - копипаст в наутилусе работает из коробки. скорость копипаста порядка 10МБайт/сек (точно не помню, но порядок такой)

Deleted
()
Ответ на: комментарий от int13h

Тогда можешь спасть спокойно — это относительно недавнее «нововведение для облегчения жизни пользователей».

Evgueni ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.