LINUX.ORG.RU

Вышел Android File Transfer for Linux 2.0

 , ,


1

2

После месяца упорных трудов и сбора отзывов от пользователей, вышла новая версия MTP-клиента для Linux - Android File Transfer 2.0

Основные нововведения:

  • Поддержка файлов больше 4Gb.
  • Поддержка FUSE, поддержка partial read/write-расширений протокола: теперь можно быстро редактировать, создавать и докачивать файлы.
  • Поддержка PTP-устройств, предварительная поддержка не-андроид устройств, таких как Nokia Lumia.
  • Поддержка Qt4/Qt5.
  • Отказ от libusb в пользу linux usbfs, уменьшение потребляемой памяти, увеличение скорости передачи данных.
  • Индикатор скорости скачивания/закачивания, всякие улучшения и ухудшения.

К сожалению, остались две большие нерешенные системные проблемы, обе отправлены в бегтрекер андроида, подробнее в секции «Известные проблемы». Как и всегда, очень жду ваших отзывов, желательно в багтрекер на github.

PS: Если вы хотите deb/rpm, шлите запросы в багтрекер своего дистрибутива, я отвечаю на письма и github issues в режиме 16/7, но не могу поддерживать зоопарк сборок :)

>>> Ссылка на страницу проекта



Проверено: JB ()
Последнее исправление: cetjs2 (всего исправлений: 7)

Ответ на: UPD от ionanahin

вообще, гуй сейчас должен вперемешку показывать все папки, даже совпадающие по названию (типа Music на sd карте будет рядом с Music из внутренней памяти). Я, наверное, это уберу в будущей версии, есть неприятный баг в андроиде, который не показывает залитые в «любой сторадж» файлы при запросе «дай мне все файлы с конкретного сторадж».

fuse + dolphine проверю, спасибо.

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

Ну и где тебе, дебилу, Поттеринг что-то навязал? Пилил бы свою поделку молча - может за умного сошёл бы.

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

escape

странный выбор, не знаешь не догадаешься, и нигде не подписано.

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

гражданин, у вас говно из головы плещецо, вам может квалифицированная помощь нужна? :)

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

Поддержка файлов больше 4 гб крайне радует

Deleted
()

Добавил ebuild в Gentoo vortex-overlay. +1 за libmtp совместимую библиотеку.

linux usbfs

Про что речь (что конкретно включено должно быть)? USB_DEVFS уже давно выпилили, как гугль подсказывает.

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

Ничего специально включать не надо, usbfs находится в drivers/usb/core/devio.c, модуль usbcore.ko.

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

Автор - молодец! Дело крайне нужное, а потому успехов и продолжения разработки.

anonymous
()
Ответ на: UPD от ionanahin

только что проверил 3 параллельных сессии + копирование из папки в папку на телефоне, с включенными логами из fuse. может что-то ещё надо сделать?

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

Сразу пара вопросов...

Из приятного. После подключения сразу же удалось прочитать содержимое устройства subj'ем, а вот кедовская реализация MTP не нашла хранилищ («No storages found»), оно и верно, устройство то я не разблокировал - пароль не вводил! Вопрос: что это за колдунство такое и что теперь мне делать с моей паранойей? Из мечтаний. А воспользоваться СверхСкоростью(tm) USB 3.0 получится?

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

Единственный недостаток - нужен вайфай

скорее всего можно и без него, у меня сетка с телефоном сделана через usb (все почти стандартно), пинг до телефона в районе 0.3 мс, вайфай так сможет?

я файлы на телефон заливаю редко (обычно подключая телефон как block device), но видимо да, все же ssh сервер на телефоне это хорошо, и зачем тогда нужен какой-то МТР — мне не ясно... впрочем, sshfs умеет файлы читать/писать по блокам (ну там скажем 10 байт на расстоянии 12345678 от начала файла), а не целиком?

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

мой fuse wrapper тоже может писать и читать блоками любого размера, не целым объектом. сеть между телефоном и компьютером это круто. :)

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

Единственный проект, при помощи которого мне (не без приключений), удается добраться до кишков своей Lumia 1020 из под Kubuntu 14.

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

сделайте pull и попробуйте ещё раз.

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

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

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

И таких удручающе много.

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

А чем плоха работа через (j)mtpfs и прочие?

Тем, что они не работают :(

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

Так а если мои накопители монтируются, и я работаю с ними без всяких прослоек в чем прикол? Или я слоупок со своим 4.2?

Значит тебе повезло, и у тебя устройство с вменяемой прошивкой. Это — для менее везучих.

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

А чем оно лучше штатного наутилуса?

На моём телефоне наутилус не работает. AFT версии 1, правда, тоже не работала.

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

Будет время послезавтра — проверю.

anonymous
()

Поддержка FUSE, поддержка partial read/write-расширений протокола: теперь можно быстро редактировать, создавать и докачивать файлы.

А можно одновременно считывать один файл и записывать? И каталоги перечислять?

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

я файлы на телефон заливаю редко (обычно подключая телефон как block device), но видимо да, все же ssh сервер на телефоне это хорошо, и зачем тогда нужен какой-то МТР — мне не ясно... впрочем, sshfs умеет файлы читать/писать по блокам (ну там скажем 10 байт на расстоянии 12345678 от начала файла), а не целиком?

Не знаю, по идее - может. Но у меня sshfs - только потому-что было лениво наворачивать rsync.

kir2yar
()

Под Дженту собрал без проблем (без ninja, Qt 4). Проверил на Samsung Galaxy Tab Pro SM-T525. Передача файлов заработала. Не знаю, связано ли это с исправлениями в программе, или с тем, что я обновил систему на планшете.

Проблемы:

1. Русские имена отображаются нормально в стандартном диалоге Qt, но кракозябрами в основном окне программы. В компьютер приходят те же кракозябры. Так «Раскопанная Библия» превратилось в «_РаÑ?копаннаÑ? Ð?иблиÑ?_.» Насколько я смог понять, имена хранятся в UTF-8, но преобразовываются как ISO-8859-1 -> UTF-8.

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

3. Я правильно понимаю, что если у планшета свой диск и вставленная флешка, и на обоих есть директория /Downloads, то программа покажет их содержимое вперемешку?

4. Стоит помимо «Esc» добавить привычные многим пользователям команды «BkSp» и «Alt-стрелка вверх». Также хотелось бы, чтобы работал Enter на цифровой клавиатуре, и чтобы были шорткаты для переименования и удаления.

5. Один раз программа упала при удалении файлов из директории, сказав «Ошибка сегментирования».

remove rows  1   1 
remove rows  0   1 
remove rows  2   1 
Ошибка сегментирования
Из 3 файлов удалились только 2

6. Загрузка на диск планшета заработала. Загрузка на флешку в планшете по-прежнему не работает. Ошибка

uploading file  "/home/user/films/Day Break Season 1 Complete/Day.Break.S01E13.Webrip.divx.DSnutz.srt"  failed:  Get: invalid response code GeneralError (0x2002)
При этом создаются временные файлы в .mtp.

7. Прогресс-бар при загрузке на планшет показывает непонятно что. При загрузке 4,5 гигабайт видео (AVI по ~350 мегабайт и SRT по ~50 килобайт) достигает 100% на 7-ом файле, в районе 1100-1200 мегабайт.

8. Если на подключённом планшете создать директорию, программа её не увидит пока не выдернешь-вставишь кабель. Перезапуск программы не помогает. Недоработка программы, или MTP?

P.S. Анонимус, обещавший проверить сегодня — это был я с работы.

question4 ★★★★★
()
Последнее исправление: question4 (всего исправлений: 1)

[18/45] Generating moc_mainwindow.cxx FAILED: cd /home/georg/Загрузки/whoozle-android-file-transfer-linux-408ecd4/build/qt && /usr/lib/i386-linux-gnu/qt4/bin/moc @/home/georg/Загрузки/whoozle-android-file-transfer-linux-408ecd4/build/qt/moc_mainwindow.cxx_parameters moc: Cannot open options file specified with @ Usage: moc [options] <header-file> -o<file> write output to file rather than stdout -I<dir> add dir to the include path for header files -E preprocess only; do not generate meta object code -D<macro>[=<def>] define macro, with optional definition -U<macro> undefine macro -i do not generate an #include statement -p<path> path prefix for included file -f[<file>] force #include, optional file name -nn do not display notes -nw do not display warnings @<file> read additional options from file -v display version of moc [18/45] Generating moc_fileuploader.cxx FAILED: cd /home/georg/Загрузки/whoozle-android-file-transfer-linux-408ecd4/build/qt && /usr/lib/i386-linux-gnu/qt4/bin/moc @/home/georg/Загрузки/whoozle-android-file-transfer-linux-408ecd4/build/qt/moc_fileuploader.cxx_parameters moc: Cannot open options file specified with @ Usage: moc [options] <header-file> -o<file> write output to file rather than stdout -I<dir> add dir to the include path for header files -E preprocess only; do not generate meta object code -D<macro>[=<def>] define macro, with optional definition -U<macro> undefine macro -i do not generate an #include statement -p<path> path prefix for included file -f[<file>] force #include, optional file name -nn do not display notes -nw do not display warnings @<file> read additional options from file -v display version of moc [18/45] Building CXX object CMakeFiles/aft-mtp-mount.dir/mtp/fuse.cpp.o ninja: build stopped: subcommand failed.

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

странно, а покажите команды, которыми вы собираете, и запустите ninja -v?

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

Спасибо за подробный отзыв!

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

https://github.com/whoozle/android-file-transfer-linux/issues

Если вам лень или нет аккаунта, напишите сюда, я заведу их сам.

К сожалению, у меня есть некоторые свидетельства того, что самсунг написал свою кривую реализацию mtp, выкинув оттуда удобные андроидные расширения, и скорее всего что-нибудь испортив по пути. :)

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

1. Русские имена отображаются и скачиваются нормально.

!2. Директории по-прежнему скачиваются как пустые файлы.

3. Одноимённые директории на диске планшета и флешке отображаются как разные директории.

4. BkSp, Alt-стрелка вверх (обе стрелки), Enter на цифровой клавиатуре, Ctrl-D, Ctrl-R и оба Del работают.

5. Ошибку сегментирования при удалении повторить не удалось.

!6. Загрузка на флешку в планшете по-прежнему не работает. Файлы копируются в директорию .mtp/ на планшете, по одному на каждое расширение, новые затирают старые. Директория .mtp/ в корне флешки пуста. Создание директорий через aft-mtp-mount работает и на флешке, и на планшете. (Это то же, что было aft-fuse-mount, кстати?)

7. Прогресс-бар заработал правильно.

!8. Удаление и создание файлов по-прежнему не отражается пока не выдернешь-вставишь кабель. Пробовал и в гуёвой программе, и с aft-mtp-mount.

То есть:
вставил кабель,
запустил android-file-transfer,
удалил директорию на планшете,
проверил в AFTPL — видна,
остановил android-file-transfer,
запустил android-file-transfer,
проверил в AFTPL — видна.

Либо:
вставил кабель,
запустил «aft-mtp-mount flash»,
удалил директорию на планшете,
проверил во flash/Card/video — видна,
отмонтировал flash,
запустил «aft-mtp-mount flash»,
проверил во flash/Card/video — видна.

Новые ошибки, не замеченные ранее:

9. Upload Directory не загружает вложенные в загружаемую поддиректории.

10. И кстати, зачем такие сложности? Почему нельзя выбирать и файлы, и директории в одном диалоге?

11. Если в диалоге «Open» для «Upload» выбрать файлы и нажать Cancel, они всё равно будут загружены.

12. И ещё пожелание. Это распространённая проблема в большинстве современных программ. При переходе на уровень вверх, в родительскую директорию, указатель, отмечающий текущую директорию, исчезает. Было бы удобнее, если бы он ставился на той директории, откуда я пришёл. Можно так сделать?

13. aft-mtp-cli не поддерживает параметры командной строки -h или --help. Или он вообще никаких параметров не поддерживает?

14. После aft-mtp-mount невозможно отмонтировать без sudo.

15. Если смонтировать планшет при помощи aft-mtp-mount, а затем запустить android-file-transfer, выдаст нечитаемую ошибку, видимо перекодированную из ISO-8859-1 в UTF-8:

ioctl(_fd, USBDEVFS_CLAIMINTERFACE, &interfaceNumber): Đ£ÑœÑŸÑ€Đ¾Đ¹ÑœÑŸĐ¹Đ¾ ...

16. В связи с этим вопрос: можно ли выводить ошибки в месседжбоксы, из которых можно было бы копировать текст? Или в консоль?

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