So verwandeln Sie ein altes Android-Smartphone in einen eigenständigen Server mit Termux Boot
Viele von uns haben ein altes Android-Smartphone zu Hause herumliegen. Der Bildschirm ist leicht gesprungen, der Akku hält nicht mehr besonders gut, und einen vernünftigen Preis beim Verkauf erzielen Sie auch nicht mehr. Aber im Inneren steckt ein voll funktionsfähiger Quad-Core-Prozessor und ein paar Gigabyte RAM. Diese Hardware eignet sich hervorragend als Home-Server für Telegram-Bots, leichte Automatisierungsskripte oder einen lokalen SSH-Knoten.
Die Termux-Terminal-App hat Android schon lange in eine vollwertige Linux-Umgebung verwandelt. Es gibt aber einen lästigen Haken. Wenn das Smartphone wegen eines leeren Akkus abstürzt oder nach einem Update neu startet, werden alle laufenden Prozesse beendet. Sie müssen die App dann manuell öffnen, Befehle eingeben und Dienste von Grund auf neu starten.
Das Termux:Boot-Addon hilft, dieses Problem zu lösen. Es ist ein Utility, das sich in den Boot-Event des Betriebssystems einklinkt und Benutzerskripte ausführt.
So funktioniert der Autostart unter Android
Android ist streng, was Hintergrundprozesse angeht. Das System erlaubt Apps nicht, ohne direkte Zustimmung des Benutzers und spezielle Berechtigungen zusammen mit dem OS zu starten.
Termux:Boot fungiert als Brücke zwischen dem System-Event BOOT_COMPLETED und Ihrer Linux-Umgebung innerhalb von Termux. Wenn das Smartphone hochfährt, empfängt das Addon ein Signal vom System, schaut im designated Verzeichnis des Benutzers nach und führt die dort gefundenen ausführbaren Dateien der Reihe nach aus.
Es gibt hier eine Feinheit bei der App-Signierung. Termux und Termux:Boot kommunizieren über gemeinsame Zugriffsrechte. Aufgrund von Androids Sicherheitsregeln müssen beide Apps mit demselben Entwicklerschlüssel signiert sein.
Wenn Sie das Haupt-Termux von F-Droid installiert haben, dann muss auch das Termux:Boot-Plugin strikt von F-Droid kommen. Der Versuch, einen Google-Play-Build mit einer F-Droid-APK zu mischen, führt zu einem Zugriffsfehler. Wenn Sie die neuesten Commits testen möchten, laden Entwickler Debug-Builds auf GitHub Actions hoch. Aber denken Sie daran: Ein Wechsel der Installationsquelle erfordert das vollständige Entfernen von Termux und aller seiner Plugins.
Schritt-für-Schritt-Einrichtung
Das Einrichtungsschema ist einfach. Es läuft alles auf die Erstellung eines Ordners und ein paar Textdateien hinaus.
Zuerst müssen Sie das Termux:Boot-Addon selbst installieren. Nach der Installation sollten Sie unbedingt sein Icon im App-Menü finden und einmal darauf tippen. Dadurch erhält das Addon die Berechtigung, den System-Autostart abzufangen. Ohne diese Aktion blockiert Android einfach den Hintergrundstart.
Dann öffnen Sie das Termux-Terminal und erstellen das Verzeichnis für die Skripte:
mkdir -p ~/.termux/boot/
Alle Dateien, die in diesem Ordner abgelegt werden, werden zu Autostart-Szenarien. Wenn es mehrere Dateien im Ordner gibt, führt das Plugin sie in alphabetischer Reihenfolge aus.
Um zu verhindern, dass das Smartphone fünf Minuten nach dem Start in einen tiefen Schlaf fällt, kommt der Befehl termux-wake-lock sehr am Anfang von Skripten zum Einsatz. Er zwingt Android dazu, die CPU in einem wachen Zustand zu halten.
Praktische Skript-Beispiele
Lassen Sie uns ein paar praktische Szenarien durchgehen. Eine häufige Aufgabe ist es, unmittelbar nach dem Systemstart SSH-Zugriff auf das Gerät zu erhalten.
Lassen Sie uns die Datei ~/.termux/boot/start-sshd erstellen:
#!/data/data/com.termux/files/usr/bin/sh
termux-wake-lock
sshd
Machen Sie die Datei unbedingt ausführbar, andernfalls ignoriert das System sie:
chmod +x ~/.termux/boot/start-sshd
Wenn Sie jetzt das Telefon neu starten, bringt Termux den SSH-Server im Hintergrund hoch. Sie können sich über das Netzwerk damit verbinden, ohne irgendwelche Bildschirm-Interaktion.
Wenn Sie das Paket termux-services zur Verwaltung von System-Daemons verwenden (ein Äquivalent zu systemd in normalen Linux-Distributionen), sieht das Startup-Skript so aus:
#!/data/data/com.termux/files/usr/bin/sh
termux-wake-lock
source /data/data/com.termux/files/usr/etc/profile.d/start-services.sh
Erstellen Sie diese Datei in ~/.termux/boot/start-services, geben Sie ihr Ausführungsberechtigungen, und alle Dienste, die über den Befehl sv-enable aktiviert wurden, starten automatisch.
Praktische Anwendungsfälle
Der Hauptwert des Projekts liegt in der vollständigen Autonomie. Das Smartphone verwandelt sich in einen leisen Mini-Server mit eigener eingebauter unterbrechungsfreier Stromversorgung.
Hier sind ein paar klare Szenarien:
- Telegram-Bot-Hosting. Der Bot startet mit dem Gerät und läuft ohne ständige Überwachung.
- Dateisynchronisierung über Syncthing. Das Telefon arbeitet als 24/7-Knoten für die Sicherung von Fotos oder Dokumenten.
- Überwachung des Heimnetzwerks. Ein Skript prüft periodisch die Verfügbarkeit des Routers oder externer Dienste und sendet bei Ausfällen Benachrichtigungen.
- Lokaler Datenbankserver wie SQLite oder PostgreSQL zum Sammeln von Logs von Smart-Home-Geräten.
Debugging und Fallstricke
Es gibt keine perfekten Lösungen, und Termux:Boot hat seine eigenen Eigenheiten.
Aggressives Energiesparen in modernen Android-Firmwares killt gerne Hintergrundprozesse. MIUI, One UI und EMUI sind besonders schuld daran. Damit das Plugin ohne Probleme funktioniert, deaktivieren Sie in den Akku-Einstellungen von Android die Batterieoptimierung für Termux und Termux:Boot. Bei MIUI-ähnlichen Firmwares sollten Sie auch manuell erlauben, dass das Addon automatisch startet, in den App-Einstellungen.
Dann lohnt es sich, die Logging-Funktionalität zu überprüfen. Wenn Ihr Skript nicht startet, leiten Sie die Fehlerausgabe direkt im Skript in eine Datei um:
#!/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)"
So sehen Sie sofort, ob das Skript über Umgebungsvariablen-Pfade gestolpert ist oder die erforderliche Binary nicht finden konnte.
Nach dem Aktualisieren von Apps oder dem Flashen des Geräts müssen Sie Termux:Boot manchmal manuell über das Desktop-Icon erneut starten.
Fazit
Termux:Boot ist ein extrem einfaches Plugin mit einer einzigen Aufgabe, und es erledigt diese Aufgabe gut. Der Java-Quellcode nimmt minimalen Platz ein, und die Logik ist für jeden verständlich, der sich mit grundlegendem Bash auskennt.
Wenn Sie planen, aus einem alten Smartphone einen Home-Server oder ein kompaktes Automatisierungssystem zu bauen, spart Ihnen dieses Addon bei unbeabsichtigten Geräteneustarts Zeit.
Ähnliche Projekte