Comments 61
Поэтому я тоже пользуюсь adb push/pull, или даже передаю файлы через Яндекс.Диск. Так что мой опыт полностью совпадает с опытом автора статьи.
Android 6, htc one m8
Мой личный опыт — mtp крайне печален, когда надо скопировать много файлов. Вроде это даже не противоречит вашим картинкам, если на них скорость передачи одного большого файла, но от этого не легче.
Переименовываешь файл/папку на телефоне/планшете через MTP? Получи зависание на минутку.
По MTP я всего один раз куда-то залезал — больше никогда.
MTP вынудил меня заплатить за большое облако, потому что скидывать с телефона фото оказалось удобнее через Яндекс.Диск.
Мне иногда кажется (поправляю шапочку из фольги), что основная задача MTP — пересадить нас на облачные сервисы. По крайней мере, это единственная задача, с которой он справляется.
В Windows и Linux MTP работало, как говно. На маке — ещё хуже, насколько такое вообще возможно.
Особенно обидно было, когда при попытке скопировать несколько десятков гигабайт файлов с Windows 7, когда копирование в очередной раз зависло (что для MTP является нормой: если кидаешь много папок, лучше кидать по одной, тогда будет ясно, на какой всё повисло), карта на 64 Гб просто померла и перешла в read only.
А вот ниже приведенный пример с Total Commande и плагином выдает желаемый результат.
зачем все это (ADB, MTP) гуглу? Чем не угодил старый добрый SSH? Как в той же Nokia N9.
Для adb есть плагин для Total Commander — никакой тебе консоли, человеческое копирование. Как для Linux, правда, не знаю. Сомневаюсь что он подходит к какому-либо из аналогов типа Gnome Commander / Double Commander
Просто ставим на устройство любой ftp-сервер из маркета, включаем когда надо передавать файлы. Идеальный мультиплатформенный клиент — FileZilla, ничего не потеряется и не побьется. Если смартфон умеет в usb tethering, скорость передачи по проводу близка к теоретически максимальной. Да, с оверхедом на tcp/ip стек.
//ворчание в тему
Каким образом можно было допустить во всемирный продакшн такое недоразумение как MTP я вообще не представляю. Никто, видать, не тесиировал передачу больше одного файла, как в андроиде, так и в винде и линуксе. Говнокодит кто-то там далеко, а стыдно мне: объяснять людям почему у них фотки не копируются и учить юзать ftp в 2018 году…
Плюсую по поводу FTP. На некоторых телефонах есть даже встроенный сервер.
По-моему, было бы идеально, если бы Гугл добавил бы в Android встроенный SMB-сервер, который активируется при подключении по USB. SMB поддерживается всеми осями, работает стабильно и быстро. Если разработчиков смущает нативный код в Samba, то есть реализации на Джаве. Не понимаю, что им помешало остановиться на таком варианте.
Каким образом можно было допустить во всемирный продакшн такое недоразумение как MTP
Это да просто какое-то жуткое недоразумение.
У меня стандартный глюк через USB 3.0 не копируются куча файлов в папках типа электронных книг, через USB 2.0 все ок. Возможен конечно глюк железа.
OS Переставлял толку нет. Куда делось старое и удобное подключение как обычного диска.?
И можно ли его вернуть?
А так — есть программка для эмуляции UMS Enabler, можно еще ftp server pro или samba filesharing серверы запускать на устройстве.
Убрали в 4.1 вроде. Оно отрубало флешку от самого андроида, приложения падали, было много проблем.
в 5.1 убрали, ЕМНИП.
Старенький xperia Z обновил до 5.1 и всё… больше дебиан не видел флешку телефона.
Так же боролся, всё глючело, долго копировалось, зависало, в итоге плюнул и юзал облака для передачи с/на телефон.
Далее официально осталось в устройствах обновлённых с 2. И там, где производитель запилил обратно
На стаце всегда запущен OpenServer с FTP так же.
play.google.com/store/apps/details?id=com.alphainventor.filemanager
на первом скрине нижняя правая иконка…
Мой лайфхак заключался в копировании тысяч файлов в обратном направлении. Ну то есть из es проводника допустим на nfs/smb шару. asb push все же не для ленивых, факт.
По внутреннему вайфаю в тысячи раз быстрее, чем с этим мтп. Сам же метод подшивания флешки к основной памяти тоже очень кривой — зачастую камера просто не может фоткать — не существует раздела или ещё какой глюк.
Хочешь что-то передать на устройство — используй MTP со всеми вытекающими, вроде скорости передачи файлов, сравнимой с прогулочным шагом контуженной черепахи.
Плох или хорош MTP — это вечный спор. По мне возможность выбора прямого доступа или MTP — это было бы очень хорошо, но производители по сути используют MTP как защиту пользователя от пользователя.
Для прямого доступа нужно не забывать про безопасное извлечение, то, что работа идёт напрямую с файловой системой и тд. И в случае каких-либо неожиданных действий со стороны пользователя его данные на накопителе могу улететь в трубу. Кто будет виноват? Конечно, пользователь обвинит во всех грехах производителя.
Сколько было историй о том, как пользователь форматнул встроенную память китайского mp3 плеера с прямым доступом к памяти и получил кирпич. А что мешает сейчас простому пользователю сделать такой же прикол и винить производителя, что он не уберёг его от того, что форматировать нельзя.
В случае с MTP я могу в любой момент выдернуть шнур и ничего не будет. А такая вещь как форматирование мне банально не доступна. Как и использование в разных хитрых программах. Также мне могут не дать доступ к некоторым файлам, которые производитель защищает для безопасности системы. Хотя также производитель может заблокировать и некоторые другие файлы, дабы не было пиратского копирования данных, но пока я такое ещё не видел.
По поводу скорости работы: тут всё зависит от самого устройства и настроек принимающего устройства. Так один раз я на чужом компьютере решил сбросить свои фотографии с телефона и тот комп вис при открытии папки. Целый час танцев с бубном привёл к тому, что я начал искать отличия между свои и чужим компьютером. Оказалось: для копирования фотографий под Windows 7 через Проводник нужно отключить кеширование эскизов и их отображение. У меня оно дома на всех компах отключено, а вот на чужом оказалось включено и комп прочитав первые 50 фотографий из более 3000 просто вис.
Если копировать кучу мелких файлов, то это ещё та боль, тк каждый файл копируется поштучно. Но можно их все забросить в архив и распаковать уже на самом телефоне.
Каким образом можно было допустить во всемирный продакшн такое недоразумение как MTP
Производители защитили себя от претензий со стороны пользователей, которые могут натворить дел и не признаваться в этом.
Насколько хороша такая защита для потребителя? Имхо, пусть будет, тк если вспомнить старые шутки про удалить папку system32 для ускорения работы Windows или зарядку iPhone в микроволновке, то в случае с MTP производители сделали себе достойное укрытие.
github.com/UltimateROM/android_packages_apps_Settings/commit/4fece8774f9c855846af9759d321a757ca0cffb7
github.com/UltimateROM/android_frameworks_base/commit/c37ba55496ea7f2f5d96bcef091a2363d1a54cea
github.com/ChronoMonochrome/android_device_samsung_codina/commit/0fbfc90b1fe92df1de5662b59550766318d7b62c
p.s. Прошу строго не судить мой
По поводу, собственно, доступа ко внутреннему носителю с Android M, так уж сложилось, что я и со-форумчанин с 4pda, SergeyL, всегда откатываем поведение носителей к тому, что было до Android M (т.е. чтобы безо всякого шифрования флешки, иметь доступ к ней с любых устройств). Точных требуемых для этого изменений не подскажу, т.к. этим занимался, в основном, SergeyL, но из того, что помню:
1) установка флага
ro.vold.primary_physical=1 — github.com/ChronoMonochrome/android_device_samsung_codina/blob/ulti-6.0/rootdir/init.samsungcodina.rc#L19
2) приведение fstab к подобному виду — raw.githubusercontent.com/ChronoMonochrome/android_device_samsung_codina/ulti-6.0/rootdir/fstab.samsungcodina
(хотя, вроде, начиная с M, так или иначе требовались изменения fstab для того, чтобы вообще можно монтировались носители).
Залезаем во внутреннее хранилище Android M