Как передавать файлы между Android и Linux
В настоящее время многие дружественные к пользователю дистрибутивы уже настроены на загрузку файлов на телефон Android с Linux и для скачивания фотографий и любых других файлов с телефона на Linux. Поэтому достаточно подключить телефон к компьютеру по USB кабелю, затем в телефоне разрешить обмен данными по USB и в Linux вы увидите содержимое телефона, а также его карты памяти прямо в файловом менеджере (проводнике).
Тем не менее эта функциональность присутствует не на всех версиях Linux, либо вы можете столкнуться с проблемами, что что-то не работает. Эта инструкция поможет вам настроить с нуля обмен файлами между Android и Linux, а также разобраться в возможных проблемах, почему Linux не видит телефон.
Linux не видит Android телефон
Если вы подключили Android телефон к Linux, но ничего не происходит и, в особенности, телефон не спрашивает разрешение на передачу данных, то начните с самого простого — попробуйте использовать другой USB провод. Некоторые кабели просто не способны передавать данные, так как там отсутствуют необходимые для этого контакты. Также выполните такие простые действия как перезагрузка компьютера и перезагрузка телефона.
Если там будет показано что-то вроде:
То есть если будет строка «No raw devices found.», значит нужно обратить внимание на кабель.
Если появится сообщение об ошибке (команда не найдена), то в Debain и производных (Ubuntu, Linux Mint, Kali Linux) установите необходимые пакеты:
В Arch Linux и производных:
Передача файлов с/на телефон без провода
Прежде всего, отметим, что вам не нужен USB для передачи файлов с телефона и на телефон. Вы можете передавать файлы с/на Android устройства используя Wi-Fi сеть вашего устройства — то есть вам не нужно настраивать роутер или что-то ещё. Просто установите приложение Airdroid на ваше устройство Android. Затем активируйте Мобильную точку доступа Wi-Fi на вашем устройстве и откройте программу Airdroid.
Теперь с вашего компьютера подключитесь к точке доступа, которую создал ваш телефон. На компьютере в любом веб-браузере откройте URL адрес, которую вам даст Airdroid. Будут запрошены разрешения, нажмите Подключить.
Вот и всё! Работает на любом операционной системе, у которой есть веб-браузер, то есть везде.
Настройка автоматического подключения телефона
В настоящее время окружения рабочего стола сами монтируют телефон при его подключению к Linux. Если этого не происходит, значит не хватает каких-то необходимых пакетов.
В Debain и производные (Ubuntu, Linux Mint, Kali Linux) проверьте и, в случае отсутствия, устаовите:
В Arch Linux и производных установите:
Обратите внимание, что в репозиториях Arch Linux также присутствует пакет fuse3 — можете попробовать установить его вместо fuse2.
Подключите телефон к компьютеру и на телефоне разрешить обмен данными:
Если установка пакетов не помогла, попробуйте перезагрузить компьютер, также проверьте файл fuse.conf:
Найдите строку с #user_allow_other и убедитесь, что она раскомментирована, то есть выглядит так:
Настройка автоматического монтирования флешек телефона
Если вы отключили автоматическое монтирование устройств на уровне системы, то вы можете настроить автоматическое монтирования телефона с помощью правил udev.
В выводе команды mtp-detect найдите значение idVendor и idProduct.
Можно использовать следующие команды для ускорения процесса
Создайте файл с udev правилом:
в нём разместите следующее содержимое:
К примеру, мои данные:
Тогда моё правило выглядит так:
Чтобы это правило вступило в силу без перезагрузки компьютера выполните:
Отредактируйте файл fuse.conf:
Найдите строку с #user_allow_other и раскомментируйте её, чтобы получилось:
Использование Android в связке с Linux
Дистрибутивы Linux и Android не просто родственные операционные системы — они вообще основаны на одном ядре и на низком уровне очень схожи. В Андроид работает большая часть команд Linux, в него можно установить командную оболочку bash, делать скрипты и даже запускать серверы. Установив SSH Android-устройство, вы сможете заходить на него с компьютера и даже использовать rsync для синхронизации файлов. Сегодня мы поговорим обо всех этих трюках, о которых должен знать каждый юниксоид владелец смартфона.
ADB — управление Android с Linux
Начнем с излюбленного инструмента всех продвинутых пользователей Android — ADB. Мы уже много раз писали о нем, однако здесь просто обязаны повториться. Итак, ADB расшифровывается как Android Debug Bridge, и по сути это нечто вроде системы управления смартфоном с компа. ADB позволяет устанавливать и запускать софт, перемещать файлы с устройства и на устройство и выполнять многие другие задачи.
Чтобы правильно настроить ADB в Windows, пришлось бы устанавливать драйверы и перезагружать систему, в Linux он просто работает. Все что необходимо сделать — это активировать ADB на смартфоне. Делает это в меню (Настройки → Для разработчиков → Отладка по USB) и установить пакет с утилитой adb в систему:
После чего надо подключить телефон к компу и начать отдавать команды.
Получить список подключенных устройств:
Установить на подключенное устройство APK:
Переместить файл на устройство:
Скачать файла с устройства:
Создать скрин экрана и скачать его на компьютер:
Нажать кнопку Power:
Ну и самое важное, утилиту ADB можно использовать для получения доступа к командной строке телефона:
Важно отметить, что утилита ADB может работать не только по USB, но и по Wi-Fi, но для этого необходимы права root на устройстве и приложение WiFi ADB. Запускаем приложение, включаем переключатель и конектимся к телефону с помощью adb connect и показанного приложением IP-адреса:
На некоторых дистрибутивах для работы ADB может потребоваться root. Это происходит из-за отсутствия специальных правил Udev в дистрибутиве. Придется либо устанавливать их как отдельный пакет ( android-udev в Arch Linux), либо самостоятельно настраивать Udev.
Adb-sync — синхронизация файлов между устройствами
ADB можно использовать и для синхронизации файлов между устройствами (для этого даже есть опция sync ), однако удобнее воспользоваться скриптом adb-sync. Его достаточно скачать и запустить. Например, так можно синхронизировать музыку на устройстве и на ПК:
/ Music / / sdcard / Music
А так выполнить ту же синхронизацию, но с удалением файлов, которые были удалены на ПК:
/ Music / / sdcard / Music
Простой способ скачать файлы на комп (обратная синхронизация):
Adbfs — получение доступа к файлам
Еще один интересный способ получить доступ к файлам на устройстве с помощью ADB — использовать adbfs, псевдоФС, которая позволяет смонтировать устройство так, будто это флешка или любой другой накопитель.
Проще всего установить adbfs в Arch Linux. Здесь она есть в AUR, поэтому достаточно выполнить одну команду:
В Ubuntu и других системах adbfs придется собирать вручную:
Ну а дальше можно подключать файловую систему:
Go-mtpfs — передача данных по протоколу MTP
Еще один вариант подключения устройства как файловой системы — go-mtpfs, файловая система, позволяющая передавать данные по протоколу MTP. Именно этот протокол используется в смартфонах без карты памяти.
В Arch Linux установить go-mtpfs очень просто:
В других дистрибутивах несколько сложнее:
Дальше все так же элементарно, как с adbfs:
Идея использовать ADB для общения с устройством может показаться странной, если учитывать, что для Android существует сразу несколько различных SSH-серверов, не требующих права root. Так оно и есть, во многих случаях SSH будет удобнее и эффективнее. В качестве реализации сервера советую выбрать SimpleSSHD, простую бесплатную обертку для проверенного временем SSH-сервера DropBear для встраиваемых систем. Если у вас есть root, то рекомендую также установить BusyBox On Rails, набор утилит командной строки, наиболее близкий к дистрибутивам Linux.
Использовать SimpleSSHD очень просто. Запускаете, нажимаете START и подключаетесь к указанному IP-адресу (порт 2222):
В момент подключения на экране появится одноразовый пароль, который следует указать в клиенте. Это не очень удобный способ аутентификации, но вы можете настроить аутентификацию по ключам. Просто переименуйте свой открытый ключ (
/.ssh/id_rsa.pub ) в authorized_keys и положите в каталог ssh на карте памяти смартфона.
Использование Android с Linux. SimpleSSHD
Bash, tmux, mc
SSH-сервер на смартфоне сам по себе открывает широкие возможности, но еще шире их можно сделать, если установить на смартфон классические инструменты, такие как bash, tmux и mc. Последний позволит в том числе с удобством ходить по карте памяти и прибраться в случае необходимости.
О том, как установить на смартфон bash, tmux, mc и nano, я уже рассказывал, но позволю себе повториться. И сразу предупрежу, что вам потребуются права root на смартфоне.
Итак, скачиваем Terminal IDE , переименовываем пакет APK в ZIP, распаковываем, находим файл assets/system-2.0.tar.gz.mp3 , переименовываем, убирая расширение mp3, и распаковываем. Внутри будет множество каталогов и файлов, из которых нас интересуют только system/bin и system/etc/terminfo . Первый содержит нужные нам утилиты; скопируй те, что тебе пригодятся, в отдельный каталог. Второй необходим для корректного функционирования утилит.
Выбранные утилиты и каталог terminfo скинь на карту памяти смартфона. Затем подключись к нему по SSH и введи следующие команды, чтобы получить возможность модификации системного каталога: