Есть ли жизнеспособная альтернатива MTP для передачи файлов?

Поскольку в последних версиях (ICS+?) больше нет запоминающих устройств, есть ли жизнеспособная альтернатива MTP?

Протокол кажется нарушенным по своей сути, и решение вернуться к этому формату кажется очень «iphone-esque» ходом (отупить, лишить пользователей власти).

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

Я знаю о таких инструментах, как передача файлов по Wi-Fi, но часто оказываюсь в местах, где нет Wi-Fi, имея только ноутбук, телефон и USB-кабель. На днях, например, я был в самолете, что явно не способствует использованию беспроводной системы.

Используйте один из этих методов: askubuntu.com/questions/189591/… SSH SFTP работает.

Ответы (6)

Следующие методы протестированы в Windows 7; Дистрибутив на основе Ubuntu и Slackware с окружением рабочего стола KDE 4.1x. Чего нельзя сказать о Маке. Ответ призван служить сводным руководством для различных методов.

Несколько следующих методов требуют включения USB-модема. Это может быть достигнуто с помощью инструкций, указанных ниже:

Часть этой информации относится только к устройствам под управлением Android 5.0 и выше. Если на вашем устройстве установлена ​​версия 4.4 или ниже, значок меню выглядит следующим образом . Если на вашем устройстве установлена ​​версия 4.3 или ниже, значок настроек выглядит следующим образом .

Настройка и использование USB-модема (включая инструкции для Windows XP)

1. Подключите свое устройство к другому устройству с помощью USB-кабеля.
2. Вы увидите значок USB и уведомление Подключено как мультимедийное устройство или Подключено как камера в верхней части экрана. Для модема тип соединения не имеет значения.
3. Откройте меню настроек вашего устройства .
4. В разделе "Беспроводные сети" нажмитеПодробнее > Модем и переносная точка доступа .
5 Установите флажок или включите переключатель рядом с «USB-модем». Когда соединение установлено, вы увидите одно из следующих уведомлений и сможете подключиться к Интернету (ваши значки могут немного отличаться, если ваше устройство работает под управлением Android 4.4 или ниже): Активна переносная
точка доступа Wi-Fi . Активно несколько подключений в режиме модема или точки доступа . Чтобы прекратить совместное использование подключения для передачи данных, снимите флажок или выключите переключатель рядом с «USB-модем» в меню «Настройки» или просто отсоедините USB-кабель. USB-модем с Windows XP Если вы используете компьютер с Windows XP,









1. Выполните описанные выше шаги, чтобы включить USB-модем для вашего устройства.
2. Загрузите следующий файл конфигурации ( tetherxp.inf ) на свой компьютер с Windows XP. Как правило, вы можете щелкнуть правой кнопкой мыши ссылку и выбрать «Сохранить как». (Если ваш браузер добавляет «.html» к имени файла, вам нужно будет отредактировать имя, чтобы удалить расширение .html и заменить его на «.inf».)
3. Подключите мобильное устройство к компьютеру с помощью USB-кабель.
4. Когда откроется мастер установки нового оборудования Windows XP, выберите Нет, не сейчас , затем нажмите Далее .
5. Выберите « Установить » из списка или из определенного места, затем нажмите « Далее » .
6. Нажмите Обзорчтобы перейти в каталог, в который вы установили файл конфигурации, загруженный на шаге 2, затем нажмите « Далее » .
7. Когда Windows XP завершит установку программного обеспечения для Android USB Ethernet/RNDIS, нажмите Готово .

( Источник )


Способ №1

Этот метод использует USB-модем и приложение для доступа к памяти телефона.

Процедура :

  1. Установите MTP-альтернативный USB-накопитель из Play Store.
  2. Откройте приложение MTP-Alternative, выберите «ПОДКЛЮЧИТЬ И ВКЛЮЧИТЬ USB-МОДУЛЬ» и выберите «Включить USB-модем» .
  3. Вернитесь в приложение, нажав Backклавишу один раз или открыв приложение с его значка в панели запуска.
  4. Инструкции для Windows и Ubuntu теперь будут отображаться в приложении. Выберите свою ОС: Windows или Ubuntu и следуйте инструкциям. Кроме того, вы можете следовать приведенным ниже инструкциям, чтобы сохранить сетевое подключение в Windows или Ubuntu (Linux).

