Wenn ich meinen PC mit einem Android Wi-Fi-Hotspot verbinde, wird 192.168.42.x
meinem PC eine Adresse zugewiesen . Ich muss das wirklich ändern, da es mit einem unserer Arbeitssubnetze in Konflikt steht - ist das möglich?
27
Wenn ich meinen PC mit einem Android Wi-Fi-Hotspot verbinde, wird 192.168.42.x
meinem PC eine Adresse zugewiesen . Ich muss das wirklich ändern, da es mit einem unserer Arbeitssubnetze in Konflikt steht - ist das möglich?
Antworten:
Leider kann der IP-Adressbereich für die integrierte Tethering-Unterstützung auch in CyanogenMod nicht geändert werden. Die Wi-Fi-Hotspot-IP ist in android.net.wifi.WifiStateMachine.startTethering () fest codiert . Die USB-Tethering-IP ist in com.android.server.connectivity.Tethering fest codiert .
Wenn Ihr Telefon jedoch gerootet ist, können Sie versuchen, Apps von Drittanbietern für das Tethering zu verwenden, bei denen der IP-Adressbereich geändert werden kann. ZB als das eingebaute USB-Tethering in CyanogenMod-Alphas für Samsung Galaxy W unterbrochen war, habe ich Kabelgebundenes Tethering für Root-Benutzer verwendet , das über eine solche Option verfügt. Für Wi-Fi-Tethering können Sie die App Wireless Tether for Root Users von denselben Autoren verwenden. Sie bietet auch die Möglichkeit, den IP-Adressbereich zu ändern.
Da Google Code heruntergefahren wurde, funktionieren die oben genannten Links nicht mehr. Einige Leute haben den Quellcode aus diesen Repositories nach GitHub exportiert:
Es gab jedoch keine weiteren Entwicklungsaktivitäten und die Apps funktionieren wahrscheinlich nicht mehr auf den neuesten Android-Versionen.
Nur für den Fall, dass jemand diese veralteten Apps ausprobieren möchte, habe ich im Google Code Archive einige APK-Dateien gefunden :
quelle
Das in Android integrierte WLAN-Tethering verwendet 192.168.43.1/24 als Server, wobei
netd
das Tethering mithilfe von ausgeführt wirddnsmasq
. Der erste DNS-Bereich ist192.168.42.1-254
und und der zweite DNS-Bereich ist192.168.43.1-254
.Netd ist nicht leicht zu ändern. Es ist ein Socket erforderlich, um mit ihm zu kommunizieren. Dieser Socket wird verwendet, wenn Android mit dem Tethering beginnt. Aber
Tethering.java
wenn wir die Quelldateien für (ich habe Froyo verwendet) durchgehen, sehen wir:Und später sehen wir diese Bereiche als BACKUPS .
Die Hauptquelle für die DHCP-Bereiche ist nicht der fest codierte Wert 42 und 43, sondern der Wert array.config_tether_dhcp_range, ein internes String-Array. Aber es ist derzeit leer.
Sie könnten das Android-Framework bearbeiten. Auf meinem Handy ist es
/system/framework/framework-res.apk
. Es gibt eine Tonne von Online - Tutorials für die Bearbeitung von Rahmen-res.apk, von einfachen Strings voll Thematisierung. Finden Sie eine für Ihr Handy und Android-Version.Hauptsache du willst das ändern
/res/values/arrays.xml
Suchen
<array name="config_tether_dhcp_range" />
Ändern:
kompiliere / zip / signiere nach Bedarf (folge einem Tutorial) und installiere es neu.
Wenn Sie mehr als einen Bereich wünschen, kopieren Sie einfach die beiden Elemente immer wieder. Sie müssen immer einen Start und einen Stopp für jeden Bereich angeben. Versuchen Sie, es in der gleichen / 24, dh
192.168.50.
5 und192.168.50.99
was auch immer zu halten. Sie können bestätigen, dass es funktioniert,busybox ps | grep dnsmasq
oder wenn Sie keine Busybox haben, verwenden Sie die PIDps dnsmasq
incat /proc/pid/cmdline
. Sie sollten erhalten (oder ähnlich):FWIW, mein WIFI-Tethering verwendet die Standardbereiche
dnsmasq
, aber mein Computer wurde zugewiesen192.168.43.147/24
und das Gateway192.168.43.1/24
. Ich weiß nicht, warum Sie standardmäßig eine42.x
Adresse angegeben haben.quelle
Ich weiß, dass dies ein alter Beitrag ist, dachte aber, ich würde ein Update bereitstellen. Es scheint, dass einige Hersteller und Versionen von Android jetzt die Änderung des IP-Subnetzbereichs für den DHCP-Server über die Benutzeroberfläche zulassen, wenn die WiFi-Hotspot-Funktion verwendet wird. Hier erfahren Sie, wo es auf einem HTC One M8 mit Android 6.0 zu finden ist. YMMV.
Klicken Sie im Bildschirm "Mobiler Hotspot" auf das 3-Punkte-Symbol (mehr), wählen Sie "Erweitert" und dann "LAN-Einstellungen". Ändern Sie unter "Lokale IP" die IP-Adresse auf Ihre gewünschte IP. Ändern Sie unter "Local DHCP" die Start-IP so, dass sie mit dem Subnetz Ihrer IP-Adresse übereinstimmt.
Trent
quelle
HINWEIS: Root ist erforderlich.
Der standardmäßige DHCP-IP-Adressbereich ist fest codiert ( 1 ) . Sie können ihn nicht ändern, ohne das ROM mit geändertem Quellcode neu zu erstellen. Oder benutze einen kleinen Hack.
Wenn Sie das Tethering einschalten, was passiert (zumindest):
hostapd
- Der Daemon, der die Access Points verwaltet - wird gestartet.dnsmasq
- Der DHCP / DNS-Server (bis zu Pie) - wird mit fest codierten Befehlszeilenargumenten ( 7 ) gestartet (die ansonsten über/etc/dnsmasq.conf
( 8 ) festgelegt werden können).So können wir durch
/system/bin/dnsmasq
ein benutzerdefiniertes Shell-Skript ersetzen , das die Kontrolle über den Prozess zwischenzeitlich übernimmt. Benennen Sie die ursprüngliche Binärdatei in etwas anderes um:Skript erstellen
/system/bin/dnsmasq
:Bestätigen Sie den Namen Ihrer Wi-Fi-Schnittstelle (
wlan0
normalerweise). Überprüfen Sie mitip link
oderls /sys/class/net/
.Bestätigen Sie auch Ihre lokale Netzwerk - Routing - Tabelle ist
97
:grep local_network /data/misc/net/rt_tables
. Das Routing von Android ist ein Chaos, das mit jeder neuen Version komplexer wird. Ich bin mir also nicht sicher, ob dies beständig war oder nicht. Bevor Sie Änderungen vornehmen, überprüfen Sie Ihre Routing-Richtlinien und -Tabellen, um herauszufinden, was Sie in Ihr Skript einfügen sollten:SELinux-Regeln müssen auch definiert werden, wenn (alle oder einige) noch nicht definiert sind und der Status lautet
enforcing
. Verwenden Sie Magisksuploicy
oder ein ähnliches Tool wiesepolicy-inject
:* Nicht persistent über Neustarts verwenden einige
init.d
Skript oder ersetzen/sepolicy
inramdisk
Festlegen von Berechtigungen für Dateien:
Genießen!
Sie können das vollständige Tethering auch über die Befehlszeile einrichten und Ihre eigenen Prozesse ausführen. Diese Antwort enthält die Anweisungen, obwohl die Frage anders ist.
VERBUNDEN:
quelle