Поскольку в последних версиях (ICS+?) больше нет запоминающих устройств, есть ли жизнеспособная альтернатива MTP?
Протокол кажется нарушенным по своей сути, и решение вернуться к этому формату кажется очень «iphone-esque» ходом (отупить, лишить пользователей власти).
Кажется, существует множество проблем (например) с тем, что файлы не отображаются, и мне кажется, что передача файла должна быть проще, чем требовать перезагрузки системы - я необоснованно требую этого.
Я знаю о таких инструментах, как передача файлов по Wi-Fi, но часто оказываюсь в местах, где нет Wi-Fi, имея только ноутбук, телефон и USB-кабель. На днях, например, я был в самолете, что явно не способствует использованию беспроводной системы.
Следующие методы протестированы в 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, нажмите Готово .
( Источник )
Этот метод использует USB-модем и приложение для доступа к памяти телефона.
Процедура :
Для Windows :
- Убедитесь, что у вас есть права администратора. Загрузите и установите это обновление Microsoft .
- Служба WebClient должна быть включена для доступа к сетевой папке. Чтобы узнать статус службы, нажмите
+ , Rчтобы открыть диалоговое окно «Выполнить». Введите
services.msc
и нажмите OK . Откроется окно Службы со списком служб.Прокрутите вниз, чтобы увидеть WebClient , и проверьте соответствующий тип запуска . Если он не отключен , закройте окно. Если это так, то сделайте
Right-Click -> Properties -> General -> Startup Type -> Automatic -> Apply -> OK
. Вы также можете выбрать «Вручную» вместо « Автоматически », чтобы избавить систему от перегрузки при запуске.Теперь нажмите
+ R, введите
regedit
и нажмите OK `, выберите Да , и откроется окно редактора реестра .На панели инструментов щелкните
Edit -> Find
. В диалоговом окне, соответствующем полю Find What , введитеWebClient
. Снимите флажок « Значения и данные » или в противном случае отметьте только «Ключи » ниже . Посмотрите на . Нажмите « Найти далее» . Он выполнит поиск и должен показать уже выбранную запись. Убедитесь, что (на нижней панели) расположение выбранной записи
Computer/HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\WebClient
.В записи WebClient щелкните стрелку вправо, чтобы получить доступ к ее содержимому.
- Щелкните Параметры . С правой стороны нажмите
BasicAuthLevel -> Modify
. В поле « Значение » измените значение на2
и нажмите « ОК » .- Если записи BasicAuthLevel не было, создайте ее, щелкнув правой кнопкой мыши пустое пустое пространство, выберите
DWORD (32-bit) Value
и назовите ееBasicAuthLevel
. Выполните шаг 7.- Перезагрузите систему сейчас, чтобы все изменения вступили в силу. Вам нужно будет открыть приложение MTP-Alternative, чтобы снова подключить телефон к ПК.
- Чтобы сопоставить память телефона, откройте Мой компьютер .
- Под адресной строкой нажмите Подключить сетевой диск .
- В соответствующем поле « Папка » введите
\\192.168.42.129@8081
и нажмите « Готово » . Откроется окно с содержимым/
каталога вашего телефона.- Если у вас есть только внутренняя [SD-карта] в смартфоне, введите
sdcard
папку. В противном случае введитеstorage
папку и войдите в желаемое хранилище.- Вы можете получить доступ к этому сетевому диску в формате
My Computer -> Network Location
. Вы также можете переименовать этот диск, выполнив действияRight-Click -> Rename
над диском, введите имя и нажмите Enter. Обратите внимание, что диск не будет доступен, если смартфон с вышеуказанными инструкциями не подключен к ПК.(Источник: ykasidit , Yeehawup , MTP-Alternative )
Для Ubuntu (Linux) с KDE 4.1x :
Add Network Folder -> WebFolder (webdav)
.192.168.42.129
в поле « Сервер », введите 8081
в поле « Порт » . Как и в шаге 13 ОС Windows, введите /sdcard/
или /storage/
в поле « Расположение », установите флажок «Создать и значок» для этой удаленной папки и нажмите « Сохранить и подключить » . Теперь откроется окно с содержимым хранилища.Places -> Network ->
Name
где находится имя из шага 3. Вы также можете закрепить эту папку в Places , выполнив над этой папкой Right-click -> Add to Places
.Этот метод использует интерфейс ADB для доступа к памяти вашего телефона. Многие пользователи уже подробно рассмотрели его, и некоторые ответы можно найти здесь . Короче говоря, ниже приведены инструкции, взятые из некоторых ответов пользователей Android Enthusiasts.
На самом деле нет необходимости устанавливать весь 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.
Дальнейшие чтения
- Все об ADB ( ссылка для всех на XDA Developers)
- ADB для чайников (снова доступен через XDA Developers. Если вы пропустили руководства, как я сначала: первая статья состоит только из ссылок, как бы красочно они ни выглядели :))
- Краткое руководство Android 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
любое время, когда вам нужно записать туда (я не рекомендую оставлять эти разделы в постоянном режиме чтения/записи), например, выдав amount -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 .
( Источник )
Этот метод использует приложение и USB-модем. Этот метод имеет корни в этом ответе (в этом ответе упоминаются только возможности, но не фактическое использование в шагах).
Процедура :
Izzy
здесь или выбрать их , а именно : WebDav , FTP , Samba , SSH , Multifarious . Google — ваш друг, если ни один из них не помогает.Использование WebDav Server Ultimate :
Add -> WebDAV Server ->
./
способ №1.\\192.168.42.129@5000
а для Linux — webdav://192.168.42.129:5000/
.Использование FTP-сервера Ultimate :
Add -> FTP Server ->
./
способ №1.ftp://192.168.42.129:6000
а для Linux — ftp://192.168.42.129:6000/
. Чтобы сопоставить ftp в Windows, следуйте инструкциям шага 13.Использование Servers Ultimate Pro : обратите внимание, что это приложение требует установки некоторых других пакетов (бесплатных).
+
значка и прокрутите вниз, чтобы коснуться собственного FTP-сервера ./
способ №1.ftp://192.168.42.129:2121/
.Next -> Choose a custom network location -> Next
.ftp://192.168.42.129:2121/sdcard/
и нажмите «Далее » . Вы можете заменить SD-карту на хранилище .Обратите внимание, что для сервера WebDav в Servers Ultimate Pro настройки аналогичны настройкам, описанным в вышеупомянутых процедурах в методе № 3.
Передача файлов через USB на ПК — без проблем с MTP.
Больше никаких проблем USB «Драйвер MTP не найден» или «Не удается найти мои файлы» — поддерживает как Windows, так и Ubuntu GNU/Linux!
«MTP-Alternative» разделяет хранилище этого устройства как «Диск» на компьютеры через USB-модем вместо стандартного метода передачи файлов Android «MTP» и позволяет избежать 3 распространенных проблем «MTP».
Бесплатный, безопасный и полный сервер WebDAV! Приложение поддерживает добавление нескольких пользователей, имеет поддержку WebDAV через SSL/TLS (HTTPS) и может быть настроено на автоматический запуск сервера WebDAV, когда ваше устройство подключено к определенной сети WIFI!
Бесплатный, безопасный и полный FTP-сервер для передачи файлов с помощью FTP-клиента. Приложение поддерживает добавление нескольких пользователей, имеет поддержку FTPS Implicit / SFTP / SCP и может быть настроено на автоматический запуск FTP-сервера, когда ваше устройство подключено к определенной сети WIFI!
★★Управляйте более чем 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!
adb push|pull
команды метода №2 для передачи данных. Он упоминается для покрытия общих опций в качестве альтернативы.Конечно есть. Просто комфорт отличается, в зависимости от того, на какой ОС вы работаете.
Я в основном использую adb для этого. В 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
Просто следите за тем, чтобы типы на обоих концах соответствовали: либо оба являются именами файлов (как в первых двух примерах), либо оба являются каталогами (третий пример). Миксы не сработают.
Для удобной навигации (например ) используйте файл .ls
adb shell
Если на вашем компьютере еще не установлен ADB: см. Существует ли минимальная установка ADB?
/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» в папке ПК обновит их, чтобы отобразить их.
Спустя 6 лет после того, как вы задали этот вопрос, найти альтернативу MTP по любой причине — в моем случае он сломан — все еще может быть проблемой. Я наткнулся на этот вопрос, и первый, очень богатый ответ @Firelord предлагает множество интересных решений, которые все еще жизнеспособны сегодня. Но, к сожалению, поскольку мой вариант использования был очень специфичным — возможность использовать быстрое, безопасное, независимое от беспроводной сети решение, которое почти обязательно подразумевает использование USB-кабеля для всех этих критериев, для управления файлами моего устройства — ничего из этого мне помогло: WebDAV не позволял мне управлять файлами (переименовывать, перемещать, удалять их), FTP не мог работать без беспроводной сети, и я не мог заставить работать adbfs из-за невозможности эффективно установить состояние adbd и перемонтировать систему моего телефона наrw
благодаря Magisk (который сейчас является решением для рутинга для большинства телефонов Android).
К счастью, после многих часов я нашел жизнеспособное решение, которое выполняет все, что я искал, и это благодаря очень небольшому упоминанию в первом сообщении. Для краткого ответа: используйте SFTP (SSH) и adb
Для длинного ответа, вот как я поступил ниже. (Примечание: на момент написания я искал решение для моей установки GNU/Linux Ubuntu 20.04, которое должно читать файлы устройства Android 8.1. Пользователям Windows придется адаптировать этот метод для своей среды, но логика то же самое, и в любом случае у них может не быть особых проблем в эти дни)
Установите решение SSH-сервера на свой телефон. Вы можете запустить и настроить его через Termux, если вы чувствуете себя предприимчивым, но я хотел, чтобы что-то работало прямо из коробки без необходимости много настраивать, поэтому вместо этого я установил приложение под названием SimpleSSHD.
Настройте свое решение. Для SimpleSSHD я просто зашел в « Настройки» — «Пути» — «Домашний каталог » и изменил домашний каталог на /storage/emulated/0
. Он будет работать, когда вы запускаете приложение, только если вы предоставили ему разрешение на доступ к файлам, которое в любом случае запрашивается при первом запуске. После этого запустите службу.
(Необязательно) Отключите доступ к беспроводному интерфейсу решения. Я не хотел, чтобы кто-то получал доступ к моему SSH-серверу извне, поэтому я зашел в настройки приложения и запретил ему доступ к Wi-Fi и мобильным данным. Изменение метода в зависимости от вашего решения и ограничения средств, очевидно
Свяжите сервер устройства с вашей машиной, используя переадресацию портов. В настройках приложения по умолчанию в качестве порта использовался 2222, а поскольку порт 2222 моей машины не использовался, я не стал задумываться и использовал то же самое. Итак, я сделал переадресацию с помощью этой adb
команды:adb forward tcp:2222 tcp:2222
Почти сделано! Теперь вам нужно открыть свой любимый (удаленный) файловый менеджер и подключиться к совместному использованию файлов SFTP вашего SSH-сервера. Я использовал Nemo для этого и просто набрал в адресной строке sftp://127.0.0.1:2222/
. Это вызовет диалоговое окно входа в систему. Я был ленив и ничего не настраивал, так как это было только для тестирования, поэтому с приложением мне пришлось входить в систему с именем пользователя user
и одноразовым паролем, которое приложение сгенерировало и вывело.
Сначала у меня была странная ошибка, из-за которой мне было отказано в подключении, но после того, как я щелкнул новую запись сети в Nemo, которую я создал с логином, у меня наконец появился доступ.
Вуаля, теперь вы можете безопасно просматривать и управлять внутренней памятью вашего телефона с приличной скоростью, без надоедливой ошибки, связанной с тем, что ваши новые файлы не отображаются без перезагрузки — вам все равно нужно обновить свой файловый менеджер.
scp
и rsync
через SSH вместо SFTP.user
и одноразовым паролем, которое приложение сгенерировало и вывело»? В магазине Play говорится: «[SimpleSSHD] поддерживает только аутентификацию на основе открытого ключа (без пароля/интерактивной аутентификации)».authorized_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
Чиро Сантилли OurBigBook.com