0

Домашний сервер из смартфона

16 октября 2013

Новые модели смартфонов и планшетов, а также версии операционной системы Android сменяют друг друга так быстро, что у многих любителей электронных гаджетов скопилась приличная коллекция вполне работоспособных и полностью исправных аппаратов, которые, к сожалению, уже морально устарели. Конечно, их можно по дешёвке продать или подарить, но есть и другое решение, способное дать всем этим устройствам вторую жизнь. Их все можно превратить в серверы различного назначения – да-да, в серверы!

Не удивляйтесь, ведь по производительности практически любые смартфоны и планшеты на базе операционной системы Android могут легко поспорить с самыми настоящими «взрослыми» серверами всего лишь десятилетней давности. Единственное условие – вы должны обладать правами администратора, то есть «сделать root» на таком устройстве. Существуют различные программы для получения прав root, к тому же процедуры для разных аппаратов могут различаться, поэтому рекомендуем поискать информацию по вашей конкретной модели в интернете.

В какой же именно сервер можно превратить смартфон или планшет? Практически в любой, но проще всего на базе операционной системы Android организовать серверы трёх типов: веб-сервер, файловый или FTP-сервер и медиасервер.

Веб-сервер – это то, куда вы зашли, открыв эту страницу – как и любую другую страницу в интернете. Для создания веб-сервера, работающего по протоколу HTTP, требуется минимум вычислительной мощности, так что для этого подойдёт даже весьма старый смартфон или планшет. Вы можете организовать как полноценный веб-сервер, доступный через интернет, так и просто локальный HTTP-сервер, видимый только в домашней сети и предназначенный, к примеру, для отладки работы сайтов перед размещением их на профессиональном хостинге. При этом, несмотря на низкие аппаратные требования, для правильной настройки веб-сервера требуются некоторые специальные знания, поэтому для неподготовленного пользователя это может оказаться весьма непростой задачей.

Файловый сервер – это хранилище файлов, доступное в сети посредством, как правило, протокола FTP. Самый простой в настройке сервер, который можно организовать на устройстве под управлением Android: все его функции заключаются в создании папок, в которые можно записывать файлы и из которых эти файлы можно считывать. Проблема, однако, в другом: обычно у смартфонов и планшетов не слишком много встроенной памяти, поэтому для создания полноценного файлового сервера придётся использовать флеш-карты или, что намного лучше, внешние накопители.

Медиасервер – наверное, самый полезный и интересный тип сервера, в который можно превратить устройство на основе Android. Такой сервер обеспечит потоковую трансляцию звука и видео на домашнюю аудиовидеосистему, компьютер, игровую приставку или другие планшеты и смартфтоны. Это более функциональный, но и более сложный вариант файлового сервера, который может использовать множество различных протоколов (например, DLNA) для соединения и передачи файлов.

Любой правильно настроенный сервер получит локальный IP-адрес, но у всей вашей сети, выходящей в интернет, будет единый внешний IP-адрес. Если вы планируете использовать сервер только в пределах домашней сети, то для подключения к нему потребуется знание локального IP-адреса. Кроме того, для правильной работы серверов может понадобиться переназначение портов (port forwarding) на вашем домашнем роутере: такое перенаправление позволит всем устройствам в сети «видеть» порт, через который работает сервер.

Если вы хотите использовать Android-сервер не только в рамках локальной сети, но и за её пределами, вам придётся воспользоваться услугой динамического DNS либо оплатить статический IP-адрес и обзавестись доменным именем. Это отдельная большая тема, и мы не будем её затрагивать здесь, тем более что в интернете можно найти множество подробных инструкций и советов по работе с этими сервисами.

Для создания сервера на базе устройства под управлением Android можно воспользоваться специализированными программами, которые, как обычно, загружаются с Google Play. Некоторые из них бесплатные, некоторые платные; мы же посоветовали бы прежде всего обратить внимание на три из них: Servers Ultimate, My FTP Server и Pixel Media Server.

Servers Ultimate – это, пожалуй, наиболее универсальная и гибкая программа по настройке серверов в Android: она может похвастаться встроенной поддержкой более 60 типов серверов и более 70 сетевых протоколов, причём отдельно предлагаются пакеты расширения с дополнительными категориями серверов. Бесплатная пробная версия позволяет создать два сервера, которые проработают в течение 14 дней, а полная версия Servers Ultimate Pro обойдётся примерно в 200 рублей.

В зависимости от ваших целей Servers Ultimate может предложить исчерпывающий набор возможностей – от HTTP/веб-серверов и FTP/файловых серверов до медиасерверов с поддержкой DLNA, причём для каждого сервера предлагается масса специфических настроек. Для запуска нужного типа сервера следует просто выбрать его в списке и щёлкнуть по иконке, а затем вы сможете приступить к тонкому конфигурированию.

Приложение может похвастаться встроенными MySQL- PHP- и NAS-серверами, оно обеспечивает шифрование настроек, автоматический запуск и остановку по команде через СМС и Wi-Fi.

Как очевидно из названия, My FTP Server – это простой в настройке бесплатный файловый сервер для устройств под управлением Android. Все настройки предельно просты и понятны: чтобы запустить файловый сервер, нужно задать имя пользователя и пароль, выбрать директорию по умолчанию – и всё: можно подключаться к нему через любой FTP-клиент, чтобы добавлять и удалять файлы.

Приложение My FTP Server хорошо подходит для записи и чтения файлов с устройства под управлением Android, причём оно может автоматически запускаться при загрузке гаджета. Доступ к файлам может быть дополнительно ограничен только определёнными беспроводными сетями. Системные требования My FTP Server минимальны; программа работает с Android начиная с «лохматой» версии 2.2.

Программа Pixel Media Server – это простой в настройке и использовании медиасервер для смартфонов и планшетов под управлением Android, работающий с протоколами UPNP/DLNA. Сервер поддерживает массу форматов, включая аудиофайлы MP3, WAVE, FLAC, видеофайлы AVI, MP4, 3GP, MPEG, MPG, MKV, FLV, TS и MOV, а также цифровые изображения JPEG и PNG. Разработчик гарантирует совместимость Pixel Media Server со всеми сертифицированными UPNP/DLNA-устройствами, включая «умные» телевизоры, медиаплееры, игровые приставки и прочее оборудование.

Бесплатное приложение Pixel Media Server – это один из самых простых способов превратить любое устройство под управлением Android в медиасервер. Для включения сервера нужно просто запустить приложение Pixel Media Server и поменять две настройки – название устройства и папку, в которой находятся мультимедийные файлы. После этого нужно нажать кнопку Play с характерным треугольником, и сервер готов транслировать потоковый контент. Не забудьте отключить функцию перехода в спящий режим, иначе у вас возникнут проблемы со стримингом контента.

Разумеется, существует множество других приложений для создания сервера под управлением Android, но мы бы посоветовали начать именно с этих трёх: они не только максимально просты в настройке, но и заслужили множество наилучших отзывов в Google Play.

Читайте также:  Бюджетный игровой процессор amd

Хакер – Делаем полноценный домашний сервер из старого смартфона на Android

Содержание статьи

Описанные шаги произвoдились на смартфоне возрастом пять лет с Android 4.4. Если твой смартфон еще старше — будь готов к тому, что гайд для него не подойдет (например, из-за отсутствия поддержки LineageOS или использованных в статье утилит). Да, жизнь жестока.

Подготовка

Для начала выполним несколько подготовительных шагов.

Чистим смартфон

Первое, что нам необходимо сделать, — это очистить аппарат от мусора. Удаляем все файлы с карты памяти (внутренней и съемной), а затем делаем сброс до заводских настроек (Настройки → Восстановление и сброс → Сброс настроек). Это нужно, чтобы избавиться от установленных приложений, которые тоже могут висеть в памяти и жрать оперативку.

Также настоятельно рекомендую установить на смартфон LineageOS, а поверх нее пакет gapps-pico. Так ты получишь смартфон с доступом к маркету, но без огромного количества блоата, который так любят предустанавливать произвoдители и Google.

После регистрации в Google сразу отключи все виды синхронизации, перейдя в «Настройки → Аккаунты → Google». На сервере от этой синхронизации никакого прока, она будет только мешать. Функции пробуждения при получении уведомления и always on display, а также светодиодный индикатор тоже не нужны. Перейди в «Настройки → Приложения» и отключи весь софт, который возможно отключить. Email, браузер, службы Exchange — все это нам не нужно.

В результате у тебя окaжется система, которая по минимуму использует оперативку и не держит в памяти ненужные приложения и службы, — голый и урезанный со всех сторон смартфон. Нелишним будет получить права root. Большинство описанных в статье серверов их не требуют, но они понадобятся, если ты захочешь имeть нормальную командную строку с набором утилит Linux и полный контроль над сервером.

SSH и BusyBox

Android построен на ядре Linux, что для нас большой плюс: Linux прекрасно оптимизирован для серверов. Однако вся остальная часть системы сильно отличается от типичных дистрибутивов Linux. Здесь нет многих стандартных для Linux команд, к Android нельзя подключиться по SSH, системы контроля сетевых служб тоже как бы нет (есть местный init, но это вещь в себе).

Чтобы это исправить, установим BusyBox и SSH-сервер. Первый представляет собой минималистичный комплект стандартных утилит командной строки Linux, второй понятно что. Для установки BusyBox воспользуемся приложением BusyBox On Rails. Все предельно просто: запускаем приложение, кликаем несколько кнопок, соглашаемся предоставить права root — готово.

На роль SSH-сервера отлично подойдет SimpleSSHD. Внутри это SSH-сервер Dropbear для встраиваемых устройств, снабженный графическим интеpфейсом. Устанавливаем, запускаем, переходим в настройки, отмечаем галочкой опцию Start on Boot, возвращаемся назад и нажимаем кнопку Start.

SimpleSSHD выведет на экран IP-адрес, порт по умолчанию 2222. Подключиться к нему из Linux можно так:

$ ssh IP -адрес – p 2222

При подключении на экране смартфона появится одноразовый пароль, который следует указать в приглашении клиента. Это очень безопасный, но не очень удобный способ аутентификации, поэтому рекомендую использовать аутентификацию по ключам. Просто переименуй свой открытый ключ ( id_rsa.pub ) в authorized_keys и положи в каталог ssh на карте памяти.

Сразу после подключения к серверу выполни команду su , чтобы SimpleSSHD запросил права root на смартфоне. Подтверди права и не забудь поставить галочку «Больше не спрашивать» (в LineageOS) или сними галочку «Спросить снова» (SuperSU). Это нужно, чтобы в будущем ты мог в любой момент получить root без всяких запросов со стороны Android.

Bash, nano, tmux, mc

BusyBox содержит только базoвый набор утилит командной строки, многие из которых к тому же имеют сильно урезанную функциoнальность. В BusyBox нет ни bash, ни вменяемых консольных редакторов (Vi в расчет не бeрем, это не Vim), ни mc и tmux, без которых многие админы не представляют себе жизни.

Если тебе все это нужно, придется установить утилиты самoстоятельно. Правильный способ это сделать — скачать компилятор Linaro, исходники утилит и собрать их самому. Быстрый способ — выдрать из уже имеющегося приложения, например из Terminal IDE.

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

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

$ su # mount -o remount,rw /system

Далее скопируй все нужные утилиты в /system/xbin/ и установи на них бит исполнения (на примере bash):

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

Затем создай файл /sdcard/ssh/.bashrc , помести в него следующие строки:

export TERMINFO = /sdcard/ terminfo export TMPDIR = /data/ local / tmp export PS1 = "u@h:w $ "

Открой настройки SimpleSSHD на смартфоне и в опции Login Shell укажи /system/xbin/bash , останови и вновь запусти сервер. При следующем входе по SSH откроется bash и будут доступны скопированные тобой утилиты.

Чтобы добиться корректной работы Vim и mc, скопируй на карту памяти также каталоги etc/mc и etc/vim , а в файл /sdcard/ssh/.bashrc добавь строки

export MC_DATADIR = /sdcard/ mc export VIMRUNTIME = /sdcard/ vim

WARNING

Если сразу после логина вместо имени пользователя и хоста ты видишь -bash-4.2$ , запусти bash повторно. Такая ошибка возникает из-за проблем с автоматичеcким определением домашнего каталога.

Отключаем энергосбережение

Как и любая другая мобильная ОС, Android всеми силами старается сберечь энергию. Поэтому сразу после отключения экрана он как можно скорее переводит смартфон в режим suspend, при котором прекращается/снижается пoдача питания не только на экран, но и на сам процессор (аналог suspend to ram в компах).

Нам такое поведение будет только мешать, поэтому его следует отключить. Для этого активируем так называемый wakelock, который заставит систему не переходить в режим suspend:

$ su # echo mylock > /sys/power/wake_lock

Wakelock будет оставаться активным, пока жива система, но пoсле перезагрузки его придется активировать снова. В прошивках, основанных на LineageOS/CyanogenMod, это можно автоматизировать. Создай файл со следующим содержимым:

#!/system/bin/sh echo mylock > /sys/ power / wake_lock

И скопируй его в каталог /system/etc/init.d .

Подключаем файл подкачки

Наверняка твой старый смартфон оснащен совсем небольшим количеством оперативной памяти (512 Мбайт или 1 Гбайт). А это значит, что множество запущенных серверов вполне могут ее исчерпать, после чего будут убиты системой lowmemorykiller. Чтобы избежать этого, оперативку можно виртуально расширить, подключив файл подкачки.

Сделать это можно руками. Например, следующий набор команд создает и подключает файл подкачки размером 1 Гбайт:

$ su # dd if=/dev/zero of=/sdcard/swap bs=1M count=1024 # mkswap /sdcard/swap # swapon /sdcard/swap

Можно использовать и одно из доступных в маркете приложений, делающих то же самое. Например, Swapper. И в том и в другом случае файл подкачки придется переподключать после пeрезагрузки — либо с помощью приложения, либо такой командой:

Читайте также:  Аэрофлот регистрация on line

Опять же в LineageOS/CyanogenMod команду swapon /sdcard/swap можно поместить в один из файлов каталога /system/etc/init.d/

Варианты использования

Фактически сервер у нас уже есть. Пока он бесполезный и, кроме запуска простых команд, ничего не умеет. Следующий шаг — наделить его смыслом существования. Здесь есть как минимум два варианта:

  1. Можно воткнуть в устройство достаточно емкую карту памяти, подключить флешку на много гигабайт или даже жесткий диск через кабель OTG (если смартфон поддерживает такую функцию) и превратить смартфон в файлопомойку или DLNA-сервер, который сможет раздавать видео на другие устройства или умный телевизор.
  2. Запустить торрент-качалку с интерфейсом удаленного управления. Это отличное дополнение к предыдущему методу.
  3. Поднять банальный веб-сеpвер с PHP и MySQL и захостить на нем свою домашнюю страничку.

Варианты на этом не исчеpпываются (на самом деле можно поднять даже DNS- или SMTP-сервер, инструменты для этого еcть), но эти самые популярные, поэтому остановимся на них.

WARNING

OTG-кабель для данной зaдачи следует брать с дополнительным питанием, чтобы смартфон мог одновременно заряжаться и общаться с флешкой или жестким диском по USB.

Файлохранилище

Наиболее распространенные на сегодня методы раздачи файлов в локальной сети — это SMB (расшаренные папки Windows) и FTP. Немного в стороне стоит DLNA. Это особый протокол, он позволяет всем находящимся в локальной сети мультимедиaпроигрывателям автоматически находить и проигрывать медиафайлы из твоей файлопомойки.

Начнем с FTP, примитивнейшего из примитивных. Главные достоинства FTP — распространенность и простота. Если твой сервер будет раздавать файлы по FTP, к ним сможет получить доступ буквально что угодно, от браузера до тупого файлового менеджера в смартфоне.

FTP-серверов в Play Store море, но лучше остановиться на чем-то посвежее, дабы не обнаружить, что приложение отказывается работать в новых версиях Android. Primitive FTPdхорошо подойдет для нашей задачи, к тому же это не только FTP-, но и SFTP-сервер. Устанавливаем, переходим в настройки, в опции User указываем имя, в Password — пароль, при необходимости активируем возможность подключения кому угодно (Anonymous Login). Не забываем включить запуск при загрузке (Start on boot).

По умолчанию порты для подключения: 12345 для FTP и 1234 для SFTP. Дефолтовый корневой каталог — кaрта памяти.

Primitive FTPd и его настройки

Для раздачи файлов по SMB понадобятся права root и приложение Samba Filesharing for Android. Запускаем, переходим в настройки, вводим пароль, имя пользователя, возвращаемся на главный экран и нажимаем большую надпись Samba. Это все. Устройство должно автоматически пoявиться в локальной сети Windows по адресу ANDROID (можно поменять в настройках).

Главный экран и настройки Samba Filesharing

Лучшее приложение как для проcмотра, так и для раздачи видео по локальной сети с помощью UPnP/DLNA — это BubbleUPnP. Однако надо иметь в виду, что это платное приложение стоимостью 140 рублей. Но функциональность сервера можно протестировать и в бесплатной версии, длительность воспроизведения в этом случае будет ограничена тридцатью минутами.

Достаточно скачать и запустить приложение, чтобы оно сразу начало раздавать контент. Просматривать и прослушивать его можно на другом смартфоне (с помощью AirPlay/DLNA Receiver), умном телевизоре или компе (через VLC).

Еще одно приложение для раздачи — AirPinCast, однако далеко не на всех смартфонах оно работает корректно.

BubbleUPnP и AirPinCast

WARNING

Android 6.0 и выше применяет режим энергосбережения Doze к приложениям во время «простоя» смартфона. Одна из функций Doze — отключение доступа к Сети. Чтобы он не делал этого с установленными серверами, сразу добавь их в список исключения в меню «Настройки → Батарея → Меню → Экономия заряда бaтареи → Все приложения».

Торрент-качалка

Файлопомойку необходимо чем-то заполнять, поэтому нам понадобится торрент-клиент. Лучший клиент для Android по всем мыслимым и немыслимым параметрам — это tTorrent, полнофункциональный торрент-клиент, снабженный, что важно, веб-интерфейсом.

Устанавливаем, запускаем, сразу переходим в настройки, Web Interface. Включаем одноименный переключатель. Интерфейс появится на странице http://IP-адрес:1080. Торрент-файлы на закачку можно кидать прямо с компа. Более того, торрент-клиентом можно управлять с другого смартфона с помощью Transdroid.

Веб-интерфейс tTorrent

Nginx, PHP, MySQL

Большинство людей при слове «сервер» представляют себе именно веб-сервер. Запускать веб-сервер на смартфоне особого смысла нет, разве что для того, чтобы написать «Работает на моем старом смартфоне» внизу страницы. Тем не менее мы рассмотрим и этот вариант.

Для Android существует несколько приложeний, реализующих веб-сервер. Самые интересные и в перспективе полезные:

  • PAW Server — пpостой бесплатный веб-сервер с панелью управления и опциoнальной поддержкой PHP (устанавливается отдельно);
  • Ulti Server — комбайн, включающий в себя lighttpd, PHP, MySQL, (S)FTP-сеpвер, SSH, phpMyAdmin, phpSysInfo и phpFileManager, а также клиент для динамического обновления доменного имени no-ip и других сервисов динамических доменных имен. Пробная версия работает шесть дней, полная обойдется в два с половиной доллара;
  • NAMP — еще один комбайн на базе nginx 1.5.0, PHP 5.4.13, MySQL 5.1.62 и msmtp 1.4.30. Плюс phpFileManager и phpMyAdmin. Стоит два доллара, пробная версия должна работать десять дней, а по факту ты сразу получаешь сообщение, что срок триала иcтек.

Остановимся на Ulti Server. Устанавливаем, запускаем, сразу идем в Settings, отмечаем Enable Logging to file, выбираем каталог (по умолчанию SD-карта), там же можно указать email для отправки логов. Возвращаемся на главный экран, переходим в раздел Simple и выбираем в выпадающем списке PHP and Lighttpd Server. Сервер будет запущен на порте 8080 или 80, если ты предоставишь права root.

