Ubuntu синхронизация с android
В настоящее время многие дружественные к пользователю дистрибутивы уже настроены на загрузку файлов на телефон Android с Linux и для скачивания фотографий и любых других файлов с телефона на Linux. Поэтому достаточно подключить телефон к компьютеру по USB кабелю, затем в телефоне разрешить обмен данными по USB и в Linux вы увидите содержимое телефона, а также его карты памяти прямо в файловом менеджере (проводнике).
Тем не менее эта функциональность присутствует не на всех версиях Linux, либо вы можете столкнуться с проблемами, что что-то не работает. Эта инструкция поможет вам настроить с нуля обмен файлами между Android и Linux, а также разобраться в возможных проблемах, почему Linux не видит телефон.
Linux не видит Android телефон
Если вы подключили Android телефон к Linux, но ничего не происходит и, в особенности, телефон не спрашивает разрешение на передачу данных, то начните с самого простого — попробуйте использовать другой USB провод. Некоторые кабели просто не способны передавать данные, так как там отсутствуют необходимые для этого контакты. Также выполните такие простые действия как перезагрузка компьютера и перезагрузка телефона.
Если там будет показано что-то вроде:
То есть если будет строка «No raw devices found.», значит нужно обратить внимание на кабель.
В Arch Linux и производных:
Передача файлов с/на телефон без провода
Прежде всего, отметим, что вам не нужен USB для передачи файлов с телефона и на телефон. Вы можете передавать файлы с/на Android устройства используя Wi-Fi сеть вашего устройства — то есть вам не нужно настраивать роутер или что-то ещё. Просто установите приложение Airdroid на ваше устройство Android. Затем активируйте Мобильную точку доступа Wi-Fi на вашем устройстве и откройте программу Airdroid.
Теперь с вашего компьютера подключитесь к точке доступа, которую создал ваш телефон. На компьютере в любом веб-браузере откройте URL адрес, которую вам даст Airdroid. Будут запрошены разрешения, нажмите Подключить.
Вот и всё! Работает на любом операционной системе, у которой есть веб-браузер, то есть везде.
Настройка автоматического подключения телефона
В настоящее время окружения рабочего стола сами монтируют телефон при его подключению к Linux. Если этого не происходит, значит не хватает каких-то необходимых пакетов.
В Debain и производные (Ubuntu, Linux Mint, Kali Linux) проверьте и, в случае отсутствия, устаовите:
- libmtp9
- fuse
- gvfs
- gvfs-fuse
- gvfs-backends
В Arch Linux и производных установите:
Обратите внимание, что в репозиториях Arch Linux также присутствует пакет fuse3 — можете попробовать установить его вместо fuse2.
Подключите телефон к компьютеру и на телефоне разрешить обмен данными:
Если установка пакетов не помогла, попробуйте перезагрузить компьютер, также проверьте файл fuse.conf:
Настройка автоматического монтирования флешек телефона
Если вы отключили автоматическое монтирование устройств на уровне системы, то вы можете настроить автоматическое монтирования телефона с помощью правил udev.
В выводе команды mtp-detect найдите значение idVendor и idProduct.
Можно использовать следующие команды для ускорения процесса
Создайте файл с udev правилом:
в нём разместите следующее содержимое:
К примеру, мои данные:
Тогда моё правило выглядит так:
Чтобы это правило вступило в силу без перезагрузки компьютера выполните:
Отредактируйте файл fuse.conf:
KDE Connect позволяет обмениваться данными между вашим Linux и Android / Blackberry устройством. Используя KDE Connect, Вы сможете получать уведомления с вашего телефона прямо на Ваш рабочий стол Linux, или наоборот, использовать андроид устройство как пульт дистанционного управления для вашего рабочего стола Linux.
KDE Connect использует защищенный протокол связи для того, чтобы обеспечить безопасность. Также KDE Connect позволяет разработчикам создавать плагины. Сейчас доступны клиенты KDE Connect для Android и Blackberry устройств, вскоре появятся и для iPhone.
Значит для смартфона данное приложение ищите в магазине приложений.
KDE Connect является инструментом для интеграции рабочего стола компьютера со смартфоном, который стремятся встроиться в любые системы, используя libappindicator.
Функции KDE Connect объединяющие ваш телефон и компьютер:
- Общий доступ к файлам и веб-сайтам из любого приложения без проводов.
- Легко как скачивать так и загружать файлы на смартфон
- Сенсорная панель эмуляции: Используйте экран телефона в качестве сенсорной панели для вашего компьютера.
- Синхронизация уведомлений (4.3+): читайте свои Android уведомления на рабочем столе Linux.
- Общий буфер обмена: копирование и вставка между телефоном и компьютером.
- Пульт дистанционного управления мультимедиа: Используйте телефон в качестве пульта ДУ для Linux медиа-плееров.
- WiFi соединение: не нужен USB провод или Bluetooth соединение.
- RSA шифрование: ваша информация в безопасности.
KDE Connect доступен для Ubuntu 15.04 Vivid/14.10 Utopic/14.04 Trusty/Linux Mint 17.1/17/ и других производных Ubuntu.
Чтобы установить KDE Connect и индикатор в Ubuntu / Linux Mint откройте терминал (нажмите Ctrl + Alt + T), и выполните следующие команды:
Если вы хотите, чтобы KDE Connect запускалась при старте системы, введите следующую команду в терминале:
Для Android KDE Connect можно найти как в магазине Play Google, так и в магазине исключительно бесплатных приложений F-Droid.
После чего надо подключить телефон к компу и начать отдавать команды.
Получить список подключенных устройств:
Установить на подключенное устройство APK:
Переместить файл на устройство:
$ adb pull / sdcard / DCIM / Camera / photo . jpg photo . jpgСоздать скрин экрана и скачать его на компьютер:
Нажать кнопку Power:
Ну и самое важное, утилиту ADB можно использовать для получения доступа к командной строке телефона:
Важно отметить, что утилита ADB может работать не только по USB, но и по Wi-Fi, но для этого необходимы права root на устройстве и приложение WiFi ADB. Запускаем приложение, включаем переключатель и конектимся к телефону с помощью adb connect и показанного приложением IP-адреса:
На некоторых дистрибутивах для работы ADB может потребоваться root. Это происходит из-за отсутствия специальных правил Udev в дистрибутиве. Придется либо устанавливать их как отдельный пакет ( android-udev в Arch Linux), либо самостоятельно настраивать Udev.
ADB можно использовать и для синхронизации файлов между устройствами (для этого даже есть опция sync ), однако удобнее воспользоваться скриптом adb-sync. Его достаточно скачать и запустить. Например, так можно синхронизировать музыку на устройстве и на ПК:
/ Music / / sdcard / Music
А так выполнить ту же синхронизацию, но с удалением файлов, которые были удалены на ПК:
/ Music / / sdcard / Music
Простой способ скачать файлы на комп (обратная синхронизация):
Еще один интересный способ получить доступ к файлам на устройстве с помощью ADB — использовать adbfs, псевдоФС, которая позволяет смонтировать устройство так, будто это флешка или любой другой накопитель.
Проще всего установить adbfs в Arch Linux. Здесь она есть в AUR, поэтому достаточно выполнить одну команду:
В Ubuntu и других системах adbfs придется собирать вручную:
$ sudo apt - get install libfuse - dev android - tools - adbНу а дальше можно подключать файловую систему:
Еще один вариант подключения устройства как файловой системы — 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 и введи следующие команды, чтобы получить возможность модификации системного каталога:
Начнем с излюбленного инструмента всех продвинутых пользователей 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-адреса:
WARNING
В некоторых дистрибутивах ADB может не работать без прав root. Так происходит из-за отсутствия специальных правил Udev в дистрибутиве. Придется либо устанавливать их как отдельный пакет ( android-udev в Arch Linux), либо настраивать Udev самостоятельно.
Adb-sync
ADB можно использовать и для синхронизации файлов между устройствами (для этого даже есть опция sync ), однако удобнее воспользоваться скриптом adb-sync. Его достаточно скачать и запустить. Например, так можно синхронизировать музыку на устройстве и на ПК:
А так выполнить ту же синхронизацию, но с удалением файлов, которые были удалены на ПК:
Простой способ скачать файлы на комп (обратная синхронизация):
Adbfs
Еще один интересный способ получить доступ к файлам на устройстве с помощью ADB — использовать adbfs, псевдоФС, которая позволяет смонтировать устройство так, будто это флешка или любой другой накопитель.
Проще всего установить adbfs в Arch Linux. Здесь она есть в AUR, поэтому достаточно выполнить одну команду:
В Ubuntu и других системах adbfs придется собирать вручную:
Ну а дальше можно подключать файловую систему:
Go-mtpfs
Еще один вариант подключения устройства как файловой системы — 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 на карте памяти смартфона.
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 и введи следующие команды, чтобы получить возможность модификации системного каталога:
Далее скопируй все нужные утилиты в /system/xbin/ и установи на них бит исполнения (на примере bash):
Затем создай файл /sdcard/ssh/.bashrc , помести в него следующие строки:
Открой настройки SimpleSSHD на смартфоне и в опции Login Shell укажи /system/xbin/bash , останови и вновь запусти сервер. При следующем входе по SSH откроется bash и будут доступны скопированные тобой утилиты.
Чтобы добиться корректной работы Vim и mc, скопируй на карту памяти также каталоги etc/mc и etc/vim , а в файл /sdcard/ssh/.bashrc добавь строки:
Midnight commander, запущенный в Android
Rsync
SSH-сервер дает нам возможность использовать rsync, мощную утилиту для синхронизации и бэкапа файлов. Rsync позволяет осуществлять быструю двунаправленную синхронизацию файлов между двумя машинами (или машиной и смартфоном, как в нашем случае) с выкачиванием только новых и измененных файлов и возможностью возобновления прерванной синхронизации.
Простейший пример использования rsync в связке со смартфоном:
Эта команда скопирует все фотографии со смартфона в каталог
/Photos , пропустив те, что уже есть в каталоге. Связка опций -azv в данном случае означает, что каталог необходимо передать как есть со всеми его подкаталогами и правами доступа (флаг -a ) плюс использовать сжатие (флаг -z ).
Обратная команда — копирование данных с машины на смартфон:
Здесь мы использовали флаг --delete , чтобы удалить файлы, которые были удалены из локального каталога
По умолчанию при обрыве соединения rsync будет удалять частично переданные файлы. Чтобы этого избежать, можно использовать флаг --partial , который заставит rsync сохранять недокачанные файлы и возобновить их загрузку при следующем запуске команды.
SSHButton
Ок, к смартфону мы подключились, файлы синхронизировали, но что, если нам нужно обратное SSH-подключение от смартфона к компу? В этом случае подойдет любой из десятков SSH-клиентов для Android (тот же ConnectBot, например), если, конечно, ты готов вводить команды на сенсорной клавиатуре маленького экрана.
Если не готов, твой выбор — приложение SSH button, позволяющее запускать нужную команду на нужной машине по нажатию кнопки. Интерфейс у SSH button страшный, но приложение отлично работает. Просто запусти SSH button, далее Меню → Add. и введи нужную команду, адрес SSH-сервера, логин и пароль.
SSH button удобно использовать для выключения или усыпления компа (команды systemctl suspend и halt ), запуска и остановки торрентов, контролирования музыки (например, плеер mocp, о котором я рассказывал в одной из прошлых статей, позволяет управлять собой через командную строку).
Выводы
Использовать Android в связке с Linux действительно удобно. В отличие от Windows здесь не нужны дополнительные драйверы, специальные серверы и прочие странные вещи. В большинстве случаев можно обойтись стандартными для мира Linux SSH и rsync, но в Сети всегда можно найти более интересные инструменты.
Евгений Зобнин
Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.
Читайте также: