>_ DevTrendsnl

Taal

Home

Talen

Secties

Frontend Backend Mobiel DevOps AI / ML GameDev Blockchain Embedded Beveiliging
Java

Hoe maak je van een oude Android-telefoon een zelfstandige server met Termux Boot

Veel van ons hebben een oude Android-smartphone die stof staat te verzamelen thuis. Het scherm is licht gebarsten, de batterij houdt de lading niet goed meer vast, en je kunt hem niet voor een redelijke prijs verkopen. Maar vanbinnen zit er nog steeds een perfect functionele quad-core processor en een paar gigabyte RAM. Deze hardware maakt van het toestel een uitstekende thuisserver voor Telegram-bots, lichtgewicht automatiseringsscripts of een lokale SSH-node.

De Termux-terminal heeft Android al lang omgetoverd tot een volwaardige Linux-omgeving. Maar er is een vervelende kanttekening. Als de smartphone uitvalt door een lege batterij of herstart na een update, dan sterven alle draaiende processen. Je zult de app handmatig moeten openen, commando's moeten invoeren en services vanaf nul opnieuw moeten opstarten.

De Termux:Boot-addon helpt dit probleem op te lossen. Het is een hulpprogramma dat zich koppelt aan het opstartgebeurtenis van het besturingssysteem en gebruikersscripts uitvoert.

Hoe automatisch opstarten werkt in Android

Android is strikt over achtergrondprocessen. Het systeem staat apps niet toe om samen met het besturingssysteem te starten zonder directe toestemming van de gebruiker en speciale machtigingen.

Termux:Boot fungeert als een brug tussen het systeemgebeurtenis BOOT_COMPLETED en je Linux-omgeving binnen Termux. Wanneer de smartphone inschakelt, ontvangt de addon een signaal van het systeem, kijkt in de aangewezen map van de gebruiker en voert de gevonden uitvoerbare bestanden daar in volgorde uit.

Er is hier een nuance met app-ondertekening. Termux en Termux:Boot communiceren via gedeelde toegangsrechten. Vanwege de beveiligingsregels van Android moeten beide apps met dezelfde ontwikkelaarssleutel zijn ondertekend.

Als je de hoofd-Termux hebt geïnstalleerd via F-Droid, dan moet de Termux:Boot-plugin ook strikt van F-Droid komen. Als je een Google Play-build met een F-Droid-APK probeert te mixen, resulteert dit in een toegangsfout. Als je de nieuwste commits wilt testen, uploaden ontwikkelaars debug-builds naar GitHub Actions. Maar onthoud: het wijzigen van de installatiebron vereist het volledig verwijderen van Termux en alle plugins.

Stapsgewijze installatie

Het installatieschema is eenvoudig. Het komt allemaal neer op het maken van één map en een paar tekstbestanden.

Eerst moet je de Termux:Boot-addon zelf installeren. Zoek na de installatie zeker het pictogram in het app-menu en tik er één keer op. Dit geeft de addon toestemming om het automatisch opstarten van het systeem te onderscheppen. Zonder deze actie blokkeert Android simpelweg het opstarten op de achtergrond.

Open vervolgens de Termux-terminal en maak de map voor scripts:

mkdir -p ~/.termux/boot/

Alle bestanden in deze map worden automatisch opstartscenario's. Als er meerdere bestanden in de map staan, voert de plugin ze in alfabetische volgorde uit.

Om te voorkomen dat de smartphone vijf minuten na het opstarten in diepe slaap valt, is het commando termux-wake-lock handig helemaal aan het begin van scripts. Het dwingt Android om de CPU in een wakkere staat te houden.

Werkende scriptvoorbeelden

Laten we een paar praktische scenario's doorlopen. Een veelvoorkomende taak is om SSH-toegang tot het apparaat te krijgen direct nadat het systeem opstart.

Laten we het bestand ~/.termux/boot/start-sshd maken:

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

Zorg ervoor dat je het bestand uitvoerbaar maakt, anders negeert het systeem het:

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

Nu zal Termux bij het herstarten van de telefoon de SSH-server op de achtergrond activeren. Je kunt er via het netwerk verbinding mee maken zonder enige scherminteractie.

Als je het termux-services-pakket gebruikt voor het beheren van systeemdaemons (een systemd-equivalent in gewone Linux-distributies), ziet het opstartscript er zo uit:

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

Maak dit bestand in ~/.termux/boot/start-services, geef het uitvoeringsmachtigingen, en alle services die zijn ingeschakeld via het sv-enable-commando starten automatisch.

Praktische gebruiksscenario's

De hoofdwaarde van het project ligt in volledige autonomie. De smartphone verandert in een stille mini-server met zijn eigen ingebouwde onderbrekingsvrije stroomvoorziening.

Hier zijn een paar duidelijke scenario's:

  • Telegram-bot hosting. De bot start op met het apparaat en draait zonder constant toezicht.
  • Bestandssynchronisatie via Syncthing. De telefoon werkt als een 24/7-node voor het back-uppen van foto's of documenten.
  • Thuisnetwerk monitoring. Een script controleert periodiek de beschikbaarheid van de router of externe services en stuurt meldingen bij storingen.
  • Lokale databaseserver zoals SQLite of PostgreSQL voor het verzamelen van logs van smart home-apparaten.

Debugging en valkuilen

Er zijn geen perfecte oplossingen, en Termux:Boot heeft zijn eigen eigenaardigheden.

Aggressief energiebeheer in moderne Android-firmwares doodt graag achtergrondprocessen. MIUI, One UI en EMUI zijn hier bijzonder schuldig aan. Om de plugin zonder problemen te laten werken, ga je naar de batterij-instellingen van Android en schakel batterijoptimalisatie uit voor Termux en Termux:Boot. Op MIUI-achtige firmwares moet je ook handmatig toestaan dat de addon automatisch opstart in de app-instellingen.

Het is dan de moeite waard om de logfunctionaliteit te controleren. Als je script niet start, stuur dan de foutuitvoer naar een bestand rechtstreeks in het script:

#!/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)"

Op deze manier zie je meteen of het script is gestruikeld over omgevingsvariabelepaden of het vereiste binaire bestand niet kon vinden.

Na het updaten van apps of het flashen van het apparaat moet je Termux:Boot soms handmatig opnieuw starten via het desktoppictogram.

Conclusie

Termux:Boot is een uiterst eenvoudige plugin met één taak, en het voert die taak goed uit. De Java-broncode neemt minimale ruimte in beslag, en de logica is begrijpelijk voor iedereen die bekend is met basis bash.

Als je van plan bent om een thuisserver of compact automatiseringssysteem te bouwen van een oude smartphone, zal deze addon je tijd besparen tijdens onbedoelde apparaat-herstarts.

Gerelateerde projecten