Бывает такое, что смартфон становится ненужным — например, на нём разбивается экран или он просто старенький, тормозит даже браузер. Что делать с таким гаджетом, не выбрасывать же его? В самом деле, американцы летали на Луну с компьютерами, у которых характеристики много хуже, чем в вашем старом смартфоне. Скорее всего, в нём 4−8 процессорных ядер, 2−4 гигабайта оперативной памяти, блок бесперебойного питания с аккумулятором. Не слабее, чем некоторые компьютеры.
Попробуем найти этому смартфону полезное применение.
Рассматриваем варианты
Первый вариант, который приходит в голову — установить на телефон Linux-окружение и какой-нибудь полезный софт, который будет работать в «фоновом режиме» на пользу домашнему хозяйству. Что это может быть?
Ясно, что телефон не сможет работать как медиасервер и обрабатывать видеопотоки, для этого у него слишком слабый процессор.
Теоретически можно подключить к нему внешний HDD (тоже остался от сломанного ноутбука, для него куплен специальный корпус-переходник с интерфейсом USB). Даже на ёмкой карте microSD он вполне может работать как файловое хранилище или сервер для бэкапов, места хватит. Правда, карты microSD вряд ли можно посоветовать как надёжное хранилище, они часто выходят из строя.
Простая синхронизация
Если поднимать на телефоне сервер для бэкапов или файловый сервер, то самый простой вариант — это установить программу Syncthing.
Syncthing выполняет непрерывную синхронизацию файлов между двумя или более компьютерами в режиме реального времени. В таком варианте синхронизации отсутствует центральный сервер, а все компьютеры участвуют в синхронизации как бы peer-to-peer. Синхронизация идёт по дате изменения файла, ещё имеется поддержка синхронизации на уровне блоков, т.е. при небольших изменениях в файле, будут синхронизированы только изменившиеся блоки, а не весь файл сразу. Трафик шифруется по TLS (transport layer security). Опять же, программа с открытым исходным кодом, что говорит в пользу надёжности и безопасности такого решения.
В любом случае для персональных компьютеров и ноутбуков в доме нужно резервное хранилище, так что это вполне подходящий вариант.
Syncthing выпускается под все распространённые операционные системы: Linux, Windows, macOS, FreeBSD, OpenBSD, NetBSD, Dragonfly BSD, Illumos, Solaris. Ну и Android, конечно. То есть можно выполнять синхронизацию файлов между всеми этими устройствами, если поставить клиент на каждое из них. Затем в программе на компьютере добавляем ID устройства — и они синхронизируются.
Syncthing на компьютере
Затем остаётся выбрать папки для синхронизации на компьютере и телефоне.
Syncthing на телефоне
Потом программа может постоянно работать в фоновом режиме. Как вариант, можно установить конкретные условия, при которых она выполняется.
Сервер для резервного копирования под Linux
Можно поставить более серьёзную программу — UrBackup. Это опенсорсный сервер для резервного копирования. Он может работать по такому же принципу, что и Syncthing — постоянно в фоновом режиме отслеживать папки, которые требуется сохранять в резервной копии, но это более серьёзное решение, которое предпочтительно при управлении бэкапами в сети из десятка компьютеров. Система кроссплатформенная и поддерживает дистрибутивы Linux, Windows и Mac OS.
Веб-интерфейс UrBackup
Чтобы заработал UrBackup, нужно установить Linux-окружение. Тут у нас есть два варианта:
- Установить настоящий дистрибутив через Linux Deploy — опенсорсное приложение с открытым исходным кодом для простой и быстрой установки GNU/Linux на Android.
- Установить Linux-окружение Termux.
Первый вариант более сложный. Но теоретически он позволяет более эффективно использовать ресурсы системы.
Обязательное требование — рутованный смартфон (для рутования можно использовать инструмент, например, такой Magisk).
Итак, алгоритм примерно такой, судя по инструкции от Ханны Ли, которая и реализовала этот план.
- Подключаем HDD/SSD к телефону. Можно подключить его USB-кабелем напрямую: в этом случае мы получим максимально возможную скорость. Но на реальном файл-сервере или сервере бэкапов скорость не всегда является самым критичным фактором, разве что на очень больших объёмах чтения/записи. Важнее стабильность. С USB-кабелем гораздо выше риск столкнуться с ошибками ввода-вывода в процессе копирования.
Поэтому для повышения надёжности лучше использовать USB-хаб, в котором есть microUSB для выхода на телефон и стандартный USB для подключения HDD, плюс дополнительный разъём для питания.
В идеале нужно покупать хаб с адаптером Ethernet. Сервер может работать и по WiFi, но кабельное подключение надёжнее.
USB-хаб с разъёмом Ethernet и выходом microUSB
- Примонтировать HDD к телефону, то есть сделать его доступным для операционной системы на телефоне. Если не планировать форматирование диска в будущем, то его можно сразу добавить в
mounts
— и он будет монтироваться при каждой загрузке. После примонтирования его уже не получится форматировать, да это обычно и не нужно. Лучше монтировать его как логический диск, а не физическое устройство, потому что в последнем случае его имя (/dev/block/sdX
) может измениться после перезагрузки, а это нежелательно. Если примонтировать его как логический диск (/dev/sdX
), то имя не изменится.
Найти подключённый HDD, то есть узнать его имя в системе, можно командойlsblk
.
- На рутованный телефон скачиваем файлы .apk Linux Deploy и BusyBox. После этого устанавливаем BusyBox, конфигурируем Linux Deploy: выбираем Linux-дистрибутив, архитектуру, путь установки (HDD), размер образа, файловую систему, устанавливаем логин и пароль, разрешение использовать SSH-сервер и т. д. Указываем месторасположение BusyBox, затем ставим Linux Deploy. После установки нажимаем кнопку
START
— и на телефоне Android загружается нормальный Linux. Например, Debian.
- Поскольку мы при установке разрешили использовать SSH-сервер, то к нему можно подключиться по стандартному порту 22 с учётными данными, которые указали при установке Linux Deploy. IP-адрес можно посмотреть в программе.
- Скачиваем и устанавливаем UrBackup:
wget https://hndl.urbackup.org/Server/2.4.13/urbackup-server_2.4.13_arm64.deb
apt install -f ./urbackup-server_2.4.13_arm64.deb
- Создаём рабочую директорию, устанавливаем стартовый скрипт, запускаем сервис и создаём крон для него. После этого сервер будет доступен через веб-интерфейс по адресу
http://YOUR_SERVER_IP:55414
.
- Подключаем пользователей(это можно сделать через веб-интерфейс) Windows, Linux и т. д. У пользователей на машинах необходимо поставить соответствующее программное обеспечение, там будут инструкции, как соединиться с сервером и добавить конкретную машину на сервер.
Termux
Возможно, всё это можно сделать без рутования, с использованием Linux-окружения Termux. Проверим, так ли это.
Termux — это бесплатный эмулятор консоли и Linux-окружение под Android, которое устанавливается как обычное приложение и не требует рутового доступа, включает в себя множество пакетов операционной системы Linux. В базовом формате там установлен минимум, дополнительные пакеты можно организовать при помощи диспетчера пакетов «pkg» (аналоге apt). Это самый удобный способ запустить на Android практически любые линуксовые программы. Лучше устанавливать его с F-Droid, а не из Google Play.
Изначально Termux устанавливается в виде «голого» эмулятора. При первом запуске загружается небольшая базовая система, а все нужные пакеты можно установить с помощью менеджера пакетов
apt
, стандартного для Debian и Ubuntu. Но его тоже нужно будет установить с помощью встроенного пакетного менеджера pkg
.В нашем случае можно сразу установить apt:
pkg install apt
Затем с его помощью установить wget, ну или использовать родную команду
pkg
:pkg install wget
Потом можно установить тот же UrBackup, другой файл-сервер или сервер резервного копирования на свой выбор.
К примеру, можем поставить веб-сервер nginx:
pkg install nginx
После этого запускаем веб-сервер:
nginx
Если открыть браузер на смартфоне и набрать
localhost:8080
, то мы увидим работающий веб-сервер:Теперь можно скопировать в рабочую директорию nginx файлы HTML — и на телефоне будет полноценный сайт, который можно открыть для общего доступа через интернет. Тогда у нас будет собственный сервер и собственный хостинг, мы не платим никакому провайдеру, кроме сотового оператора, и можем публиковать в интернете что угодно. В принципе, сайт будет всем доступен до тех пор, пока телефон подключён к сотовой сети, на нём открыта сессия Termux, а в ней запущен nginx. Главное, чтобы сотовый оператор не блокировал этот трафик, потому что мы формально можем нарушать его условия обслуживания.
Конечно, для надёжного хостинга лучше рутануть смартфон и установить нормальный дистрибутив через Linux Deploy. Но и в Termux всё работает, как видим.
Вывод: Таким образом, даже из старого смартфона Android можно сделать адекватный, полнофункциональный многоядерный Linux-сервер на ARM-архитектуре. Если подключить внешний HDD/SDD, то он будет работать как хранилище файлов, сервер резервного копирования для домашней сети или веб-сервер, для ваших личных нужд.
НЛО прилетело и оставило здесь промокоды для читателей нашего блога:
— 15% на все тарифы VDS (кроме тарифа Прогрев) — HABRFIRSTVDS.
— 20% на выделенные серверы AMD Ryzen и Intel Core — HABRFIRSTDEDIC.
Доступно до 31 декабря 2021 г.
Комментарии (88)
drno-reg
08.11.2021 13:01если возможно на мобильном телефоне запустить майнинг, то возможно и поднять web сервер, задумывался об этом еще лет 5 тому назад, спс за перевод статьи
mihmig
08.11.2021 13:06+2>>тормозит даже браузер
Вот как такое может быть? Ну, сайты сейчас все на фреймворках пишут, не задумываясь, понимаю.
Но сам 3+ летний аппарат даже загружается медленнее.
Может ли это быть связано с деградацией флеш-памяти?Revertis
08.11.2021 13:44Я тоже давно думал об этом, и единственный вариант это как раз деградация флэш-памяти, да :(
DikSoft
08.11.2021 14:13+1Деградация системного ПО - более вероятная причина. Сброшенный к заводским настройкам трёхлетний телефон снова летает. Но недолго.
Revertis
08.11.2021 14:18Вот передо мной как раз исключение, получается - Sony XZ, с полностью переустановленной ОСью, и всё работает с тормозами. Но я допускаю и психологический эффект - после пользования более новым устройством всё кажется тормозным :-/
DikSoft
08.11.2021 17:38+2Либо дурной пример Apple, тормозящей устройства по состоянию батареи, оказался заразителен.
tmin10
08.11.2021 14:57У меня на нексус 7 тормозил даже UI андроида, а в своё время была очень хорошей железка.
S-trace
09.11.2021 09:42+1Думаю, может быть связано либо с деградацией, либо с разрядом от времени.
Совсем недавно столкнулся с тем, что на установленном в ноутбуке NVME SSD (ноут используется каждый день) надо было подвинуть разделы — и первый раз движение раздела размером в 210 гигабайт заняло порядка 1.5 часов, а второй раз этот же раздел почти на том же месте (разница метров 200) подвинулся всего лишь за 15 минут. Мне кажется, это связано было с тем, что на разделе хранится много данных используемых только на чтение, и их ячейки со временем разрядились и начали выдавать ошибки на чтение, которые контроллеру при первом движении приходилось корректировать, что занимало время. А второй раз он читал уже свежезаписанные ячейки, и там ошибок чтения было мало.
К вопросу о необходимости заряжать флешки.dikey_0ficial
10.11.2021 18:03о, про зарядку флешек...
где-то читал, что с ссдшниками такая штука не очень работает в современных компах, т.к. там почти постоянно идёт чтение/запись чего-либо, и времени покоя нет
titbit
08.11.2021 13:08+3У меня старый смарт трудится в качестве «умной камеры» видеонаблюдения, на большее его не хватает (1 ядро, 512мб памяти всего) — видеопоток отдает по wifi, греется правда слегка.
Основная проблема у старых устройств — это их почти полная неремонтопригодность, все приходится делать костылями. Пример: у почти всех старых устройств умирает аккумулятор (в моем случае сильно вздулся, т.е. в корпус не влазит больше никак), запустить от usb-питания, даже он 10А блока нельзя, а новый аккумулятор разумеется достать тоже негде — срок выпуска аккумуляторов не превышает 1-2 года после выпуска телефона. Приходится на ровном месте городить костыли, чтобы это чудо могло включиться и работать, причем не только менять схему подключения аккума, но и патчить софт.
Вторая проблема, например — деградация встроенной emmc. Это опять костылищи, чтобы это обойти. Причем в андроиде запись в emmc сделана синхронной что-ли, потому что при деградации время отклика системы растет доходя до ANR прямо со старта, из-за чего система пытается записать лог, который (бинго!) опять приводит к тормозам, и так по кругу. Спасает загрузка с внешней карты, ее хоть менять можно.
В обоих примерах производителям было бы несложно сильно упростить решения этих проблем, но это никому не надо.2ruslank
08.11.2021 13:36+7У меня старый телефон , motorola defy, висит в подвале с самописной системой видеонаблюдения - шлет фотки в телеграм. Работает без акамулятора . dc-dc переобразователь на 4,2 вольта и провода припаяны вместо аккамулятора. в таком виде живет уже несколько лет.
В машине тоже несколько лет живет небезизвестный nexus 7 13 года, тоже без батареи.
С более новыми смартфонами хуже - у них контактные площадки такие что туда сложно провода подцепить . Одна надежда на то что с правом на ремонт вернутся нормальные батареии которые можно менять без специнструмента и опять можно будет старые девайсы переиспользовать
WebConn
08.11.2021 16:19О, а что у вас в машине сейчас может nexus 7? Сам недавно смотрел на машину с установленным в неё именно nexus 7 (2012 года), но там даже яндекс.карты не смогли запуститься (был прошит до android 6, емнип)
2ruslank
08.11.2021 16:56Установлен 7 андроид без гугл сервисов (работает и с гугл сервисами, но без них как то проще жить) используется в основном для навигации . В основном это waze. После блокировки яндекса пришлось перейти - сейчас уже и не жалею, - возможностей больше (главное привыкнуть к интерфейсу). Второя программа навигаци - OsmAnd, эта что называется на всякий случай. Еще стоит PowerAmp, но сейчас почти не пользуюсь.
Настроил Automate при подключении нексуса к роутру в машине запускает вейз и включает екран, при отключении wifi - закрывает вайз и екран гаснет через полминуты. морочится с хардварным решением не захотел, так вполне комфортно.
Для такого использования нексуса более чем достаточно.
tonhead
08.11.2021 16:24Ооо, defy мой первый смартфон, лежит в кладовке, до сих пор приятно взять в руки покрутить малыша )
km2
22.11.2021 11:15+1Можно потыкать postmarketos https://wiki.postmarketos.org/wiki/Google_Nexus_7_2012_(asus-grouper)
Я например сейчас недавно запустил pmos на своей старой nokia lumia 630. Конечно не юзабельно, но интересно...
mihmig
08.11.2021 14:03-1А как это - загрузка с внешней карты?
S-trace
08.11.2021 17:44+3А как это — загрузка с внешней карты?
Собираем бутлоадер из исходников или патчим чтобы можно было выбирать грузиться с eMMC или с внешней сдкарты и пользуемся (патчингом, имхо, можно легко добиться что вместо eMMC будет работать внешняя сдкарта, но не выбора при загрузке, но для меню выбора откуда грузиться надо приложить много усилий).
Я такое делал (и сборку из исходников для девайса на MSM8228 с проблемной eMMC которая сравнительно часто отмирает, либо переходя в режим RO, либо отваливаетсо вообще и переводит смарт в режим 9008 (https://github.com/jsr-d10/android_bootable_bootloader_lk), и бинарный патчинг родного aboot для некоторых девайсов LG с полумёртвой eMMC).
При отвале и 9008 всё просто — этот смарт после неудачной попытки грузится с сдкарты сразу (если сдкарта правильная), при уходе в RO нужно чтобы в аппарате был прошит кастомный aboot до катастрофы, тогда он будет грузиться с eMMC, а затем искать загрузочную сдкарту и если найдёт — читать свою конфигурацию с неё и дальше действовать согласно ей.
Вообще, можно даже записать в boot ещё один aboot, и вшитый будет выполнять его поверх себя, тем самым можно даже обновлять aboot при eMMC ушедшей в RO (хотя я это на практике не проверял, но именно так дебажил aboot (формировал boot.img с новой версией и грузил его через fastboot boot)).
Затем готовим сдкарту с разметкой GPT и разделами как на eMMC (размеры можно менять, порядок разделов, GUIDы и имена лучше не трогать во имя совместимости), заливаем на сдкарту содержимое соответствующих разделов, в смарт заливаем патченный aboot и смарт грузится с сдкарты.
Правда, это катит только для старых девайсов, где нет проверки подписи aboot (на SD835+ к примеру это уже не прокатит, так как aboot в большинстве девайсов всё же проверяется на подлинность XBL'ом перед выполнением, даже если бутлоадер разлочен).
gameplayer55055
08.11.2021 13:11Хорошо, когда телефон легко разблокируется, прошивается, все работает, поддерживаются, или на крайняк есть термукс.
А от когда у тебя труба на вонючем 4.4.2, без апдейтов и наглухо залочен, то это бесполезный кусок микросхем.
Kickweb server прога понравилась, там и PHP, и mysql, и phpmyadmin. Как раз на мой дурацкий телефон поставил и работает до сих пор.
Для питона уже нужен термукс, а там четвертый андроид не поддерживается
dikey_0ficial
10.11.2021 18:09мой знакомый хостит ботов питонячих через pydroid, возможно вам пригодится :)
hssergey
08.11.2021 13:43Хотел сделать что-то подобное. И был неприятно удивлен, что termux не поддерживает все что ниже Android 7.
koreychenko
08.11.2021 14:30+21У меня коллега поднял веб-сервер на пылесосе Xiaomi (там какой-то линукс, чуть ли не дебиан стоял) и очень удивлялся, почему иногда сайт с него быстро открывался, а иногда сильно дольше. Оказалось, что когда пылесос уезжал в дальние углы квартиры там вайфай плохо ловил.
DevAdv
08.11.2021 20:42Там в основном стоит Ubuntu 14.04, даже на моделях Roborock 2021 года.
koreychenko
09.11.2021 11:24+1<sarcasm>
Это возмутительно! Как может пылесос работать на такой старой версии линукса! А какже поддержка актуальных видеокарт и процессоров!
</sarcasm>
anwender95
09.11.2021 08:38Лучше бы на чайник поставил) Он то никуда не убежит. Если его чилавек не утащит)
ajijiadduh
08.11.2021 15:32+2https://habr.com/ru/company/ruvds/blog/564166/
https://habr.com/ru/post/556496/где можно найти кнопку вызова модератора?
gdt
08.11.2021 15:56+3Тема одна и та же, но методика разная всё же - т. е. разный контент, в чём проблема?
ajijiadduh
08.11.2021 17:18-1ага, разная методика с 1 инструкции. логично.
до термукса там одно и тоже
gdt
08.11.2021 17:27+3У кого-то из нас двоих проблемы со чтением. Я прочитал так, что в этой статье есть информация про установку linux, а также использование termux, а в статье по вашей ссылке — разобраны вопросы установки PostmarketOS на смартфон. Как прочитали вы? А то я в упор не вижу подтверждения вашим словам.
romancelover
08.11.2021 17:14Через мобильную сеть хостинг проблемно будет организовать из-за отсутствия внешнего IP-адреса. Мобильные операторы их не дают, ни один оператор в России. Есть на МТС услуга Real IP, но там трафик помегабайтный по конским ценам. По внутренним IP-адресам в сети оператора обмен данными практически всегда закрыт.
Это чаще всего используется даже не для хостинга сайтов, а для организации видеонаблюдения. На смартфоне есть камера, можно использовать его как IP-камеру, детекцию движения можно вроде тоже прикрутить. Хотя чаще используют специализированные видеорегистраторы.
Часто проблему отсутствия внешнего IP решают с помощью VPN, но это требует внешнего сервера. Я видел устройство, которое могло устанавливать исходящее подключение для управления, при этом ему СМСкой передавался IP и порт клиента.
Можно с IPv6 попробовать, но он есть только на МТС, не на других операторах в России. Для подключения к такому сайту клиент тоже должен иметь IPv6. При этом статического IPv6 адреса тоже не дают, нужно прикручивать ещё клиент динамического DNS (можно через Automate скрипт поставить, можно через отдельное приложение), либо ещё какими-то костылями (например, в ответ на СМС с определённого номера Automate-скрипт отправляет текущий IP). Услуга "динамический DNS со стороны провайдера" была замечена на белорусском МТС, в России такого нет.
Ztare
08.11.2021 18:19Идея очень классная. Однако по опыту установки всяких утилит для файлообменников на arm платах (Cubieboard 5) есть вопрос — какова скорость обмена? У меня вобще неадекватные скорости были и по ощущениям проблемы именно в процессоре.
NeoCode
08.11.2021 19:33А как вообще смартфоны себя ведут в режиме постоянной подпитки от зарядного устройства, с точки зрения пожарной безопасности? Есть какие-то правила или исследования на эту тему?
2ruslank
09.11.2021 13:02Я у себя одно время держал телефон на реле времени .Посмотрел разряд-заряд , потом настроил реле что бы батарея разряжалась до половины, потом заряд до 100%.
Iv38
10.11.2021 03:52Я подобным образом приводы штор заряжаю, они аккумуляторные. Но смартфоны позволяют поступать более интеллектуально. Если, например, использовать старый смартфон как панель умного дома, то можно функционал этого умного дома и задействовать. Приложение Home Assistant, к примеру, передаёт со смартфона в систему управления кучу всяких данных, включая данные об уровне заряда аккумулятора. После этого реализация зарядки в нужном диапазоне становится вопросом пары автоматизаций в сочетании с управляемой розеткой. Но можно и без умного дома как такового обойтись, используя софт для автоматизаций под Андроид и управляемую wifi-розетку (лишь бы у неё был открытый API) или используя облачные сервисы автоматизации.
2ruslank
10.11.2021 10:08Можете немного поделится насчет смартфонов и Home Assistant? Время от времени возникает желание сделать квартиру более умной. Можно ли смартфон использовать как камеру в Home Assistant и/или сервер для умного дома?
По питанию была идея сделать простой девайс который подключен по юсб к смартфону и который бы ключал-отключал питание, а у управляло этим приложение на смартфоне. Но лень победила - выбросить батарею и припаять провода оказалась проще.
Iv38
10.11.2021 15:21Про камеры я вообще ничего не знаю в принципе, ни про какие, не использую.
Сделать из смартфона сервер для HA теоретически возможно. Если удастся на нём завести питон, то шансы уже не нулевые, а если докер - тем более. Но я считаю, что так делать в принципе не надо. Сервер УД должен быть стабильным и легко заменяемым в случае выхода из строя. С телефоном этого сложно добиться. И вообще, когда твоё железо значительно отличается от того, что принято в сообществе выбранного софта, ты остаёшься с проблемами один на один.
По питанию была идея сделать простой девайс который подключен по юсб к смартфону и который бы ключал-отключал питание, а у управляло этим приложение на смартфоне.
Подразумевалось, что управление будет тоже по USB? Я не уверен, что телефон в режиме USB-хоста в принципе может получать питание. По крайней мере до USB PD. А вот если каналом управления выбрать блютус или вайфай, то такое довольно легко сделать.
2ruslank
10.11.2021 17:29Да , питание и управление по usb. Андроид девайс может выступать в роли хоста (тогда смартфон питает оборудование) и в роли аксесуара (тогда оборудование питает смартфон), с этим, теоретически, проблем быть не должно.
Iv38
11.11.2021 18:39Может, но не одновременно же. А тут получается, что зарядник должен быть хостом, чтобы заряжать, но это неудобно с точки зрения передачи данных, сложно в реализации. Гораздо проще, когда хост в телефоне. Либо зарядник должен раз в несколько минут переобываться из зарядника в конечное устройство, получать данные с телефона, и переобуваться обратно в зарядник. Тоже сложно, да ещё и будет вызывать специфекты в виде звуков, и индикации начала зарядки каждый раз.
2ruslank
11.11.2021 21:01Если не сложно, чуть подробней про ограничения связанные с тем что зарядное выступает в качестве хоста и проблемы с передачей данных. Вроде ничего такого не встречал. Режим хостт или аксессуар влияет только на то кто кого питает, но не на обмен данными. Если я все правильно понял из документации.
Iv38
12.11.2021 13:23Проще начать от противного. Если бы зарядник был конечным usb-устройством, то простейшим способом организовать общение с ним был бы, наверное, USB-UART, что легко реализуется одним внешним чипом, который просто сразу даёт этот функционал в готовом виде.
А с хостом так не выйдет, хост гораздо сложнее, на нём лежит вся организация общения по шине. Можно взять контроллер с аппаратным USB, но всё равно придётся много чего сконфигурировать, ведь хост штука универсальная. Ну, допустим, так как задача простая, был реализован урезанный хост, который умеет определять, что к нему подключено устройство с указанным VID/PID и умеет организовать общение с одним эндпоинтом определённого типа.
Теперь задача сделать из телефона конечное устройство. К счастью, он это умеет из коробки, но какие там протоколы? MTP, камера и ADB? ADB сойдёт, наверное, но тогда на хосте в заряднике надо ещё и его реализовать. Я не знаю, могут ли приложения под Андроид реализовывать свои протоколы USB в режиме устройства. Никогда не слышал о таком.
В общем, может я и не прав и просто недостаточно шарю, но кажется, что уровень низкоуровнего хардкора возрастает до небес. По сравнению с простой возможностью взять готовый копеечный чип. И тут самое время вспомнить, что ты всего лишь хотел реализовать управление зарядкой.
iShrimp
09.11.2021 20:21+1Лучше всего установить приложение Battery Charge Limit (если поддерживается) и ограничить максимальный заряд примерно на 80%. Так как при 100%, что может соответствовать 4,1-4,2 В и более, контроллер всё ещё продолжает долбить батарею микроциклами, что явно не добавляет ей здоровья.
Iv38
10.11.2021 03:56О, та фича, которой мне так не хватает в самом Андроиде таки реализуема с рутом. Спасибо! Я подозревал, но не знал, что такой софт всё же существует.
x2v0
08.11.2021 19:41+1Я на своем разбитом смартфоне в termuxe поднял sshd server, ftpd server. Прописал это в .bashrc.
busybox tcpsvd -vE 192.168.0.11 3333
busybox ftpd -w /data/data/com.termux/files/home&
sshd -d
termux-wake-lock - чтобы кирпич не засыпал.На стареньком разбитом ноуте установил putty, norton commander с ftp, VS Code с ftp plugin + на нортоне сделал VS Code редактором (F4) и получил удаленную 8-ядерную linux машину.
Во времена моей юности, когда буковки на экране терминала были зелеными, а люди в белых халатах назывались операторами ЭВМ, о такой машине можно было только мечтать.
Весь opencv (11400 файлов, в 1980 папках) собрался из исходников на нем всего за пару часов.
Через мобильную сеть хостинг проблемно будет организовать из-за отсутствия внешнего IP-адреса.
Есть heroku, ngrok и им подобные
Elsedar
08.11.2021 19:43Думаю было бы удобно держать на нем home assistant, было бы не хуже raspberry pi.
resk0
08.11.2021 22:08Интересная статья на самом деле. Спасибо автору.
Сайт, конечно, поднимать на телефоне не планировал, но мне напомнило одну мою старую идею, после того как возникли сложности с использованием на территории СНГ аккаунта Paypal, зарегистрированного в США. Я тогда всерьез подумывал при следующем визите в США купить какой-то дешевый смартфон и спрятать его возле 24\7 WiFi (на зарядке конечно). Планировал заходить через него на Paypal. Но так и не реализовал эту идею - думал или Socks5 поднимать, или просто Remote Desktop. хотя, наверное, есть более продвинутые варианты. Вот об этом почитать было бы тоже охота.
drWhy
08.11.2021 22:18Где-то в статьях пробегало — велокурьеры развешивают смартфоны на деревьях вблизи пунктов отправки заказов для гарантированного их получения.
elfukado
09.11.2021 06:24+4Меня в таких проектах напрягают трудозатраты на развёртывание (избавиться от акб, ковыряться с загрузчиками и прошивками, если ещё найдёшь под свою модель, а в них будет сильно урезанный устаревший список пакетов, для чего-то нестандартного - опять сидеть компилить и не факт, что заработает), надёжность и сложность диагностики при проблемах.
В итоге купил за копейки старый неттоп на атоме. Нормальный биос, нормальный загрузчик, sata 2.5, полноценный, хоть и медленный линукс со всеми обновлениями. А предыдущий смартфон проще продать, пускай кто-нибудь ещё попользуется по назначению.
iShrimp
09.11.2021 20:38+1Теоретически, из старого смартфона, как и из Raspberry pi, можно сделать всё что угодно, но фишка смартфона - хорошая камера и батарея на несколько часов работы, поэтому выгоднее превратить его в видеорегистратор. Только нужно обязательно настроить автозагрузку ОС при подаче питания и установить Battery Charge Limit, чтобы циклы заряда-разряда не шли постоянно в районе 100%.
Ryav
11.11.2021 18:44Я пробовал настроить BCL, но, несмотря на рут, всё равно продолжается заряжать до победного.
rvt
10.11.2021 20:02+1А ничего телефону (вернее, его аккумулятору) не будет при постоянyом подключении к сети 220 V? Батарея не вздуется?
Iv38
11.11.2021 18:42На этот вопрос нельзя однозначно ответить. Сильно зависит от реализации контроллера батареи в конкретном аппарате. Некоторые очень быстро дохнут, некоторые живут годами без проблем.
untilx
11.11.2021 06:18На самом деле есть не совсем очевидное применение для старых телефонов: в качестве системы мониторинга с возможностью оповещений и управления по sms (например, через smsd). Но тут уже нужно руками поработать. При желании можно подкрутить туда ещё и какую-нибудь ардуину с датчиками температуры, влажности и тараканов.
Ryav
11.11.2021 18:46Кстати, был такой RemoteBot, который позволял управлять телефоном через телеграм и смс, но сейчас поддержка его прекращена. Меня больше всего интересовала возможность получать смс в телеграме, и вот не против получить нечто такое же. В какую сторону копать?
untilx
12.11.2021 07:08smstools3 умеет запускать всякие скрипты при определённых событиях. написать к нему простого бота, который будет вызываться при входящих сообщениях, и дело в шляпе. но, чтобы прям что-то андроидное, даже не знаю
n_demitsuri
17.11.2021 15:22Как именно реализуется схема одновременных зарядки телефона и работы с внешним диском? Специальный хаб какой-то? Все телефоны так могут? Всегда думал, такое не работает.
x2v0
21.11.2021 14:34В нашем случае можно сразу установить apt:
pkg install apt
ДЕБИЛЫ!!! Бъ
pkg - это же надстройка над apt
после этой операции полностью сломался apt !!!
$aptCANNOT LINK EXECUTABLE "apt": cannot locate symbol "__emutls_get_address" referenced by "/data/data/com.termux/files/usr/lib/libapt-pkg.so"...
На Андроид 11 копирование на USB запретили, и даже на microSD операции по созданию/удалению файлов на этом носителе занимают "бесконечное" время.
Потратил целое утро на тестирование этого "явления".System: Android11, Termux 0.117
test directory ~/D/wrk/py= 350 Mb
~/D -> /storage/0093-2100 - microSD (128 Gb)
----------------------------------
ls ~/D/wrk/py
dicompyler-core
dicompyler-plugins
mitmproxy
pydicom
----------------------------------
~/D/wrk $ time rm -rf py
real 5m36.776s
user 0m0.054s
sys 0m0.579s
----------------------------------
~/D/wrk $ time tar czf py.tar.gz py
real 0m15.338s
user 0m8.995s
sys 0m1.261s
----------------------------------
~/D/wrk $time cp -rf py py1
real 1m39.331s
user 0m0.109s
sys 0m1.609s
'
----------------------------------
~/D/wrk $ time tar xzf py.tar.gz
real 1m41.104s
user 0m2.393s
sys 0m2.116s
----------------------------------
~/D/wrk $ time cp -rf py ~/tmp/
real 0m12.371s
user 0m0.220s
sys 0m3.173s
----------------------------------
~/D/wrk $ time mv py ~/tmp/
real 5m52.948s
user 0m0.252s
sys 0m4.175s
'
----------------------------------
~/D/wrk $ time mv py py1
real 0m19.877s
user 0m0.006s
sys 0m0.029s
----------------------------------
~/tmp $ time mv py ~/D/wrk/py1
real 1m36.492s
user 0m0.232s
sys 0m3.349s
----------------------------------
~/tmp $ time rm -rf py
real 0m0.181s
user 0m0.017s
sys 0m0.104s
----------------------------------
~/tmp $ time tar zxf py.tar.gz
real 0m2.485s
user 0m1.993s
sys 0m0.618s
----------------------------------
~/tmp $ time mv py ~/storage/dcim/
real 0m40.538s
user 0m0.152s
sys 0m2.738s
----------------------------------
~/storage/dcim $ time rm -rf py
real 2m25.909s
user 0m0.068s
sys 0m0.642s
--------------------------------------------------------------------
Summary.
~/D/wrk $ time rm -rf py = real 5m36.776s = 336s
~/storage/dcim $ time rm -rf py = real 2m25.909s = 146s
~/tmp $ time rm -rf py = real 0.181s
операция на microSD/internal = 336/0.18 = в 1866 раз медленнее
external(shared disk)/internal = 146/0.18 = в 811 раз медленнее
АД2!
Нашёл объяснение на
https://learning-python.com/mergeall-android11-updates.html?fbclid=IwAR2GOxiobAt5TJ2OKxg_l6qdYpp4hbAeTxRHaadpYjpeZWJUZ68dtOESRH4#asb5-update
ConclusionsOn a personal note, the Android 11 auto-update has functionally bricked this developer's phone, and seems the same as an auto maker creeping into your driveway and removing your car's engine. This device today can no longer be used for content backup and view—one of the main purposes for which it was purchased—and the fault squarely lies with the dubious agendas underlying Android 11. Though spun aggressively (and sometimes arrogantly) as enhanced security, the only thing 11's changes seem sure to secure is the revenue stream of cloud providers and mobile advertisers.
там же
Postscript: Android 10 Rocks AgainThe rollback to Android 10 went off without a hitch, and fully restored all the functionality Android 11 took away. In particular: USB drives are back again—the access revoked by Android 11 is available to Python programs on 10; and shared storage is blazingly fast again—the internal-to-internal 124K-file Mergeall compare that took 104 to 168 seconds on Android 11 finishes in just 8 to 9 seconds on 10. That is: yes!
That's great news, but also in some ways sad. Android 11's architectural changes are clearly designed to lock out everything except proprietary Java-based code that uses proprietary Java-based frameworks and will run nowhere else. This is a blatant and short-sighted affront to interoperability, which dramatically limits device utility and scope. POSIX-based tools like Python, and the decades of prior art they enabled, are not invited. This may reflect a culture clash of sorts, but the ramparts are being raised by Android alone.
With all the data in, Android 11 has indeed robbed its users of swaths of functionality in the name of a dodgy security rationale, and probably is the end of the line for these gadgets' flirtation with general-purpose computing. This seems nearly inevitable in hindsight. A platform which both excludes contributors and severs the flow of content between programs can only be doomed to a future of inane consumption and greedy coercion.
And yet, there is a bright side to close with here. By the time today's phone batteries die, Android will almost certainly be something completely different yet again—if not subsumed by friendlier alternatives altogether. That's a sequel which remains happily untold. Hope, after all, can never be deprecated.
Похоже, это последствия перехода с эмуляции FAT на exFAT.Тем не менее, удаление директории с помощью файл менеджера (MiXporer, ghostcommander) - пара секунд
vovasik
Только зачем все это делать?
tonhead
У меня видео с камеры наблюдения пишется на фтп на флешку, вставленную в роутер. Большего уже не добиться, нужно ставить отдельную железку, если хочется веб интерфейс к записям, например.
Leon010203
А старые записи только вручную стирать?
tonhead
Да, приходится раз в месяц вспоминать и удалять с фтп старые папки, ведь на роутере нет крон тасок, например. Тут бы тоже пригодился выделенный сервер, работающий 24/7
VPryadchenko
Надо заменить роутер старым смартфоном :)
DaemonGloom
А на роутере их точно нет? Вроде, многие умеют подобное.
Альтернативно — если есть компьютер, то добавить туда задачу на очистку ftp сервера.
tonhead
Компьютер лениво было настраивать, решил проблему покупкой большой флешки
phikus
Очень многие роутеры умеют пусть не искаропки, но с минимальными телодвижениями, типа кинетиков и тех, которые поддерживают OpenWRT.
А там где cron, там и curl, а значит можно приделать уведомления через Telegram
tonhead
Думал об этом, но пока преимуществ openwrt недостаточно чтобы свое время в это вкладывать. Пока одна камера, это не доставляет особо проблем вручную раз в месяц удалять
Nordicx86
Возьмите микротик там есть скрипты
VPryadchenko
Upcycling
amarao
Зачем переделывать старое, если можно пойти и купить новое? А старое выкинуть! И новое выкинуть, потому что оно скоро станет старым! Больше покупай! Больше выкидывай! Даёшь 10 тонн пластика в год с человека в мусор!
untilx
Во славу Генри Форда, разумеется!
Netzwerker
Мне кажется, подобного рода проекты вполне могут стать современной тенденцией. Если учесть дефицит чипов и новомодные течения по ресайклингу всего что ни попадя. Всякое может быть… А с другой стороны пока это материально не оправдано, то делать это имеет смысл только в учебных целях.
Поживем увидим…
HellWalk
Учитывая, что масса ресурсов - невозобновляемые, думаю что идеи использования старых, но работающих телефонов/компьютеров будут нарастать с годами.
Пока мы живем в эпоху перерабатывания ресурсов в мусор, но долго это продолжаться не будет.
vovasik
Мне небезосновательно кажется что пропускная способность micro usb который обычно имеется в смартфонах не достаточно что бы как то использовать смартфон в качестве чего либо в режиме 24/7. Плюс надёжность компонентов такого решения чего ниже серверного решения и десктопного и скорее всего любого другого.
А хранить бекапы в устройстве которое может отъехать например до их извлечения в случае надобности мне кажется плохой идеей
Dima_Sharihin
Пропускная способность USB2.0 - 480 мегабит в секунду, вы что за сайт хостить собрались, что вам её не хватит?
Ну и сейчас сравнивать мобилку с сервером, ага. По шуму, энергопотреблению, габаритам... вообще лучше взять малину и не кушать мозг
vovasik
но на деле это так не работает, порт рулет медленно даже если попробовать файлы на флешку. Думаю если если туда ещё и хаб воткнуть лучше не станет. Может конечно только у меня такое происходит, но я подробную ситуацию на нескольких телефонах видел
ComodoHacker
Файлы на флешку вы копируете скорее всего по протоколу MTP, который добавляет приличный оверхед.
vovasik
воможно, но на сколько он большой неизвестно, мне кажется что кроме этого скорость взаимодействия с SD тоже какой то оверхед дает, к тому же скорость доступа к сети на тлефоне буедет не такая мы привыкли на пк и в конечном итоге все это сложится в то что работа с таким устроством не будет быстрой. К тому же не зря же сервера не выглядят как телефон с usb хабом, есть этому какие то причины должно быть.
Но если скажем получится продать телефон за 1500 рублей и не покпать хаб еще за 1000 получится вполне себе бюджетдля покупки raspberry pi/orange pi где будет уже полноценный linux и usb порты может даже будет sata разъем и это все точно сможет работаь 24/7 минусов конечно и там хватает, но все же получше и проще в реализации. Или если хочется приключений можно тв бокс купить на том же андройде хотя бы с разъемом RJ45 и иам уже делать все что описано в статье. Телефон мне кажется имеет смысл переделать только в видеорегистратор. Потому что там камера хорошая, сравнимое в массовыми решения с массовыми решениями, а домашние сервера кажется целесообразнее собирать из более подходящих для этого девайсов.
StjarnornasFred
Имхо, это одна из самых полезных публикаций на Хабре вообще. Потому что старый смартфон или планшет, который вполне исправен, есть у каждого: выбросить жалко (работает же), использовать по прямому назначению невозможно (устарел, экран разбит, аккумулятор не держит), вот и лежит себе. А тут - прекрасный способ реиспользования. Спасибо, схоронилъ.
Единственное что - вот с этого места
...надо бы поподробнее - как всё это делать при отсутствии в термуксе адекватного интерфейса, текстовыми командами.
У меня старый смартфон (SGN4 со сломавшимся после 5 лет эксплуатации микрофоном) используется в качестве второй камеры для видеоблога. Снимает по современным меркам более чем удовлетворительно.
И сразу вопрос: а есть ли такое приложение, которое только и делает что крутит мобильную рекламу на экране? Ту самую, за просмотр которой в играх кристалл дают. Ну или просто баннеры. Если да, то под это можно замутить интересную идею а-ля "майнинг экраном", где рекламная сеть платит за показы.
Andrus_Trash
Идея далеко не нова. Кликферм в Китае огромное количество.
dikey_0ficial
была такая штука, globus называлась, но она багалась и через полгода после рекламы у популярных блогеров начали мусорить, в последних не-плеймаркетовых сборках появились трояны
Foreglance
Если речь о файл-менеджере с интерфейсом в терминале - вероятно можно поставить mc (Midnight Commander).