Для Windows :

  1. Убедитесь, что у вас есть права администратора. Загрузите и установите это обновление Microsoft .
  2. Служба WebClient должна быть включена для доступа к сетевой папке. Чтобы узнать статус службы, нажмите + , Rчтобы открыть диалоговое окно «Выполнить». Введите services.mscи нажмите OK . Откроется окно Службы со списком служб.
  3. Прокрутите вниз, чтобы увидеть WebClient , и проверьте соответствующий тип запуска . Если он не отключен , закройте окно. Если это так, то сделайте

    Right-Click -> Properties -> General -> Startup Type -> Automatic -> Apply -> OK. Вы также можете выбрать «Вручную» вместо « Автоматически », чтобы избавить систему от перегрузки при запуске.

  4. Теперь нажмите + R, введите regeditи нажмите OK `, выберите Да , и откроется окно редактора реестра .

  5. На панели инструментов щелкните Edit -> Find. В диалоговом окне, соответствующем полю Find What , введите WebClient. Снимите флажок « Значения и данные » или в противном случае отметьте только «Ключи » ниже . Посмотрите на . Нажмите « Найти далее» . Он выполнит поиск и должен показать уже выбранную запись. Убедитесь, что (на нижней панели) расположение выбранной записи

    Computer/HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\WebClient.

  6. В записи WebClient щелкните стрелку вправо, чтобы получить доступ к ее содержимому.

  7. Щелкните Параметры . С правой стороны нажмите BasicAuthLevel -> Modify. В поле « Значение » измените значение на 2и нажмите « ОК » .
  8. Если записи BasicAuthLevel не было, создайте ее, щелкнув правой кнопкой мыши пустое пустое пространство, выберите DWORD (32-bit) Valueи назовите ее BasicAuthLevel. Выполните шаг 7.
  9. Перезагрузите систему сейчас, чтобы все изменения вступили в силу. Вам нужно будет открыть приложение MTP-Alternative, чтобы снова подключить телефон к ПК.
  10. Чтобы сопоставить память телефона, откройте Мой компьютер .
  11. Под адресной строкой нажмите Подключить сетевой диск .
  12. В соответствующем поле « Папка » введите \\192.168.42.129@8081и нажмите « Готово » . Откроется окно с содержимым /каталога вашего телефона.
  13. Если у вас есть только внутренняя [SD-карта] в смартфоне, введите sdcardпапку. В противном случае введите storageпапку и войдите в желаемое хранилище.
  14. Вы можете получить доступ к этому сетевому диску в формате My Computer -> Network Location. Вы также можете переименовать этот диск, выполнив действия Right-Click -> Renameнад диском, введите имя и нажмите Enter. Обратите внимание, что диск не будет доступен, если смартфон с вышеуказанными инструкциями не подключен к ПК.

(Источник: ykasidit , Yeehawup , MTP-Alternative )

Для Ubuntu (Linux) с KDE 4.1x :

  1. Запустите файловый браузер Dolphin . В разделе « Места » нажмите «Сеть» .
  2. Щелкните Add Network Folder -> WebFolder (webdav).
  3. Введите любое имя , оставьте поле « Пользователь » пустым, введите 192.168.42.129в поле « Сервер », введите 8081в поле « Порт » . Как и в шаге 13 ОС Windows, введите /sdcard/или /storage/в поле « Расположение », установите флажок «Создать и значок» для этой удаленной папки и нажмите « Сохранить и подключить » . Теперь откроется окно с содержимым хранилища.
  4. Сетевое местоположение сохраняется в том месте, Places -> Network -> Nameгде находится имя из шага 3. Вы также можете закрепить эту папку в Places , выполнив над этой папкой Right-click -> Add to Places.

Способ №2

Этот метод использует интерфейс ADB для доступа к памяти вашего телефона. Многие пользователи уже подробно рассмотрели его, и некоторые ответы можно найти здесь . Короче говоря, ниже приведены инструкции, взятые из некоторых ответов пользователей Android Enthusiasts.

Установка ADB в вашей ОС

На самом деле нет необходимости устанавливать весь SDK , если вы не хотите использовать его для разработки. Чтобы иметь возможность запускать основные команды ADB в контексте, необходимом обычному пользователю, элементарной установки вполне достаточно. Я попытаюсь объяснить, как это сделать, и, надеюсь, охватить наиболее часто используемые компьютерные системы.

Требования

Во-первых, вам понадобятся основные двоичные файлы. Их можно найти на официальной странице загрузки для Linux, Windows и Mac.

Пользователи Windows

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

Пользователи Linux и Mac OS

Пользователям Linux и Mac OS может потребоваться сделать свое устройство известным своей операционной системе. Для Linux вы найдете необходимые шаги, описанные в моем ответе здесь . Не будучи знакомым с Mac OS, я не могу говорить за нее.

Установка

линукс

Для Linux это довольно просто: просто распакуйте загруженные двоичные файлы в каталог по вашему выбору. В то время, когда я пишу это, это будет только два файла: adbи aapt(последний используется QtADB и не обязательно нужен для прямого выполнения команд ADB). Настройте права доступа к файлам, чтобы сделать их исполняемыми (например, из командной строки: chmod 0755 adb aapt). Наконец, рекомендуется включить выбранный каталог в вашу $PATHпеременную, чтобы вы могли звонить adb, где бы вы ни находились. Хорошее место для этого — в конце вашего ~/.profileфайла добавить дополнительную строку, например export PATH="~/bin:$PATH"(если вы распаковали двоичные файлы в ~/bin).

Окна

Загрузка Windows содержит еще пару файлов. Также извлеките их в каталог по вашему выбору. Если вы хотите, чтобы их можно было вызывать из любого места без указания полного пути, вам также необходимо добавить этот путь в переменные среды. Не будучи пользователем Windows, я должен предоставить вам «как это сделать».

Что еще?

На этом вы должны закончить и можете использовать все возможности командной строки ADB.

Дальнейшие чтения

( Источник )

И,

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

Вот ссылки на репозиторий Google:

Последняя версия инструментов платформы (содержит всего несколько бинарников - размером менее 10 Мб каждый):

Для пользователей Ubuntu и Debian (дистрибутивы, которые я использую лично) я собрал небольшой скрипт bash, который находит и устанавливает последнюю версию инструментов платформы — Установка инструментов платформы Android (ADB) в Ubuntu

( Источник )

Чтобы получить доступ к хранилищу телефона в Ubuntu (Linux) с помощью интерфейса ADB :

Я не могу ответить на часть Windows, но на часть Ubuntu я могу ответить точно, так как я также использую ее и монтирую свои устройства с моего компьютера, иногда с полным доступом r/w. То, что я использую, требует установки инструментов ADB на ваш компьютер. Если вы еще не установили их, см., например, Существует ли минимальная установка ADB?

Подготовьте своего дроида

Сначала основное требование, применимое к любой ОС, которая может работать на вашем компьютере: чтобы иметь возможность получить полный доступ, демон ADB должен работать в корневом режиме. Это не относится к стандартным ПЗУ, даже если они рутированы по умолчанию (хотя во многих пользовательских ПЗУ он включен по умолчанию). Итак, сначала проверьте: если «обычный» adb shellнапрямую приводит вас к корневой подсказке ( #), не вызывая su, все в порядке. В противном случае вам понадобится помощник, такой как adbd insecure : запустите его и включите «исправленный небезопасный режим». При желании установите флажок, чтобы это выполнялось автоматически при каждой загрузке вашего устройства.

Подготовьтесь к доступу на запись к файловым системам только для чтения

Во-вторых, опять же независимость от ОС на вашем компьютере: для чтения и записи в файловые системы их нужно монтировать в режиме чтения/записи. Вы можете сделать это в adb shellлюбое время, когда вам нужно записать туда (я не рекомендую оставлять эти разделы в постоянном режиме чтения/записи), например, выдав a mount -o remount,rw /systemдля /systemраздела.

Смонтируйте своего дроида

Теперь перейдем к конкретике. Я монтирую файловую систему Android через ADB, используя FUSE . Инструмент для этого — adbfs-rootless . Компилировать код легко, учитывая приведенные там инструкции; После этого скопируйте полученный adbfsдвоичный файл в каталог в вашем $PATH. Затем создайте точку монтирования на своем компьютере; в моем примере я буду использовать ~/droidдля этого. Теперь поехали:

# Mount the Android FS:
adbfs ~/droid
# Unmount it again:
fusermount -u ~/droid

Чтобы облегчить процесс, я создал два псевдонима:

alias mdroid="adbfs ~/droid"
alias udroid="fusermount -u ~/droid"

Вы наверняка уже догадались: mdroidрасшифровывается как «mount droid», udroid«размонтировать дроида».

Другой подход к ручному монтированию/размонтированию — это использование Midnight Commander с конкретной VFS: mc-extfs-adb делает это. Версия, которую я специально адаптировал для Ubuntu, доступна в разделе загрузки на IzzyOnDroid , где вы можете просто выбрать ее (инструкции по установке прилагаются).

Оба варианта имеют свои плюсы и минусы: mc-extfs-adb занимает довольно много времени при первом доступе (пока он кэширует всю структуру файловой системы), но затем довольно быстро просматривает файловую систему (поскольку она кэшируется), только замедляясь когда вы копируете/редактируете файлы удаленно. Использование adbfs напрямую запускается намного быстрее, но потом всегда "колеблется" на секунду при переключении каталогов (поскольку не кэширует всю структуру, а только читает по запросу). Я обычно предпочитаю последнее, но YMMV — поэтому я дал вам оба варианта :)

( Источник )

Чтобы получить доступ к хранилищу телефона в Windows с помощью интерфейса ADB

Проводник Windows по умолчанию не позволяет получить доступ к корневым файлам Android. Для этого вам нужно будет загрузить другое приложение (на свой компьютер). Во многих местах (например, в этом руководстве guidingtech.com) рекомендуется Android Commander . Другая рекомендуемая программа для просмотра файлов — Droid Explorer .

( Источник )


Способ №3

Этот метод использует приложение и USB-модем. Этот метод имеет корни в этом ответе (в этом ответе упоминаются только возможности, но не фактическое использование в шагах).

Процедура :

  1. Загрузите приложение файлового сервера, которое позволяет создавать серверы WebDav/FTP/SSH/Samba. Вы можете просмотреть этот список Izzy здесь или выбрать их , а именно : WebDav , FTP , Samba , SSH , Multifarious . Google — ваш друг, если ни один из них не помогает.
  2. Следующие инструкции предназначены для { WebDav , FTP } Ultimate (бесплатно) и серверов Ultimate Pro (платно).

Использование WebDav Server Ultimate :

  1. Включите USB-модем .
  2. Запустите WebDav Server Ultimate .
  3. Перейти к Add -> WebDAV Server ->.
  4. Введите любое имя в поле Имя сервера . Выберите номер порта больше 1024, который вы помните (например, 5000), и введите его в поле « Выполнить на порту» .
  5. В корне документа выберите /способ №1.
  6. Снимите все опции. Вы можете выбрать автоматический запуск этого сервера при каждом запуске этого приложения. Для этого установите флажок Запускать сразу при запуске приложения . Нажмите Backклавишу один раз и выберите Да , чтобы сохранить настройки сервера.
  7. Нажмите один раз на только что созданную запись сервера и выберите Start/Stop . Вы получите диалоговое окно с информацией . Сервер запущен . Вы можете закрыть приложение (включая сервер), сдвинув влево множество значков в верхней части приложения и выбрав « Выход » . Обратите внимание, что без выбора Exit сервер будет продолжать работать, пока не будет остановлен явным образом.
  8. Теперь вы можете использовать процедуру, описанную в методе № 1, для Windows или Linux. Обратите внимание, что для Windows адрес теперь будет, \\192.168.42.129@5000а для Linux — webdav://192.168.42.129:5000/.

Использование FTP-сервера Ultimate :

  1. Включите USB-модем .
  2. Запустите приложение FTP Server Ultimate .
  3. Перейти к Add -> FTP Server ->.
  4. Введите любое имя в поле Имя сервера . Выберите номер порта больше 1024, который вы помните (например, 6000), и введите его в поле « Выполнить на порту» .
  5. Снимите все опции. Вы можете выбрать автоматический запуск этого сервера при каждом запуске этого приложения. Для этого установите флажок Запускать сразу при запуске приложения . Точно так же выберите Respawn (автоматический перезапуск при сбое сервера) .
  6. Перейдите в раздел « Пользователи » (рядом с « Настройки » вверху), нажмите « Добавить » , оставьте поле « Имя пользователя » и « Пароль » пустыми и установите флажок « Автоматический доступ для записи » . Вы можете ограничить ПК, выбрав Принудительно оставаться в корневом каталоге документа .
  7. В корне документа выберите /способ №1.
  8. Нажмите Backклавишу один раз и выберите Да , чтобы сохранить настройки сервера.
  9. Нажмите один раз на только что созданную запись сервера и выберите Start/Stop . Вы получите диалоговое окно с информацией . Сервер запущен . Вы можете закрыть приложение (включая сервер), сдвинув влево множество значков в верхней части приложения и выбрав « Выход » . Обратите внимание, что без выбора Exit сервер будет продолжать работать, пока не будет остановлен явным образом.
  10. Теперь вы можете использовать процедуру, описанную в разделе для Linux. Обратите внимание, что для Windows теперь будет адрес, ftp://192.168.42.129:6000а для Linux — ftp://192.168.42.129:6000/. Чтобы сопоставить ftp в Windows, следуйте инструкциям шага 13.

Использование Servers Ultimate Pro : обратите внимание, что это приложение требует установки некоторых других пакетов (бесплатных).

  1. Включите USB-модем .
  2. Запустите приложение Servers Ultimate Pro .
  3. Зайдите в Серверы . Коснитесь +значка и прокрутите вниз, чтобы коснуться собственного FTP-сервера .
  4. Введите имя , выберите номер порта больше 1024, который вы можете запомнить (например, 2121).
  5. В разделе ПРОСЛУШИВАТЬ В СЕТЕВОМ ИНТЕРФЕЙСЕ выберите rndis0 -Ipv4 (192.168.42.129) .
  6. Установите флажок Запускать сразу при запуске приложения .
  7. В ЗАМКАХ установите флажок Включить блокировку WIFI .
  8. На верхней панели приложения перейдите к SPECIFIC и снимите все галочки, кроме Разрешить загрузку .
  9. В корне документа выберите /способ №1.
  10. Коснитесь значка дискеты, чтобы сохранить настройки.
  11. Коснитесь записи сервера один раз и выберите « Пуск» .
  12. Теперь вы можете использовать процедуру, описанную в Методе №1 для Linux. Обратите внимание, что для Linux сетевое расположение будет ftp://192.168.42.129:2121/.
  13. Для Windows выполните шаги 1–11 в Способе № 1. Для Windows .
  14. Щелкните Подключиться к веб-сайту, который можно использовать для хранения документов и изображений .
  15. Появятся новые окна с заголовком « Добавить сетевое расположение ». Щелкните Next -> Choose a custom network location -> Next.
  16. В разделе « Интернет или сетевой адрес » введите ftp://192.168.42.129:2121/sdcard/и нажмите «Далее » . Вы можете заменить SD-карту на хранилище .
  17. Установите флажок « Войти анонимно» и нажмите «Далее » . Введите имя, чтобы распознавать его в будущем, и нажмите « Далее» .
  18. Установите флажок Открыть это сетевое расположение, когда я нажму «Готово» и нажмите «Готово » . Появится новое окно с содержимым памяти вашего телефона.
  19. Шаг 14 метода № 1 применим и здесь.

Обратите внимание, что для сервера WebDav в Servers Ultimate Pro настройки аналогичны настройкам, описанным в вышеупомянутых процедурах в методе № 3.


О МТР-Альтернатива

Передача файлов через USB на ПК — без проблем с MTP.

Больше никаких проблем USB «Драйвер MTP не найден» или «Не удается найти мои файлы» — поддерживает как Windows, так и Ubuntu GNU/Linux!

«MTP-Alternative» разделяет хранилище этого устройства как «Диск» на компьютеры через USB-модем вместо стандартного метода передачи файлов Android «MTP» и позволяет избежать 3 распространенных проблем «MTP».

О сервере WebDav Ultimate

Бесплатный, безопасный и полный сервер WebDAV! Приложение поддерживает добавление нескольких пользователей, имеет поддержку WebDAV через SSL/TLS (HTTPS) и может быть настроено на автоматический запуск сервера WebDAV, когда ваше устройство подключено к определенной сети WIFI!

О FTP-сервере Ultimate

Бесплатный, безопасный и полный FTP-сервер для передачи файлов с помощью FTP-клиента. Приложение поддерживает добавление нескольких пользователей, имеет поддержку FTPS Implicit / SFTP / SCP и может быть настроено на автоматический запуск FTP-сервера, когда ваше устройство подключено к определенной сети WIFI!

О серверах Ultimate Pro

★★Управляйте более чем 60 серверами с более чем 70 протоколами!★★

Теперь вы можете запускать CVS, DC Hub, DHCP, UPnP, DNS, DDNS, eDonkey, электронную почту (POP3/SMTP), FTP-прокси, FTP, FTPS, FTPES, Flash Policy, Git, Gopher, HTTP Snoop, ICAP, IRC Bot , IRC, ISCSI, Icecast, LPD, балансировщик нагрузки, MQTT, Memcached, MongoDB, MySQL, NFS, NTP, клиент NZB, Napster, PHP, Lighttpd, PXE, переадресация портов, RTMP, удаленное управление, Rsync, SIP, SMB/CIFS , SMPP, SMS, Socks, SFTP, SSH, Server Monitor, Styx, Syslog, TFTP, Telnet, Time, Torrent Client, Torrent Tracker, Trigger, Unison, UPnP Port Mapper, VNC, VPN, Wake On Lan, Web, WebDAV, Сервер WebSocket, X11 и/или XMPP!


Примечание:

  1. WebDAV может ограничить размер файла до 4 гигабайт.
  2. Передача файлов через WebDav, включенная MTP-Alternative, была не очень быстрой и создала для меня размер кеша 800 МБ в Android.
  3. 2. проблема не возникала в Linux и работала без сбоев.
  4. Я предпочитаю Servers Ultimate Pro с собственным FTP-сервером. У меня он работает безупречно как на Windows, так и на Linux.
  5. Я использую только adb push|pullкоманды метода №2 для передачи данных. Он упоминается для покрытия общих опций в качестве альтернативы.
  6. Если у вас есть root-права, вы можете выполнить перенос в Servers Ultimate Pro.
  7. Могут быть методы, о которых я пока не знаю. Пожалуйста, опубликуйте их как ответ.
Все это ПУТЬ! слишком много работы для простой быстрой передачи файлов, это 2018 год!
@shinzou Приносим извинения за дискомфорт. Вы можете выразить свое сожаление Google, Microsoft и всем другим глупым ИТ-компаниям, которые все еще вынуждают нас использовать протокол sh*ful MTP или альтернативные решения, подобные приведенным выше. Если вы можете предложить более простое решение и дать какой-то ценный ответ, а не просто критиковать других, вы также можете написать свой собственный ответ.

Конечно есть. Просто комфорт отличается, в зависимости от того, на какой ОС вы работаете.

Я в основном использую для этого. В Linux вы даже можете смонтировать устройство таким образом. Есть также несколько adbграфических интерфейсов, если вы предпочитаете, например, кросс-платформенный QtADB. Или вы можете использовать командную строку:

# Copy a file to the Android device
adb push some.file.ext /mnt/sdcard/some.file.ext
# Grab one from the Android device
adb pull /mnt/sdcard/some.file.ext some.file.ext
# similar for an entire directory
adb pull /mnt/sdcard /local/folder

Просто следите за тем, чтобы типы на обоих концах соответствовали: либо оба являются именами файлов (как в первых двух примерах), либо оба являются каталогами (третий пример). Миксы не сработают.

Для удобной навигации (например ) используйте файл .lsadb shell

Если на вашем компьютере еще не установлен ADB: см. Существует ли минимальная установка ADB?

Есть даже некоторые файловые менеджеры, предлагающие для этого графический интерфейс. Возможно, вы захотите взглянуть на мой список приложений ADB для получения подробной информации; найти эти компьютерные программы в конце страницы.
Конечно, для отправки или извлечения одного файла , но что, если я просто хочу сделать резервную копию своего внутреннего хранилища :/
@Shayan Если вы имеете в виду «внутреннюю SD-карту»: последняя команда в моем ответе делает это. Если вы имеете в виду место, где приложения хранят свои данные ( /data/*), ваше устройство должно быть рутировано, а демон ADB должен работать в небезопасном режиме, чтобы получить это.

Да, вы можете попробовать найти «альтернатива mtp» в Google Play или посетить ее страницу ниже: https://play.google.com/store/apps/details?id=com.clearevo.mtp_alternative .

Требуется, чтобы USB-модем был включен, тогда это довольно просто.

После того, как мои друзья и я сами столкнулись с несколькими проблемами «Драйвер MTP не найден» и «Файл не отображается», я решил создать приложение под названием «MTP-Alternative», чтобы решить эту проблему.

Обычно я также использую adb для передачи файлов «технических данных» - это работает хорошо. Но когда я использую adb для отправки медиафайлов, таких как фотографии, музыка или видео, с ПК на Android — например, в /sdcard/Pictures/ или в /sdcard/Music/ — приложение Android Gallery и Music не будет их отображать, и оно выиграло не обновляться до перезагрузки (как Nexus 5, так и Galaxy Note 8). Используя «MTP Alternative», приложение «Галерея и музыка» мгновенно обновляло новые добавленные файлы без перезапуска. Кроме того, если на телефоне создается новый медиафайл или файл данных, простое нажатие «F5» в папке ПК обновит их, чтобы отобразить их.

Я успешно использовал это приложение для передачи 26 ГБ с моего телефона OPO под управлением 5.1.1 на мой ПК с Windows 8.1 x64. Однако он использует WebDAV и ограничивает размер каждого отдельного файла до 50 МБ (в противном случае будет создана ошибка «0x800700DF: размер файла превышает допустимый предел»). Чтобы увеличить лимит, следуйте инструкциям здесь: support.microsoft.com/en-us/kb/900900

Спустя 6 лет после того, как вы задали этот вопрос, найти альтернативу MTP по любой причине — в моем случае он сломан — все еще может быть проблемой. Я наткнулся на этот вопрос, и первый, очень богатый ответ @Firelord предлагает множество интересных решений, которые все еще жизнеспособны сегодня. Но, к сожалению, поскольку мой вариант использования был очень специфичным — возможность использовать быстрое, безопасное, независимое от беспроводной сети решение, которое почти обязательно подразумевает использование USB-кабеля для всех этих критериев, для управления файлами моего устройства — ничего из этого мне помогло: WebDAV не позволял мне управлять файлами (переименовывать, перемещать, удалять их), FTP не мог работать без беспроводной сети, и я не мог заставить работать adbfs из-за невозможности эффективно установить состояние adbd и перемонтировать систему моего телефона наrwблагодаря Magisk (который сейчас является решением для рутинга для большинства телефонов Android).

К счастью, после многих часов я нашел жизнеспособное решение, которое выполняет все, что я искал, и это благодаря очень небольшому упоминанию в первом сообщении. Для краткого ответа: используйте SFTP (SSH) и adb

Для длинного ответа, вот как я поступил ниже. (Примечание: на момент написания я искал решение для моей установки GNU/Linux Ubuntu 20.04, которое должно читать файлы устройства Android 8.1. Пользователям Windows придется адаптировать этот метод для своей среды, но логика то же самое, и в любом случае у них может не быть особых проблем в эти дни)

  1. Установите решение SSH-сервера на свой телефон. Вы можете запустить и настроить его через Termux, если вы чувствуете себя предприимчивым, но я хотел, чтобы что-то работало прямо из коробки без необходимости много настраивать, поэтому вместо этого я установил приложение под названием SimpleSSHD.

  2. Настройте свое решение. Для SimpleSSHD я просто зашел в « Настройки» — «Пути» — «Домашний каталог » и изменил домашний каталог на /storage/emulated/0. Он будет работать, когда вы запускаете приложение, только если вы предоставили ему разрешение на доступ к файлам, которое в любом случае запрашивается при первом запуске. После этого запустите службу.

  3. (Необязательно) Отключите доступ к беспроводному интерфейсу решения. Я не хотел, чтобы кто-то получал доступ к моему SSH-серверу извне, поэтому я зашел в настройки приложения и запретил ему доступ к Wi-Fi и мобильным данным. Изменение метода в зависимости от вашего решения и ограничения средств, очевидно

  4. Свяжите сервер устройства с вашей машиной, используя переадресацию портов. В настройках приложения по умолчанию в качестве порта использовался 2222, а поскольку порт 2222 моей машины не использовался, я не стал задумываться и использовал то же самое. Итак, я сделал переадресацию с помощью этой adbкоманды:adb forward tcp:2222 tcp:2222

  5. Почти сделано! Теперь вам нужно открыть свой любимый (удаленный) файловый менеджер и подключиться к совместному использованию файлов SFTP вашего SSH-сервера. Я использовал Nemo для этого и просто набрал в адресной строке sftp://127.0.0.1:2222/. Это вызовет диалоговое окно входа в систему. Я был ленив и ничего не настраивал, так как это было только для тестирования, поэтому с приложением мне пришлось входить в систему с именем пользователя userи одноразовым паролем, которое приложение сгенерировало и вывело.

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

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

Еще одним преимуществом этого решения является то, что оно работает даже тогда, когда USB-модем не работает. Только что разработал это точное решение, только с SSH scpи rsyncчерез SSH вместо SFTP.
Это отличный ответ, но не могли бы вы объяснить эту часть немного подробнее ... «так что с приложением мне пришлось входить в систему с именем пользователя userи одноразовым паролем, которое приложение сгенерировало и вывело»? В магазине Play говорится: «[SimpleSSHD] поддерживает только аутентификацию на основе открытого ключа (без пароля/интерактивной аутентификации)».
Хорошо, извините, я не смотрел на экран своего телефона — я вижу, что приложение SimpleSSHD генерирует и отображает этот одноразовый пароль. Однако всякий раз, когда я ввожу его на своем компьютере, мой SFTP-клиент сообщает мне, что я ввел неверный пароль. Приложение SimpleSSHD показывает «Неверная попытка ввода пароля для пользователя с 127.0.0.1:57318». Я не уверен, откуда взялся этот порт 57318 и имеет ли он значение. Откуда мы знаем, что имя пользователя «пользователь» правильное? Кроме того, непосредственно перед тем, как SimpleSSHD выводит сообщение о попытке ввода неверного пароля, генерируется и отображается новый другой одноразовый пароль, что кажется странным.
Хорошо, похоже... мой SFTP-клиент инициирует соединение, SimpleSSHD генерирует одноразовый пароль, но мой клиент пытается установить начальное соединение без пароля, и к тому времени, когда я ввожу пароль в свой клиент, единственный Срок действия пароля уже истек. Это просто какая-то аномалия, уникальная для моего SFTP-клиента. Я постараюсь узнать authorized_keysи посмотреть, смогу ли я заставить это работать
Наконец-то это заработало. Просто собираюсь опубликовать комментарий на случай, если это поможет ... Я использовал базовый SFTP-клиент с командной строкой, чтобы получить файл author_keys (сгенерированный PuTTYgen) на телефон в месте, указанном в настройках SimpleSSHD, но каждый раз, когда я пытался connect, я получил «Отказано в доступе (publickey)». Я думал, что это может быть проблема с разрешениями Unix для author_keys, но сначала я взглянул на содержимое самого файла. Я не был уверен, что я должен увидеть, но погуглив, я узнал, что мой файл был неправильно отформатирован. Получил правильный формат здесь

Я использую adbпод Ubuntu 16.04.

Это значительно быстрее, чем MTP (не засекал, но я бы сказал примерно в 15 раз).

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

https://www.howtogeek.com/125769/how-to-install-and-use-abd-the-android-debug-bridge-utility/

https://www.xda-developers.com/install-adb-windows-macos-linux/

Я использовал практически все варианты без полномочий root, будь то webdav, ssh, sftp. В конце концов, самый быстрый способ для меня синхронизировать более 200 ГБ фотографий и видео — это использоватьadb-sync

https://github.com/google/adb-sync
, и в python3 есть новая переработка
https://github.com/SelfAdjointOperator/better-adb-sync