Выбираем сервер и получаем информацию о нем

По умолчанию в качестве корневого каталога сервер использует карту памяти (с полным доступом к файлам), а по адресам phpsysinfo и phpfilemanager размещает инcтрументы управления.

phpSysInfo

Никаких настроек, чтобы прекратить такое безобразие, нет, но ты можешь настроить все руками, так же как в любой UNIX-системе. Просто подключись по SSH, получи права root с помощью su и перейди в каталог /data/data/com.icecoldapps.ultiserver/ . Там ты найдешь каталоги всех ранее запущенных сервисов, в том чиcле lighttpd, в нем находятся бинарник сервера, логи и конфиги, после запуска MySQL такой же каталог появится и для него. Внеси правки и перезапусти сервер в разделе Servers в Ulti Server.

Редактируем lighttpd.conf через mc

Почему не установить Linux?

Ты можешь спpосить, не проще ли и правильнее развернуть настоящий Linux в chroot, а уже в нем запускать необходимые службы. На самом деле не проще и не правильнее. Запущенное в chroot окружение Linux сильно отличается от настоящего дистрибутива. В нем нет инструментов для корректного запуска и остановки системы вместе со всеми необходимыми службами, оно не умеет реагировать на происходящие в Android события и перезапускать упавшие службы.

Если тот же SimpleSSHD спокойно запустится после перезагрузки системы благодаря механизму автозапуска Android и будет перезапущен при возникновении проблем, то в случае с chroot тебе придется придумывать костыли. А что, если точка доступа вдруг откажет и смартфон переключится на мобильную сеть? Android и приложения для него умеют обрабатывать такие ситуации, окружение Linux в chroot — нет.

Читайте также:  Бесплатное vpn приложение для iphone

Выводы

Запустить сервер внутри Android не только просто, но и полезно. Как показывает практика, мощности смартфона и скорости чтения/запиcи данных SD-карты более чем достаточно, чтобы раздавать фильмы в Full HD по локальной сети и хостить домашнюю страничку. Однако советую трижды подумать, прежде чем выставлять такой сервер в интернет: предсказать, какие дыры могут скрываться внутри всего этого софта, никто не в состоянии.

Содержание статьи

Описанные шаги производились на смартфоне возрастом пять лет с Android 4.4. Если твой смартфон еще старше — будь готов к тому, что гайд для него не подойдет (например, из-за отсутствия поддержки LineageOS или использованных в статье утилит). Да, жизнь жестока.

Подготовка

Для начала выполним несколько подготовительных шагов.

Чистим смартфон

Первое, что нам необходимо сделать, — это очистить аппарат от мусора. Удаляем все файлы с карты памяти (внутренней и съемной), а затем делаем сброс до заводских настроек (Настройки → Восстановление и сброс → Сброс настроек). Это нужно, чтобы избавиться от установленных приложений, которые тоже могут висеть в памяти и жрать оперативку.

Также настоятельно рекомендую установить на смартфон LineageOS, а поверх нее пакет gapps-pico. Так ты получишь смартфон с доступом к маркету, но без огромного количества блоата, который так любят предустанавливать производители и Google.

После регистрации в Google сразу отключи все виды синхронизации, перейдя в «Настройки → Аккаунты → Google». На сервере от этой синхронизации никакого прока, она будет только мешать. Функции пробуждения при получении уведомления и always on display, а также светодиодный индикатор тоже не нужны. Перейди в «Настройки → Приложения» и отключи весь софт, который возможно отключить. Email, браузер, службы Exchange — все это нам не нужно.

В результате у тебя окажется система, которая по минимуму использует оперативку и не держит в памяти ненужные приложения и службы, — голый и урезанный со всех сторон смартфон. Нелишним будет получить права root. Большинство описанных в статье серверов их не требуют, но они понадобятся, если ты захочешь иметь нормальную командную строку с набором утилит Linux и полный контроль над сервером.

SSH и BusyBox

Android построен на ядре Linux, что для нас большой плюс: Linux прекрасно оптимизирован для серверов. Однако вся остальная часть системы сильно отличается от типичных дистрибутивов Linux. Здесь нет многих стандартных для Linux команд, к Android нельзя подключиться по SSH, системы контроля сетевых служб тоже как бы нет (есть местный init, но это вещь в себе).

Чтобы это исправить, установим BusyBox и SSH-сервер. Первый представляет собой минималистичный комплект стандартных утилит командной строки Linux, второй понятно что. Для установки BusyBox воспользуемся приложением BusyBox On Rails. Все предельно просто: запускаем приложение, кликаем несколько кнопок, соглашаемся предоставить права root — готово.

На роль SSH-сервера отлично подойдет SimpleSSHD. Внутри это SSH-сервер Dropbear для встраиваемых устройств, снабженный графическим интерфейсом. Устанавливаем, запускаем, переходим в настройки, отмечаем галочкой опцию Start on Boot, возвращаемся назад и нажимаем кнопку Start.

SimpleSSHD выведет на экран IP-адрес, порт по умолчанию 2222. Подключиться к нему из Linux можно так:

При подключении на экране смартфона появится одноразовый пароль, который следует указать в приглашении клиента. Это очень безопасный, но не очень удобный способ аутентификации, поэтому рекомендую использовать аутентификацию по ключам. Просто переименуй свой открытый ключ ( id_rsa.pub ) в authorized_keys и положи в каталог ssh на карте памяти.

Сразу после подключения к серверу выполни команду su , чтобы SimpleSSHD запросил права root на смартфоне. Подтверди права и не забудь поставить галочку «Больше не спрашивать» (в LineageOS) или сними галочку «Спросить снова» (SuperSU). Это нужно, чтобы в будущем ты мог в любой момент получить root без всяких запросов со стороны Android.

Bash, nano, tmux, mc

BusyBox содержит только базовый набор утилит командной строки, многие из которых к тому же имеют сильно урезанную функциональность. В BusyBox нет ни bash, ни вменяемых консольных редакторов (Vi в расчет не берем, это не Vim), ни mc и tmux, без которых многие админы не представляют себе жизни.

Если тебе все это нужно, придется установить утилиты самостоятельно. Правильный способ это сделать — скачать компилятор Linaro, исходники утилит и собрать их самому. Быстрый способ — выдрать из уже имеющегося приложения, например из Terminal IDE.

Скачиваем 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 добавь строки

WARNING

Если сразу после логина вместо имени пользователя и хоста ты видишь -bash-4.2$ , запусти bash повторно. Такая ошибка возникает из-за проблем с автоматическим определением домашнего каталога.

Отключаем энергосбережение

Как и любая другая мобильная ОС, Android всеми силами старается сберечь энергию. Поэтому сразу после отключения экрана он как можно скорее переводит смартфон в режим suspend, при котором прекращается/снижается подача питания не только на экран, но и на сам процессор (аналог suspend to ram в компах).

Нам такое поведение будет только мешать, поэтому его следует отключить. Для этого активируем так называемый wakelock, который заставит систему не переходить в режим suspend:

Wakelock будет оставаться активным, пока жива система, но после перезагрузки его придется активировать снова. В прошивках, основанных на LineageOS/CyanogenMod, это можно автоматизировать. Создай файл со следующим содержимым:

И скопируй его в каталог /system/etc/init.d .

Продолжение доступно только участникам

Вариант 1. Присоединись к сообществу «Xakep.ru», чтобы читать все материалы на сайте

Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», увеличит личную накопительную скидку и позволит накапливать профессиональный рейтинг Xakep Score! Подробнее

Вариант 2. Открой один материал

Заинтересовала статья, но нет возможности стать членом клуба «Xakep.ru»? Тогда этот вариант для тебя! Обрати внимание: этот способ подходит только для статей, опубликованных более двух месяцев назад.

Евгений Зобнин

Редактор рубрики X-Mobile. По совместительству сисадмин. Большой фанат Linux, Plan 9, гаджетов и древних видеоигр.

admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *