>_ DevTrendsnl

Taal

Home

Talen

Secties

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

Zo overschrijf je het hosts-bestand op Android zonder root-toegang

Iedere mobiele ontwikkelaar of QA-engineer heeft wel eens te maken gehad met de situatie waarin ze een app naar een testomgeving moeten laten verwijzen. Op desktop is dit in een paar seconden opgelost door 2 of 3 bestanden te openen. Op Android stuit je op de muur van systeembeveiliging. Zonder root-toegang is het bewerken van het systeem 4 bestand onmogelijk.

Natuurlijk kun je een lokale DNS-server zoals 5 opzetten op je netwerk en het IP-adres ervan opgeven in de Wi-Fi-instellingen van je telefoon. Maar wat als je in een café werkt, onderweg bent, of gewoon geen zin hebt in routerconfiguratie?

Hier komt de Virtual-Hosts repository goed van pas. Het project lost het probleem van IP-adresomleiding rechtstreeks op het mobiele apparaat op, zonder de firmware te hacken of superuser-rechten te verkrijgen.

Hoe DNS-overschrijving Zonder Root Werkt

Het idee achter het hulpprogramma is elegant. Android staat het niet toe om systeembestanden te wijzigen, maar het staat apps wel toe om lokale netwerkinterfaces te maken via de standaard 6 API.

De app richt een virtueel netwerkadapter in op je apparaat. Al het uitgaande verkeer van de telefoon gaat via deze lokale interface. Een aangepaste DNS-resolver in Virtual Hosts onderschept verzoeken naar domeinnamen.

Als een domein in je tekstregelbestand staat, retourneert de app onmiddellijk het opgegeven IP-adres. Als het domein niet in de lijst staat, gaat het verzoek naar de standaard DNS-server van je provider of Google. Alles blijft in het geheugen van de telefoon — verkeer gaat niet naar servers van derden.

Om dit schema te implementeren nam de auteur de LocalVPN-bibliotheek als basis en schreef er een handige Java-wrapper omheen.

Wat Virtual Hosts Zo Gemakkelijk Maakt

Een gewoon 7 bestand in besturingssystemen heeft een belangrijke beperking: elk item moet handmatig worden ingetypt. Als je een dozijn subdomeinen hebt, groeit de lijst snel.

Virtual Hosts ondersteunt jokertekens. Dit bespaart veel tijd bij het werken met microservices-architectuur of multi-tenant applicaties.

In plaats van een lange lijst met items:

0

Schrijf je slechts één regel:

1

De punt voor de domeinnaam betekent dat absoluut alle subdomeinen van elk niveau voor 8 automatisch naar het opgegeven IP-adres worden gestuurd.

Onder de basisfuncties van de app zijn de volgende vermeldenswaardig:

  • Regels laden uit platte tekstbestanden vanaf apparaatopslag of via een directe link
  • Snelle toggle om overschrijving met één klik in of uit te schakelen
  • Ondersteuning voor standaard IP- en domeintoewijzing syntaxis
  • Minimaal batterij- en RAM-verbruik

Starten en Praktisch Gebruik

De app wordt gedistribueerd als kant-en-klare builds en broncode. Je kunt de APK rechtstreeks downloaden uit de F-Droid-catalogus of Google Play:

Get it on F-Droid

De workflow ziet er als volgt uit:

  1. Maak een tekstbestand 9 met de omleidingsregels die je nodig hebt op je telefoon.
  2. Open Virtual Hosts en selecteer dit bestand via het systeemdialoogvenster.
  3. Druk op de grote aan/uit-knop.
  4. Android vraagt om bevestiging om een VPN-verbinding te maken. Bevestig het verzoek.

Daarna zal elke browser, curl-verzoek of mobiele app op het apparaat je testservers zien onder de opgegeven domeinnamen.

Praktische Gebruikssituaties

Het project komt goed van pas in verschillende dagelijkse ontwikkelsituaties.

API testen met een lokale machine. Een ontwikkelaar draait de backend op een laptop (10), maar de mobiele app is hardcoded om het domein 11 te gebruiken. In plaats van de APK opnieuw te bouwen met een andere URL, is het voldoende om een omleiding toe te voegen in Virtual Hosts.

Layouts en frontend controleren. Je kunt snel een echte smartphone laten verwijzen naar een lokaal draaiende DevServer met hot code reloading.

Testomgevingen isoleren. Bij het testen van meerdere branches tegelijkertijd kun je configuratiebestanden in seconden omschakelen, rechtstreeks vanuit de interface van de app.

Beperkingen en Valkuilen

Ondanks alle voordelen heeft deze aanpak een paar nuances waar je van tevoren van op de hoogte moet zijn.

Het belangrijkste nadeel komt voort uit de architectuur van Android. Er kan slechts één VPN-service tegelijk actief zijn in het systeem. Als je een corporate WireGuard of OpenVPN actief moet houden om toegang te krijgen tot werkbronnen, kun je Virtual Hosts niet parallel gebruiken.

Het tweede punt betreft de code. Het project werd gemaakt in 2017 en de Java-codebase ziet er een beetje gedateerd uit naar moderne Android-ontwikkelingsstandaarden. Er is echter niets dat kan breken: het hulpprogramma voert één duidelijke taak uit en handelt deze nog steeds perfect af op recente Android-versies.

Samenvatting

Virtual Hosts is een uitstekend hulpprogramma in het arsenaal van elke mobiele ontwikkelaar of QA-engineer. Het lost een specifiek, gericht probleem op zonder de noodzaak om testapparaten te kwellen met aangepaste firmware, bootloader-unlocking of het verkrijgen van root. Als je snel een domein naar een lokaal IP moet omleiden en een app-build in het veld wilt testen, verdient deze repository zeker een plekje in je bladwijzers.

Gerelateerde projecten