>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
Java

So überschreiben Sie die hosts-Datei unter Android ohne Root-Zugriff

Jeder Mobile-Entwickler oder QA-Ingenieur hat schon einmal in der Situation gesteckt, dass er eine App auf eine Testumgebung zeigen lassen musste. Auf dem Desktop ist das in ein paar Sekunden erledigt, indem man 2 oder 3 öffnet. Bei Android stößt man unweigerlich auf die Mauer der Systemsicherheit. Ohne Root-Zugriff ist das Bearbeiten der System-4-Datei unmöglich.

Natürlich können Sie einen lokalen DNS-Server wie 5 in Ihrem Firmennetzwerk einrichten und dessen IP in den Wi-Fi-Einstellungen Ihres Telefons angeben. Aber was ist, wenn Sie in einem Café arbeiten, unterwegs sind oder einfach keine Lust haben, sich mit Router-Konfiguration herumzuschlagen?

Hier kommt das Virtual-Hosts-Repository zur Hilfe. Das Projekt löst das Problem der IP-Adressumleitung direkt auf dem Mobilgerät, ohne die Firmware zu hacken oder Superuser-Rechte zu erhalten.

So funktioniert die DNS-Überschreibung ohne Root

Die Idee des Tools ist elegant. Android erlaubt zwar keine Modifizierung von Systemdateien, gestattet aber Apps, lokale Netzwerkschnittstellen über die Standard-6-API zu erstellen.

Die App richtet einen virtuellen Netzwerkadapter direkt auf Ihrem Gerät ein. Der gesamte ausgehende Datenverkehr vom Telefon wird über diese lokale Schnittstelle geleitet. Ein benutzerdefinierter DNS-Resolver in Virtual Hosts fängt Anfragen an Domainnamen ab.

Wenn eine Domain in Ihrer Text-Regeldatei vorhanden ist, gibt die App sofort die angegebene IP-Adresse zurück. Wenn die Domain nicht in der Liste steht, wird die Anfrage an den Standard-DNS-Server Ihres Providers oder Google weitergeleitet. Alles bleibt im Speicher des Telefons – der Datenverkehr geht nicht an Drittanbieter-Server.

Um dieses Schema umzusetzen, hat der Autor die LocalVPN-Bibliothek als Grundlage verwendet und einen praktischen Java-Wrapper darum herum geschrieben.

Was Virtual Hosts so praktisch macht

Eine reguläre 7-Datei in Betriebssystemen hat eine erhebliche Einschränkung: Jeder Eintrag muss manuell eingegeben werden. Wenn Sie ein Dutzend Subdomains haben, wächst die Liste schnell an.

Virtual Hosts unterstützt Wildcard-Einträge. Das spart viel Zeit bei der Arbeit mit Microservices-Architektur oder Multi-Tenant-Anwendungen.

Anstatt einer langen Liste von Einträgen:

0

Schreiben Sie nur eine Zeile:

1

Der Punkt vor dem Domainnamen bedeutet, dass absolut alle Subdomains beliebiger Ebene für 8 automatisch an die angegebene IP-Adresse gesendet werden.

Zu den grundlegenden Funktionen der App sind folgende hervorzuheben:

  • Regeln aus Textdateien aus dem Gerätespeicher oder über einen direkten Link laden
  • Schneller Umschalter zum Aktivieren oder Deaktivieren der Überschreibung mit einem Klick
  • Unterstützung für Standard-IP- und Domain-Mapping-Syntaxen
  • Minimaler Akku- und RAM-Verbrauch

Start und praktische Verwendung

Die App wird als fertige Builds und Quellcode verteilt. Sie können die APK direkt aus dem F-Droid-Katalog oder Google Play herunterladen:

Jetzt bei F-Droid holen

Der Workflow sieht folgendermaßen aus:

  1. Erstellen Sie eine Textdatei 9 mit den gewünschten Umleitungsregeln auf Ihrem Telefon.
  2. Öffnen Sie Virtual Hosts und wählen Sie diese Datei über den Systemdialog aus.
  3. Drücken Sie den großen Ein/Aus-Schalter.
  4. Android fragt nach einer Bestätigung zur Erstellung einer VPN-Verbindung. Bestätigen Sie die Anfrage.

Danach beginnen jeder Browser, jede curl-Anfrage oder mobile App auf dem Gerät, Ihre Testserver unter den angegebenen Domainnamen zu sehen.

Praktische Anwendungsfälle

Das Projekt erweist sich in einer Vielzahl alltäglicher Entwicklungssituationen als nützlich.

API mit einem lokalen Rechner testen. Ein Entwickler führt das Backend auf einem Laptop aus (10), aber die mobile App ist fest auf die Domain 11 kodiert. Anstatt das APK mit einer anderen URL neu zu erstellen, reicht es aus, eine Umleitung in Virtual Hosts hinzuzufügen.

Layouts und Frontend prüfen. Sie können schnell ein echtes Smartphone auf einen lokal laufenden DevServer mit Hot Code Reloading zeigen lassen.

Testumgebungen isolieren. Beim gleichzeitigen Testen mehrerer Branches können Sie Konfigurationsdateien sekundenschnell direkt über die App-Oberfläche wechseln.

Einschränkungen und Fallstricke

Trotz aller Vorteile gibt es bei diesem Ansatz einige Punkte, die Sie von Anfang an kennen sollten.

Der Hauptnachteil ergibt sich aus der Android-Architektur. Es kann jeweils nur ein VPN-Dienst im System aktiv sein. Wenn Sie ein Unternehmens-WireGuard oder OpenVPN aktiv halten müssen, um auf Arbeitsressourcen zuzugreifen, können Sie Virtual Hosts nicht parallel nutzen.

Der zweite Punkt betrifft den Code. Das Projekt wurde 2017 erstellt, und die Java-Codebasis wirkt nach modernen Android-Entwicklungsstandards etwas veraltet. Es gibt jedoch nichts, was kaputtgehen könnte: Das Tool erledigt eine klare Aufgabe und bewältigt sie auf aktuellen Android-Versionen immer noch einwandfrei.

Fazit

Virtual Hosts ist ein ausgezeichnetes Tool in der Werkzeugkiste jedes Mobile-Entwicklers oder QA-Ingenieurs. Es löst ein spezifisches, gezieltes Problem, ohne Testgeräte mit Custom-Firmware, Bootloader-Entsperrung oder Root-Zugriff quälen zu müssen. Wenn Sie eine Domain schnell auf eine lokale IP umleiten und eine App-Build im Feld testen müssen, verdient dieses Repository definitiv einen Platz in Ihren Lesezeichen.

Ähnliche Projekte