Використання Android в зв’язці з Linux

ispolzovanie android v svyazke s linux63 Використання Android в звязці з Linux

Дистрибутиви Linux і Android не просто родинні операційні системи — вони взагалі засновані на одному ядрі і на низькому рівні дуже схожі. В Андроїд працює велика частина команд Linux, в нього можна встановити командну оболонку bash, робити скрипти і навіть запускати сервери. Встановивши SSH Android-пристрій, ви зможете заходити на нього з комп’ютера і навіть використовувати rsync для синхронізації файлів. Сьогодні ми поговоримо про всі ці трюки, про які повинен знати кожен юниксоид власник смартфона.

Зміст

  • ADB — управління Android з Linux
  • Adb-sync — синхронізація файлів між пристроями
  • Adbfs — отримання доступу до файлів
  • Go-mtpfs — передача даних по протоколу MTP
  • SSH
  • Bash, tmux, mc
  • Rsync — синхронізація і бекап файлів
  • SSHButton — підключення від смартфона до комп’ютера
  • Разом
  • ADB — управління Android з Linux

    Почнемо з улюбленого інструменту всіх просунутих користувачів Android — ADB. Ми вже багато разів писали про нього, однак тут просто зобов’язані повторитися. Отже, ADB розшифровується як Android Debug Bridge, і по суті це щось на зразок системи управління смартфоном з компа. ADB дозволяє встановлювати і запускати софт, переміщати файли з пристрою та на пристрій і виконувати багато інших завдань.

    Щоб правильно налаштувати ADB в Windows, довелося б встановлювати драйвери і перезавантажувати систему, в Linux він просто працює. Все що необхідно зробити — це активувати ADB на смартфоні. Робить це меню Налаштування → Для розробників → Налагодження USB) і встановити пакет з утилітою adb в систему:

    1234# Ubuntu/Debian/Mint$ sudo apt-get install adb# Arch Linux$ sudo pacman -S android-android tools-udev

    Після чого треба підключити телефон до компа і почати віддавати команди.

    Отримати список підключених пристроїв:

    1$ adb devices

    Встановити на підключений пристрій АПК:

    1$ adb install file.апк

    Перемістити файл на пристрій:

    1$ adb push файл /sdcard/

    Завантажити файл з пристрою:

    1$ adb pull /sdcard/DCIM/Camera/photo.jpg photo.jpg

    Створити скрін екрану і завантажити його на комп’ютер:

    123$ adb shell screencap /sdcard/screenshot.png$ adb pull /sdcard/screenshot.png$ adb shell rm /sdcard/screenshot.png

    Натиснути кнопку Power:

    1$ adb shell input keyevent 26

    Ну і найважливіше, утиліту ADB можна використовувати для отримання доступу до командного рядку телефону:

    Як прати пелюшки: підручними засобами і магазинними
    1$ adb shell

    Важливо відзначити, що утиліта ADB може працювати не тільки за USB, але і по Wi-Fi, але для цього необхідні права root на пристрої і додаток WiFi ADB. Запускаємо додаток, вмикаємо перемикач і конектимся до телефону за допомогою adb connect і показаного додатком IP-адреси:

    1$ adb connect IP-адресу

    На деяких дистрибутивах для роботи ADB може знадобитися root. Це відбувається із-за відсутності спеціальних правил Udev в дистрибутиві. Доведеться або встановлювати їх як окремий пакет (android-udev в Arch Linux), або самостійно налаштовувати Udev.

    Adb-sync — синхронізація файлів між пристроями

    ADB можна використовувати і для синхронізації файлів між пристроями (для цього навіть є опція sync), проте зручніше скористатися скриптом adb-sync. Його достатньо завантажити і запустити. Наприклад, так можна синхронізувати музику на пристрої та на ПК:

    1$ adb-sync ~/Music/ /sdcard/Music

    А так виконати ту ж синхронізацію, але з видаленням файлів, які були видалені на ПК:

    1$ adb-sync –delete ~/Music/ /sdcard/Music

    Простий спосіб завантажити файли на комп (зворотна синхронізація):

    1$ adb-sync –reverse /sdcard/Download/ ~/Downloads

    Adbfs — отримання доступу до файлів

    Ще один цікавий спосіб отримати доступ до файлів на пристрої за допомогою ADB — використовувати adbfs, псевдоФС, яка дозволяє змонтувати пристрій так, ніби це флешка або будь-який інший накопичувач.

    Найпростіше встановити adbfs в Arch Linux. Тут вона є в AUR, тому достатньо виконати одну команду:

    1$ yaourt -S adbfs-rootless-git

    В Ubuntu і інших системах adbfs доведеться збирати вручну:

    1234$ sudo apt-get install libfuse-android dev-tools-adb$ git clone git://github.com/spion/adbfs-rootless.git$ cd adbfs-rootless $ make

    Ну а далі можна підключати файлову систему:

    12$ mkdir ~/Android$ adbfs ~/Android

    Для відключення:

    1$ fusermount -u ~/Android

    Go-mtpfs — передача даних по протоколу MTP

    Ще один варіант підключення пристрою як файлової системи — go-mtpfs, файлова система, що дозволяє передавати дані по протоколу MTP. Саме цей протокол використовується в смартфонах без карти пам’яті.

    В Arch Linux встановити go-mtpfs дуже просто:

    1$ yaourt -S go-mtpfs

    В інших дистрибутивах дещо складніше:

    12345$ sudo apt-get install golang-go libusb1-devel$ mkdir /tmp/go$ export GOPATH=/tmp/go$ go get github.com/hanwen/go-mtpfs$ go install github.com/hanwen/go-mtpfs

    Далі все так само елементарно, як з adbfs:

    12$ mkdir ~/Android$ go-mtpfs ~/Android

    Для відключення:

    1$ fusermount -u ~/Android

    SSH

    Ідея використовувати ADB для спілкування з пристроєм може здатися дивною, якщо враховувати, що для Android існує відразу кілька різних SSH-серверів, не вимагають права root. Так воно і є, у багатьох випадках SSH буде зручніше і ефективніше. В якості реалізації сервера раджу вибрати SimpleSSHD, просту безкоштовну обгортку для перевіреного часом SSH-сервера DropBear для вбудованих систем. Якщо у вас є root, то рекомендую також встановити BusyBox On Rails, набір утиліт командного рядка, найбільш близький до дистрибутивам Linux.

    Догляд за смородиною восени. Як правильно підготувати кущі смородини до зими

    Використовувати SimpleSSHD дуже просто. Запускаєте, натискаєте START і підключаєтеся до вказаною IP-адресою (порт 2222):

    1$ ssh 192.168.31.236 -p 2222

    У момент підключення на екрані з’явиться одноразовий пароль, який слід вказати в клієнті. Це не дуже зручний спосіб аутентифікації, але ви можете налаштувати автентифікацію за ключем. Просто перейменуйте свій відкритий ключ (~/.ssh/id_rsa.pub) в authorized_keys і покладіть в каталог ssh на карті пам’яті смартфона.

    ispolzovanie android v svyazke s linux64 Використання Android в звязці з LinuxВикористання Android з Linux. SimpleSSHD

    Bash, tmux, mc

    SSH-сервер на смартфоні сам по собі відкриває широкі можливості, але ще ширше їх можна зробити, якщо встановити на смартфон класичні інструменти, такі як bash, tmux і mc. Останній дозволить у тому числі з зручністю ходити по карті пам’яті і прибрати в разі необхідності.

    Про те, як встановити на смартфон bash, tmux, mc і nano, я вже розповідав, але дозволю собі повторитися. І відразу попереджу, що вам будуть потрібні права root на смартфоні.

    Отже, викачуємо Terminal IDE, перейменовуємо пакет АПК в ZIP, розпаковуємо, знаходимо файл assets/system-2.0.tar.gz.mp3, перейменовуємо, прибираючи розширення mp3, і розпаковуємо. Всередині буде безліч каталогів і файлів, з яких нас цікавлять тільки system/bin system/etc/terminfo. Перший містить потрібні нам утиліти; скопіюй ті, що тобі знадобляться, в окремий каталог. Другий необхідний для коректного функціонування утиліт.

    Вибрані утиліти і каталог terminfo скинь на карту пам’яті смартфона. Потім підключись до нього по SSH і введи такі команди, щоб отримати можливість модифікації системного каталогу:

    12$ su# mount -o remount,rw /system

    Далі скопіюй усі потрібні утиліти в /system/xbin/ і встанови на них біт виконання (на прикладі bash):

    12# cp bash /system/xbin/# chmod 755 /system/xbin/bash

    Потім створи файл /sdcard/ssh/.bashrc, помісти в нього наступні рядки:

    123export TERMINFO=/sdcard/terminfoexport TMPDIR=/data/local/tmpexport PS1=”[email protected]h:w $ “

    Відкрий налаштування SimpleSSHD на смартфоні і в опції Login Shell вкажи /system/xbin/bash, зупини і знову запусти сервер. При наступному вході по SSH відкриється bash і будуть доступні скопійовані вами утиліти.

    Щоб домогтися коректної роботи Vim і mc, скопіювати на карту пам’яті також каталоги etc/mc і etc/vim, а в файл /sdcard/ssh/.bashrc додай рядки:

    12export MC_DATADIR=/sdcard/mcexport VIMRUNTIME=/sdcard/vim

    ispolzovanie android v svyazke s linux65 Використання Android в звязці з LinuxВикористання Android з Linux. Midnight commander, запущений у Android

    Як відмити силіконову форму для випічки: рекомендації

    Rsync — синхронізація і бекап файлів

    SSH-сервер дає нам можливість використовувати rsync, потужну утиліту для синхронізації і бекапа файлів. Rsync дозволяє здійснювати швидке двонаправлену синхронізацію файлів між двома машинами (або машиною і смартфоном, як у нашому випадку) з викачуванням тільки нових і змінених файлів і можливістю відновлення перерваного синхронізації.

    Найпростіший приклад використання rsync у зв’язці зі смартфоном:

    1$ rsync –update –progress -e ‘ssh -p 2222’ -azv 192.168.31.236:/sdcard/DCIM/Camera ~/Photos

    Ця команда скопіює всі фотографії зі смартфона у каталог ~/Photos, пропустивши ті, що вже є в каталозі. Зв’язка опцій -azv в даному випадку означає, що каталог необхідно передати як є з усіма його підкаталогами і правами доступу (прапор -a) плюс використовувати стиснення (прапор -z).

    Зворотна команда — копіювання даних з машини на смартфон:

    1$ rsync –delete –progress -e ‘ssh -p 2222’ -azv ~/Books 192.168.31.236:/sdcard/Books

    Тут ми використовували прапор –delete, щоб видалити файли, які були видалені з локального каталогу ~/Books.

    За замовчуванням при обриві з’єднання rsync буде видаляти частково передані файли. Щоб цього уникнути, можна використовувати прапор –partial, який змусить rsync зберігати недокачані файли і відновити їх завантаження при наступному запуску команди.

    SSHButton — підключення від смартфона до комп’ютера

    Ок, до смартфону ми підключилися, файли синхронізували, але що, якщо нам потрібно зворотне SSH-з’єднання від смартфона до компу? У цьому випадку підійде будь-який з десятків SSH-клієнтів для Android (той же ConnectBot, наприклад), якщо, звичайно, ти готовий вводити команди на сенсорній клавіатурі маленького екрану.

    Якщо не готовий, твій вибір — додаток SSH button, що дозволяє запускати команду на потрібній машині по натисненню кнопки. Інтерфейс у SSH button страшний, але додаток відмінно працює. Просто запусти SSH button, далі Меню → Add… і введи потрібну команду, адреса SSH-сервера, логін і пароль.

    ispolzovanie android v svyazke s linux66 Використання Android в звязці з LinuxВикористання Android з Linux. SSH button

    SSH button зручно використовувати для виключення або присипання компа (команди systemctl suspend і halt), запуску і зупинки торрентів, контролювання музики (наприклад, плеєр mocp, про який я розповідав в одній з минулих статей, дозволяє управляти собою через командний рядок).

    Разом

    Використовувати Android у зв’язці з Linux дійсно зручно. На відміну від Windows тут не потрібні додаткові драйвери, спеціальні сервери і інші дивні речі. У більшості випадків можна обійтися стандартними для світу Linux SSH і rsync, але в Мережі завжди можна знайти більш цікаві інструменти.

    Подобається? Поділіться з друзями:
    Всезнайко - Корисні поради
    Залишити відповідь

    ×
    Тисни «Подобається», щоб читати нас на Facebook
    Спасибі, я вже з Вами!