Ändern Sie den DNS des Mobilfunknetzes auf Lollipop und höher

Ok, das ist eine ständig gestellte Frage, wie man den DNS des Mobilfunknetzes ändert. Aber in verschiedenen Android-Versionen erhalten Sie eine andere Methode. Das ist also der Grund, warum ich das frage.

Ich kenne bereits eine Methode für Android 4 und darunter. Jetzt möchte ich wissen, wie man das DNS des Mobilfunknetzes auf Android 5.0 Lollipop und höher ändert.

Ein Anhaltspunkt:

ndc resolver setnetdns <netId> <domains> <dns1> <dns2>

Jemand sagte, ich solle diesen Befehl verwenden, um den DNS des Mobilfunknetzes in Lollipop und höher zu ändern, aber was ist netId? Wo finde ich diesen Wert? Können Sie mir ein Beispiel geben?

Ich bin kein C / C ++ - Programmierer, aber ich versuche, relativen Quellcode zu lesen, der gefunden wird, netidwird in unsigned long type by strtoulfunction umgewandelt. Ich denke also, netides sollte eine hexadezimale Zeichenfolge sein. Ich versuche, netcfgden Ausgabewert zu verwenden, aber es funktioniert nicht.

Können Sie mir diese Methode näher erläutern? Wie benutzt man es? Oder gibt es eine andere effektive Methode, um das DNS des Mobilfunknetzes in Lollipop und höher zu ändern?

Verwandte: android.stackexchange.com/a/71615/44325 , obwohl der Befehl auf Lollipop nicht zu funktionieren scheint, aber die App behauptete, auf Lollipop zu funktionieren. Vielleicht könntest du es mal versuchen.
@AndrewT. Ich habe den Beitrag gelesen, den Sie gesagt haben, bevor Sie diese Frage gestellt haben. Danke trotzdem. Die Methode ist nur für Android 4.X und der Autor hat seinen Code nicht geöffnet. Ich möchte eine Methode finden, keine App. PS Vielen Dank für die Bearbeitung meiner Frage.
@Gino Ich bin der Autor von Override DNS und habe die App aktualisiert, damit sie auch auf Lollipop funktioniert. Ich habe keine Möglichkeit gefunden, den netIdWert von der CLI zu erhalten. Ich bekomme es durch eine Java-Methode.
@Gino Hast du das versucht: android.stackexchange.com/a/68866/112458

Antworten (1)

Ich benutze Lollipop nicht mehr auf meinem Handy. Da sich Ihre Frage jedoch auf Lollipop und höher bezieht und ich Marshmallow verwende, kann ich Folgendes bestätigen:

ndc resolver setnetdns devname dnsdomain dns1 dns2

funktioniert. Es scheint, dass Sie die Netzwerk-ID in Marshmallow nicht mehr kennen müssen und nur noch den Gerätenamen benötigen.

Also zum Beispiel:

ndc resolver setnetdns rndis0 "" 8.8.8.8 8.8.4.4

setzt das DNS für die rndis0-Schnittstelle auf die öffentlichen DNS-Server von Google.

Dies funktioniert nicht in meinem Lollipop-Gerät :/ Übrigens, was ist dnsdomain?
Ach, das ist schade. Ich schätze, sie haben den Code einige Zeit nach Lollipop geändert, sodass Sie nicht mehr die netId kennen müssen, sondern nur noch den Entwicklernamen. Nicht ganz sicher, aber ich denke, dnsdomaines ist die Suchdomäne. Wenn Sie beispielsweise „lan“ eingestellt haben und „my-home-pc“ eingeben, versucht das System, „my-home-pc.lan“ aufzulösen.
@LéoLam bist du sicher, dass du das nicht netIdmehr brauchst? Ich habe ein Nexus 5 mit Android 6.0.1 und es funktioniert bei mir nicht. Mit dem netIdkein Problem. Ich habe es nur in einem Wi-Fi-Netzwerk versucht, ich werde weitere Nachforschungen anstellen.
hm, das ist wirklich seltsam. Verwenden Sie 6.0.1 Stock oder CM13? Ich verwende derzeit CM13 und es funktionierte ohne netId, als ich es zuletzt (im Januar) versuchte. Wenn man sich den Quellcode für 6.0.0 ansieht, wird das zweite Argument (das direkt nach setnetdns) an übergeben stringToNetId, aber ich bin mit dem Android-Quellcode und C++ nicht vertraut genug, um zu sagen, was es genau tut.