Lors de la connexion de mon PC au point d'accès Wi-Fi Android, il a attribué une 192.168.42.x
adresse à mon PC. J'ai vraiment besoin de changer cela car il entre en conflit avec l'un de nos sous-réseaux de travail - est-ce possible?
27
Réponses:
Malheureusement, il n'y a aucun moyen de modifier la plage d'adresses IP pour la prise en charge du partage de connexion intégré, même dans CyanogenMod. L'IP du hotspot Wi-Fi est codé en dur dans android.net.wifi.WifiStateMachine.startTethering () ; l'IP du partage de connexion USB est codé en dur dans com.android.server.connectivity.Tethering .
Cependant, si votre téléphone est enraciné, vous pouvez essayer d'utiliser des applications tierces pour le partage de connexion qui ont la possibilité de modifier la plage d'adresses IP. Par exemple, lorsque le partage de connexion USB intégré a été rompu dans CyanogenMod alphas pour Samsung Galaxy W, j'ai utilisé le câble câblé pour les utilisateurs root , qui a une telle option. Pour le partage de connexion Wi-Fi, vous pouvez essayer l'application Wireless Tether pour les utilisateurs racine des mêmes auteurs, qui a également la possibilité de modifier la plage d'adresses IP.
Étant donné que Google Code a été fermé, les liens ci-dessus ne fonctionnent plus. Certaines personnes ont exporté le code source de ces référentiels vers GitHub:
Cependant, il n'y a eu aucune activité de développement supplémentaire et les applications ne fonctionnent probablement plus sur les versions récentes d'Android.
Juste au cas où quelqu'un voudrait essayer ces applications obsolètes, j'ai pu trouver des fichiers APK dans Google Code Archive :
la source
Le partage de connexion wifi intégré à Android est conçu pour utiliser 192.168.43.1/24 comme serveur, avec la
netd
gestion du partage de connexion, à l'aide dednsmasq
. La première plage DNS est192.168.42.1-254
et et la deuxième plage DNS est192.168.43.1-254
.Netd n'est pas facile à changer. Il nécessite une prise pour communiquer avec elle, et cette prise est prise lorsque Android commence à utiliser le modem. Mais en parcourant les fichiers source pour
Tethering.java
(j'ai utilisé Froyo), nous voyons:Et plus tard, nous voyons ces plages utilisées, COMME SAUVEGARDES .
La source principale des plages DHCP n'est pas les codes durs 42 et 43, mais lus à partir de array.config_tether_dhcp_range, un tableau de chaînes internes. Mais il est actuellement vide.
Vous pouvez modifier le cadre Android. Sur mon téléphone, ça l'est
/system/framework/framework-res.apk
. Il y a une tonne de tutoriels en ligne pour éditer framework-res.apk, des chaînes simples aux thèmes complets. Trouvez-en un pour votre téléphone et votre version Android.La principale chose que vous voulez changer est la
/res/values/arrays.xml
Chercher
<array name="config_tether_dhcp_range" />
Changer pour:
compilez / zippez / signez au besoin (suivez un tutoriel), puis réinstallez.
Si vous voulez plus d'une plage, copiez simplement les deux éléments encore et encore. Vous devez toujours prévoir un départ et un arrêt pour chaque plage. Essayez de le garder dans le même / 24, c'est-à-dire
192.168.50.
5 et192.168.50.99
ou autre chose. Vous pouvez confirmer qu'il fonctionne avecbusybox ps | grep dnsmasq
ou si vous n'avez pas de boîte occupée,ps dnsmasq
utilisez le pid incat /proc/pid/cmdline
. Vous devriez obtenir (ou similaire):FWIW, mon partage de connexion WIFI utilise les
dnsmasq
plages par défaut , mais mon ordinateur a été affecté192.168.43.147/24
et une passerelle192.168.43.1/24
. Je ne sais pas pourquoi le vôtre a été transféré par défaut à une42.x
adresse.la source
Je sais que c'est un ancien message, mais j'ai pensé que je fournirais une mise à jour. Il semble que certains fabricants et versions d'Android autorisent désormais le changement de la plage de sous-réseaux IP pour le serveur DHCP via l'interface utilisateur lors de l'utilisation de la fonction de point d'accès WiFi. Voici où le trouver sur un HTC One M8 fonctionnant sous Android 6.0. YMMV.
Depuis l'écran Mobile Hotspot, cliquez sur l'icône 3 points (plus), accédez à Avancé, puis Paramètres LAN. Sous "IP locale", changez l'adresse IP en IP désirée. Sous "DHCP local", changez l'adresse IP de départ pour qu'elle corresponde au sous-réseau de votre adresse IP.
Trent
la source
REMARQUE: Root est requis.
La plage d'adresses IP DHCP par défaut est codée en dur ( 1 ) , vous ne pouvez pas la changer sans reconstruire la ROM avec un code source modifié. Ou utilisez un petit hack.
Lorsque vous activez le partage de connexion, que se passe-t-il (au moins):
hostapd
- le démon qui gère les points d'accès - est démarré.dnsmasq
- le serveur DHCP / DNS (jusqu'à Pie) - est démarré avec des arguments de ligne de commande codés en dur ( 7 ) (qui peuvent être définis via/etc/dnsmasq.conf
( 8 ) sinon).Nous pouvons donc remplacer
/system/bin/dnsmasq
par un script shell personnalisé, en prenant le contrôle du processus entre les deux. Renommez le binaire d'origine en autre chose:Créer un script
/system/bin/dnsmasq
:Confirmez le nom de votre interface Wi-Fi (
wlan0
généralement). Vérifiez avecip link
ouls /sys/class/net/
.Assurez -vous également votre table locale de routage du réseau est
97
:grep local_network /data/misc/net/rt_tables
. Le routage d'Android est un gâchis, devenant plus complexe avec chaque nouvelle version. Je ne sais donc pas si cela a persisté ou non. Avant de faire des changements, vérifiez également vos politiques de routage et vos tableaux pour savoir ce que vous devez mettre dans votre script:Les règles SELinux doivent également être définies si (tout ou partie) ne sont pas déjà définies et si le statut l'est
enforcing
. Utilisez Magisksuploicy
ou un autre outil similaire commesepolicy-inject
:* Pas persistant entre les redémarrages, utilisez un
init.d
script ou remplacer/sepolicy
dansramdisk
Définissez les autorisations sur les fichiers:
Prendre plaisir!
Ou vous pouvez configurer le partage de connexion complet à partir de la ligne de commande, en exécutant vos propres processus. Cette réponse comprend les instructions, bien que la question soit différente.
EN RELATION:
la source