>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Systemy wbudowane Bezpieczeństwo
Java

Jak przekształcić stary telefon z Androidem w samodzielny serwer za pomocą Termux Boot

Wielu z nas ma stary smartfon z Androidem, który leży w domu i zbiera kurz. Ekran jest lekko pęknięty, bateria nie trzyma już dobrze ładunku, a nie można go sprzedać za rozsądną cenę. Jednak w środku znajduje się w pełni sprawny procesor czterordzeniowy i kilka gigabajtów pamięci RAM. To sprawia, że ten sprzęt doskonale nadaje się na domowy serwer dla botów Telegram, lekkich skryptów automatyzacji lub lokalnego węzła SSH.

Terminal Termux już dawno przekształcił Androida w pełnoprawne środowisko Linux. Ale jest irytujące zastrzeżenie. Jeśli smartfon wyłączy się z powodu rozładowanej baterii lub uruchomi się ponownie po aktualizacji, wszystkie uruchomione procesy zostaną przerwane. Będziesz musiał ręcznie otworzyć aplikację, wpisać polecenia i uruchomić usługi od nowa.

Dodatek Termux:Boot pomaga rozwiązać ten problem. To narzędzie podłącza się do zdarzenia uruchomienia systemu operacyjnego i uruchamia skrypty użytkownika.

Jak działa autostart w Androidzie

Android jest surowy jeśli chodzi o procesy w tle. System nie pozwala aplikacjom uruchamiać się wraz z systemem operacyjnym bez bezpośredniej zgody użytkownika i specjalnych uprawnień.

Termux:Boot działa jako mostek między zdarzeniem systemowym BOOT_COMPLETED a Twoim środowiskiem Linux wewnątrz Termuksa. Gdy smartfon się włączy, dodatek odbiera sygnał od systemu, sprawdza wyznaczony katalog użytkownika i uruchamia znalezione w nim pliki wykonywalne w kolejności.

Jest tu niuans związany z podpisywaniem aplikacji. Termux i Termux:Boot komunikują się poprzez współdzielone prawa dostępu. Ze względu na zasady bezpieczeństwa Androida, obie aplikacje muszą być podpisane tym samym kluczem dewelopera.

Jeśli zainstalowałeś główny Termux z F-Droid, to wtyczka Termux:Boot musi również pochodzić wyłącznie z F-Droid. Próba połączenia kompilacji z Google Play z plikiem APK z F-Droid spowoduje błąd dostępu. Jeśli chcesz przetestować najnowsze commity, deweloperzy przesyłają kompilacje debugowania do GitHub Actions. Ale pamiętaj: zmiana źródła instalacji będzie wymagać całkowitego usunięcia Termuksa i wszystkich jego wtyczek.

Konfiguracja krok po kroku

Schemat konfiguracji jest prosty. Wszystko sprowadza się do utworzenia jednego folderu i kilku plików tekstowych.

Najpierw musisz zainstalować sam dodatek Termux:Boot. Po instalacji koniecznie znajdź jego ikonę w menu aplikacji i kliknij ją raz. To daje dodatkowi uprawnienia do przechwytywania autostartu systemu. Bez tego działania Android po prostu zablokuje uruchamianie w tle.

Następnie otwórz terminal Termuks i utwórz katalog na skrypty:

mkdir -p ~/.termux/boot/

Wszystkie pliki umieszczone w tym folderze staną się scenariuszami autostartu. Jeśli w folderze znajduje się wiele plików, wtyczka wykona je w kolejności alfabetycznej.

Aby zapobiec zapadnięciu smartfona w głęboki sen pięć minut po uruchomieniu, polecenie termux-wake-lock przydaje się na samym początku skryptów. Zmusza ono Androida do utrzymywania procesora w stanie aktywnym.

Przykłady działających skryptów

Przejdźmy przez kilka praktycznych scenariuszy. Częstym zadaniem jest uzyskanie dostępu SSH do urządzenia natychmiast po uruchomieniu systemu.

Utwórzmy plik ~/.termux/boot/start-sshd:

#!/data/data/com.termux/files/usr/bin/sh
termux-wake-lock
sshd

Upewnij się, że plik jest wykonywalny, w przeciwnym razie system go zignoruje:

chmod +x ~/.termux/boot/start-sshd

Teraz po ponownym uruchomieniu telefonu Termux uruchomi serwer SSH w tle. Będziesz mógł połączyć się z nim przez sieć bez żadnej interakcji z ekranem.

Jeśli używasz pakietu termux-services do zarządzania demonami systemowymi (odpowiednik systemd w zwykłych dystrybucjach Linuksa), skrypt startowy wygląda tak:

#!/data/data/com.termux/files/usr/bin/sh
termux-wake-lock
source /data/data/com.termux/files/usr/etc/profile.d/start-services.sh

Utwórz ten plik w ~/.termux/boot/start-services, nadaj mu uprawnienia do wykonywania, a wszystkie usługi włączone za pomocą polecenia sv-enable uruchomią się automatycznie.

Praktyczne przypadki użycia

Główna wartość projektu tkwi w całkowitej autonomii. Smartfon zamienia się w cichy mini-serwer z własnym wbudowanym zasilaniem awaryjnym.

Oto kilka jasnych scenariuszy:

  • Hosting bota Telegram. Bot uruchamia się wraz z urządzeniem i działa bez stałego nadzoru.
  • Synchronizacja plików przez Syncthing. Telefon działa jako węzeł dostępny 24/7 do tworzenia kopii zapasowych zdjęć lub dokumentów.
  • Monitorowanie sieci domowej. Skrypt okresowo sprawdza dostępność routera lub zewnętrznych usług i wysyła powiadomienia o awariach.
  • Lokalny serwer bazy danych, jak SQLite lub PostgreSQL, do zbierania logów z urządzeń inteligentnego domu.

Debugowanie i pułapki

Nie ma idealnych rozwiązań, a Termux:Boot ma swoje własne dziwactwa.

Agresywne oszczędzanie energii w nowoczesnych firmware'ach Androida uwielbia zabijać procesy w tle. MIUI, One UI i EMUI są szczególnie winne. Aby wtyczka działała bez problemów, przejdź do ustawień baterii Androida i wyłącz optymalizację baterii dla Termuksa i Termux:Boot. Na firmware'ach podobnych do MIUI powinieneś również ręcznie zezwolić dodatkowi na autostart w ustawieniach aplikacji.

Wtedy warto sprawdzić funkcjonalność logowania. Jeśli Twój skrypt się nie uruchamia, przekieruj wyjście błędów do pliku bezpośrednio w skrypcie:

#!/data/data/com.termux/files/usr/bin/sh
exec 2>&1
exec 1>/sdcard/termux-boot.log
termux-wake-lock
echo "Boot completed at $(date)"

W ten sposób od razu zobaczysz, czy skrypt potknął się o ścieżki zmiennych środowiskowych lub nie mógł znaleźć wymaganego pliku binarnego.

Po aktualizacji aplikacji lub wgraniu nowego oprogramowania czasami musisz ręcznie uruchomić Termux:Boot ponownie za pomocą ikony na pulpicie.

Podsumowanie

Termux:Boot to niezwykle prosty dodatek z jednym zadaniem i wykonuje tę pracę dobrze. Kod źródłowy w Javie zajmuje minimalną ilość miejsca, a logika jest zrozumiała dla każdego, kto zna podstawy basza.

Jeśli planujesz zbudować serwer domowy lub kompaktowy system automatyzacji ze starego smartfona, ten dodatek zaoszczędzi Ci czas podczas przypadkowych ponownych uruchomień urządzenia.

Powiązane projekty