- Синхронизация смартфона и ПК на Linux при помощи KDE Connect
- Не «кедами» одними живем
- Установка KDE Connect
- Linux синхронизация с android
- Подключите (синхронизируйте) андроид с Ubuntu/Linux Mint без проводов
- Функции KDE Connect объединяющие ваш телефон и компьютер:
- Android для юниксоида. Используем смартфон в связке с Linux
- WARNING
- Adb-sync
- Adbfs
- Go-mtpfs
- Bash, tmux, mc
- Xakep #228. Как крадут ICO
- Rsync
- SSHButton
- Выводы
- Евгений Зобнин
Синхронизация смартфона и ПК на Linux при помощи KDE Connect
Смартфон для многих это не просто устройство для быстрой связи или развлечений, а полноценный рабочий инструмент. В больших городах часто можно встретить в кафешке или на улице солидно одетого человека, который имеет в руках только смартфон, через который управляет собственными делами или бизнесом. Некоторые из предпринимателей среди моих знакомых также признавались, что подчас имеют под рукой только смартфон, а не ноутбук или планшет.
Моя ситуация не исключение, подчас мобильное устройство пусть не полностью, но способно заменить компьютер или ноутбук. Уведомления в Телеграме или командном чате, какие-либо сообщения на почту или СМС-ки — все это требует какого-либо внимания или быстрого ответа. Кроме того, иногда нужно быстро скинуть какой-либо скриншот или снимок со смартфона на компьютер или наоборот — отправить файл с ПК на мобильное устройство. Поэтому важно иметь постоянный «коннект» между всеми устройствами, которыми пользуюсь. В дистрибутивах Linux есть замечательная программа, позволяющая синхронизировать смартфон с компьютером под названием KDE Connect.
На канале Просто Код выходит много полезных и интересных постов про Линукс и все, что с ним связано. Подпишитесь, чтобы не пропустить новые материалы и нужный контент!
Не «кедами» одними живем
На самом деле функционал и возможности KDE Connect привели к тому, что даже пользователи Линукс-дистрибутивов с GNOME могут ее использовать. Для этого имеется расширение под названием GSConnect, которое является «гномьей» реализацией KDE Connect. Про это расширение расскажу как-нибудь в следующей заметке, в этой же поговорим исключительно про оригинал.
Установка KDE Connect
Для дистрибутивов со средой рабочего стола KDE (Plasma) ничего дополнительно на ПК устанавливать не нужно, утилита поставляется «из коробки». Для смартфона необходимо установить одноименное приложение из Play Market.
Linux синхронизация с android
Подключите (синхронизируйте) андроид с Ubuntu/Linux Mint без проводов
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 запускалась при старте системы, введите следующую команду в терминале:
После запуска программы на компьютере нужно запустить kde connect на смартфоне. Если устройства находятся в одной сети, то Вы легко их «спарите». Интерфейс программа довольно простой, что на компьютере, что на смартфоне — приятного использования.
Для Android KDE Connect можно найти как в магазине Play Google, так и в магазине исключительно бесплатных приложений F-Droid.
Android для юниксоида. Используем смартфон в связке с Linux
Начнем с излюбленного инструмента всех продвинутых пользователей Android — ADB. Мы уже много раз писали о нем, однако здесь просто обязаны повториться. Итак, ADB расшифровывается как Android Debug Bridge, и по сути это нечто вроде системы управления смартфоном с компа. ADB позволяет устанавливать и запускать софт, перемещать файлы с устройства и на устройство и выполнять многие другие задачи.
Чтобы настроить ADB в Windows, пришлось бы устанавливать драйверы и перезагружать машину, в Linux он просто работает. Достаточно активировать ADB на смартфоне (Настройки → Для разработчиков → Отладка по USB) и установить пакет с утилитой adb в систему:
Далее необходимо подключить смартфон к компу и начать отдавать команды.
Получение списка подключенных устройств:
Установка на подключенное устройство APK:
Перемещение файла на устройство:
Скачивание файла с устройства:
Сделать скриншот и скачать его на комп:
Ну и конечно же, 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
Xakep #228. Как крадут ICO
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, гаджетов и древних видеоигр.