Ubuntu синхронизация с android

Обновлено: 03.07.2024

В настоящее время многие дружественные к пользователю дистрибутивы уже настроены на загрузку файлов на телефон 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.

kdeconnect - синхронизация андроид и ubuntu

KDE Connect использует защищенный протокол связи для того, чтобы обеспечить безопасность. Также KDE Connect позволяет разработчикам создавать плагины. Сейчас доступны клиенты KDE Connect для Android и Blackberry устройств, вскоре появятся и для iPhone.
Значит для смартфона данное приложение ищите в магазине приложений.

kdeconnect в PlayMarket для андроид ubuntu

KDE Connect является инструментом для интеграции рабочего стола компьютера со смартфоном, который стремятся встроиться в любые системы, используя libappindicator.

Функции KDE Connect объединяющие ваш телефон и компьютер:

  • Общий доступ к файлам и веб-сайтам из любого приложения без проводов.
  • Легко как скачивать так и загружать файлы на смартфон
  • Сенсорная панель эмуляции: Используйте экран телефона в качестве сенсорной панели для вашего компьютера.
  • Синхронизация уведомлений (4.3+): читайте свои Android уведомления на рабочем столе Linux.
  • Общий буфер обмена: копирование и вставка между телефоном и компьютером.
  • Пульт дистанционного управления мультимедиа: Используйте телефон в качестве пульта ДУ для Linux медиа-плееров.
  • WiFi соединение: не нужен USB провод или Bluetooth соединение.
  • RSA шифрование: ваша информация в безопасности.
Соединение андроид и ubuntu Синхронизация уведомлений Доступ к файлам

kdeconnect управление плеером Ubuntu из андроид

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.

Использование Android с Linux

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

Получить список подключенных устройств:

Установить на подключенное устройство 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

Использование 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

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, гаджетов и древних видеоигр.

Читайте также: