LINUX.ORG.RU

Android File Transfer for Linux

 ,


7

5

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

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

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

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

У меня jmtpfs норм работает, mtpfs и libmtp(thunar) вылетают.

Не в упрёк автору, но ИМХО печально всё это: вместо одной нормально работающей реализации напилили кучу полурабочих, и пилят ещё и ещё.

selivan ★★★ ()

и я написал свой MTP клиент, на c++11, с референсной реализацией модели для Qt.

Это конечно хорошо, но лучше бы кто-нибудь написал ЛТП сервис с принудительным штудированием документации по Qt в течении всего курса:)

Napilnik ★★★★★ ()
Последнее исправление: Napilnik (всего исправлений: 1)
Ответ на: комментарий от haku

Я спросил именно про тебя.

поэтому:

а) у тебя оно есть?

б) оно есть дома или и на работе и в гостях и...

;)

anonymous ()

Ни разу не пользовался. Мне проще запустить sshdrod и подключиться по вайфаю по протоколу sftp.

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

Программа от пользователя не может читать усб девайс. Ты же прописал udev rules, не так ли? Читай как работать с adb там про это написано, ну или запусти от рута)))

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

Фигасе. У меня nexus 4 2013, AP в 4.4 работала.

Я про Nexus 7 WiFi + 3G, модель 2012. В родной прошивке почему-то функционал был порезан.

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

Держи, аналитик ты наш диванный:

Так сказать-то что вы хотите? Такое ощущение, что вы там сами с собой общаетесь.

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

типа поддержки внешней SD карты нет, поэтому и не нужно

Нет, не по этой причине. Подумайте, что происходило, когда «флешка» монтировалась?

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

Завтра попробую еще раз, если опять тоже самое открою issue на гитхабе. По ощущению было не зависание программы, а как будто она что-то ожидала от телефона и не могла дождаться.

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

Вот с adb проблем нету. От юзера работает. Так и перебрасываю... так как этот mtp не юзабелен

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

напишите лучше

Извини, детка, но у меня не хватит времени переписывать каждый говнокод, на который натыкаюсь.

напишите лучше
напишите лучше
напишите лучше

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

А благородный Дон в курсе существования технологии беспроводной зарядки?)

сейчас придут интеллигентнейшие люди и расскажут куда ты можешь засунуть себе эту беспроводную зарядку с током заряда 0.5А при нынешних батарреях в аппаратах - 3К+.

Deleted ()

Использую SSHFS в тех же целях. Надо будет попробовать и эту программку к DeaDBeeF'у через shellexec прикрутить.

slimblyandysh ★★ ()

Круто! Жаль у меня андроида нет.

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

А благородный Дон в курсе существования технологии беспроводной зарядки?)

Во-первых, там надо прикладывать смарт к самой зарядке, так что это ничем не отличается по мобильности от втыкания шнура — один чёрт даже рядом не походишь, всё равно привязан проводом. Во-вторых, вот тут вот пишут (http://arstechnica.com/gadgets/2013/11/look-ma-no-wires-a-mini-review-of-goog...), что он там 6 часов вместо 3 заряжается.

anonymous ()

Bittorent Sync же.

Работает в обе стороны. Фоточки бекапить в фоне, прочие бекапчики. Или на ноут музычки накачать, теги причесать по-человечески и прочее и потом через 3 минуты на работу с новой музыкой, никаких подключений. Ну да, wi-fi нужен, ну так он постоянно включен.

Шнурок дома валяется, раз в два дня только нужен.

Nebulosa ()

Found unsuitable Qt version «5.3.2» ... хмм ... и чем же она ему не понравилась?

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

со своей стороны могу что-нибудь сделать?


странно. окно «GetObjectHandles: invalid response code InvalidStorageID (0x2008)» само пропала.


Теперь окно с главным меню, но поле (где как понял файлы) пустое.

в терминале

upload worker started 
failed to get object info  vector::_M_range_check 
drop message 0003 2001, transaction 00000007
failed to get object info  GetObjectInfo: invalid response code InvalidObjectHandle (0x2009) 
failed to get object info  invalid size 
drop message 0003 2001, transaction 00000010
failed to get object info  vector::_M_range_check 
drop message 0003 2001, transaction 00000013
failed to get object info  vector::_M_range_check 
drop message 0003 2001, transaction 0000001d
failed to get object info  vector::_M_range_check 
drop message 0003 2001, transaction 0000001e
failed to get object info  invalid size 
drop message 0003 2001, transaction 00000028
failed to get object info  invalid size 
drop message 0003 2001, transaction 0000002c

заскомментировал все комментарии в коде :)


upload worker started 
configurations: 1
interfaces: 1
0:0 index 0, eps 1
configurations: 1
interfaces: 1
0:0 index 0, eps 1
configurations: 1
interfaces: 1
0:0 index 0, eps 1
configurations: 1
interfaces: 1
0:0 index 0, eps 1
configurations: 1
interfaces: 1
0:0 index 0, eps 1
configurations: 1
interfaces: 3
0:0 index 0, eps 3
endpoints: 3
endpoint: 0: 81
IN
endpoint: 1: 01
OUT
endpoint: 2: 82
INTERRUPT
DATA SIZE = 12
DATA SIZE = 188
DATA SIZE = 12
DATA SIZE = 112
DATA SIZE = 12
DATA SIZE = 112
DATA SIZE = 12
DATA SIZE = 118
DATA SIZE = 12
DATA SIZE = 120
DATA SIZE = 12
DATA SIZE = 114
DATA SIZE = 12
DATA SIZE = 128
failed to get object info  vector::_M_range_check 
DATA SIZE = 12
drop message 0003 2001, transaction 00000007
DATA SIZE = 118
DATA SIZE = 12
DATA SIZE = 114
DATA SIZE = 12
DATA SIZE = 118
DATA SIZE = 12
DATA SIZE = 110
DATA SIZE = 12
DATA SIZE = 116
DATA SIZE = 12
DATA SIZE = 148
DATA SIZE = 12
DATA SIZE = 118
DATA SIZE = 12
DATA SIZE = 12
failed to get object info  GetObjectInfo: Response.cpp invalid response code InvalidObjectHandle (0x2009) 
DATA SIZE = 132
DATA SIZE = 0
failed to get object info  invalid size 
DATA SIZE = 12
drop message 0003 2001, transaction 00000010
DATA SIZE = 110
DATA SIZE = 12
DATA SIZE = 116
DATA SIZE = 12
DATA SIZE = 130
failed to get object info  vector::_M_range_check 
DATA SIZE = 12
drop message 0003 2001, transaction 00000013
DATA SIZE = 112
DATA SIZE = 12
DATA SIZE = 122
DATA SIZE = 12

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

Да понятно, что происходило и жить с этим было непросто. Но де факто они упростили жизнь себе и усложнили жизнь пользователям.

Evgueni ★★★★★ ()

Ненужно же.

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

Ты говоришь обратное реальности. Мелочь синкается за константное время, поэтому её удобнее и не медленней синкать через syncthing. А большие объёмы - за сравнимое с началом синка время. Т.к. файлы копируются обычно в последний момент, время играет роль, быстрее достать кабель, чем ждать, пока syncthing раскуклится

derlafff ★★★★★ ()

Автор, сделайте пожалуйста поддержку FreeBSD. Порой очень нужно.

iron ★★★★★ ()

simple-mtpfs - и нет никаких глюков. разве что бесит неисправимое «Unable to read MTPZ public exponent from ~/.mtpz-data», но влияния этой ошибки я не чувствую.

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

Но де факто они упростили жизнь себе и усложнили жизнь пользователям.

Тут палка о двух концах - или монтирование как флешки, но неадекватное состояние системы, или монтирование по mtp и прозрачная работа системы.
Выбрали второй вариант. Не самый худший. Просто протокол mtp говно.

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

simple-mtpfs - и нет никаких глюков. разве что бесит неисправимое «Unable to read MTPZ public exponent from ~/.mtpz-data», но влияния этой ошибки я не чувствую.

Все глюки, присущие libmtp - обновление состояния файловой системы зависит от погоды на марсе. Видимость файлов/директорий под андроедом > 4.0 зависит от погоды на марсе. Спонтанные дисконнекты со всеми вытекающими. Называть это «никаких глюков» можно только находясь под сильными веществами.

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

Все же «беспроводная» зарядка даже сейчас удобнее зарядки по кабелю - не нужно целиться в сопливый микро-усб, нет лишней механики.

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

Так в чём смысл? Приложить к панели или воткнуть кабель. Что изменилось? Ну, кроме зарплаты/премий маркетологов и разжижения твоих мозгов.

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

Все же «беспроводная» зарядка даже сейчас удобнее зарядки по кабелю - не нужно целиться в сопливый микро-усб, нет лишней механики.

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

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

Изменилось. Беспроводная зарядка дороже, менее эффективна, увеличивает размер и вес смартфона.

Но целиться не надо, это да...

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

Могли бы запилить ssh-демон (тем более он уже есть) и накатать простенький sshfs-клиент для винды с открытыми исходниками — аналогов бы наплодилось бы махом (для Linux и MacOS это и так уже есть). Причём могли бы сделать так, чтобы без разницы как соединять через usb или через интернеты. Но они решили сделать проще _для себя_ и воспользовались поделкой от МС. В результате имеем то, что имеем...

Причём не обязательно было это делать вместо — вполне можно было сделать в параллель.

Evgueni ★★★★★ ()
Последнее исправление: Evgueni (всего исправлений: 3)
Ответ на: комментарий от anonymous

Но целиться не надо, это да...

Это реально удобнее, как это не забавно. Я проверил лично — беспроводная зарядка таки годная вещь. И да, гугловская зарядка — гадость.

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

Фильмы спокойно на телефон и с телефона копирую. По 1-20ГБ на флешку и обратно. Все ОК. SGS.

p.s. я не против велосипеда ТС, может быть даже попробую интереса ради.

Marlboro ()
Последнее исправление: Marlboro (всего исправлений: 2)
Ответ на: комментарий от whoozle

попробую вынести все связанное с mtp - все равно с мой смарт 1:30 удачно соединяет :)

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

Но целиться не надо, это да... Это реально удобнее, как это не забавно. Я проверил лично

Для человека алкоголика может быть, вообще apple lightning или usb-c вполне удобные, надеюсь они скоро вытеснят устаревшее эти микро/mini-usb

anonymous ()

Удивительно. 5 страниц комментариев и никто не вспомнил, что в фотоаппарат не так то просто поставить ftp/ssh, так что придётся юзать этот MTP.

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

ums нет на нексусах потому что его невозможно сделать. все данные находятся на одном разделе отформатированном в ext4.

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

Во-первых, с воткнутым кабелем смартом можно пользоваться, а пользоваться им же придерживая эту панельку (причём у разных моделей её надо прикладывать то в центр, то в угол) менее удобно.

Во время разговора зарядку можно оставить спокойно лежать на столе. Она же не прибита гвоздем к смартфону.

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

Беспроводная зарядка не исключает возможность зарядки по проводу.

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

Но они решили сделать проще _для себя_ и воспользовались поделкой от МС.

Нет, они сделали проще для пользователей, поскольку говно-mtp идет с виндой в комплекте (древние винды с древними сервис-паками я не считаю).
Мне, как пользователю, очень не нравится, когда производитель мыши и/или клавиатуры предлагает установить драйвер размером с дистрибутив винды. Так и тут - зачем мне в системе непонятное говно (а для большинства пользователей виндовс, аббревиатура ssh ругательная).

Причём не обязательно было это делать вместо — вполне можно было сделать в параллель.

И куда им потом сливать весь этот поток говна от пользователей, которые не поняли, что работоспособность системы в режиме «я флешка» не гарантируется?

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

Фильмы спокойно на телефон и с телефона копирую. По 1-20ГБ на флешку и обратно. Все ОК. SGS.

Значит у меня особенная libmtp, с глюками.

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

Стоит отметить, что до определенной версии глюки таки были. Сейчас вспомнил, они были до CyanogenMod, т.е. с оригинальным андроидом :)

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

говно-mtp идет с виндой в комплекте

Ага, только для самых (или почти) популярных ведроидов в Этой Стране надо ставить samsung usb driver. Вот тебе и работа из коробки.

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

Ага, только для самых (или почти) популярных ведроидов в Этой Стране надо ставить samsung usb driver. Вот тебе и работа из коробки.

И каким боком это к mtp? Корявость usb-подсистемы винды и кривость драйверов к теме отношения не имеют.

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

Ты будешь смеяться, но с каждым палмом шёл палм десктоп и никто не тарахтел, так как работал он на редкость стабильно и предсказуемо. Назвали бы Android Desktop и объявили бы это суперфичей — все пользователи были бы довольны, так как mtp оставляет массу внезапных ощущений сейчас и будет это делать в будущем. Я молчу что делает с пользователями Apple, а они только облизываются и просят добавки. Так что это не объяснение.

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