6 votes

Comment puis-je changer de façon permanente l'adresse IP de mon hotspot ?

L'adresse IP est 192.168.43.1 par défaut et il n'y a pas d'option pour le changer de façon permanente. Est-il possible de le modifier sans accès à la racine ?

Mon téléphone est un Huawei Android 5.1.

7voto

Irfan Latif Points 16863

Nota: L'ajout ou la suppression d'une adresse IP nécessite un accès Root.


MÉTHODE 1 :

Avant Android Pie, le tethering IP ( 192.168.43.1 ) a été codé en dur ( 1 , 2 ) . Mais maintenant, c'est aléatoire à chaque session. ( 3 ) . Vous pouvez utiliser la fonction intégrée d'Android ip pour définir une adresse IP fixe supplémentaire (dans le même sous-réseau évidemment) :

~# ip address add 192.168.43.100/24 dev wlan0

* Remplacer add con del à supprimer.

Assurez-vous que le nom de votre interface Wi-Fi ( wlan0 généralement) est correcte. Vérifiez avec ip link ou ls /sys/class/net ou iw dev .


MÉTHODE 2 :

Le problème avec l'approche ci-dessus est que le L'IP ajoutée n'est pas permanente . Une fois que vous éteignez le hotspot, l'IP sera effacée. Vous pouvez donc utiliser un init déclencher pour définir l'adresse IP chaque fois que le hotspot est activé. Ajoutez ces lignes à (/vendor)/etc/init/hostapd.android.rc (ou tout autre fichier .rc fichier sous /etc/init/ ):

on property:init.svc.hostapd=running
    exec - -- /system/bin/sleep 2
    exec u:r:magisk:s0 -- /system/bin/ip address add 192.168.43.100/24 dev wlan0
  • hostapd est le service système qui gère les points d'accès.
  • Le service utilise le contexte SELinux de Magisk en supposant que le dispositif est enraciné avec Magisk.

MÉTHODE 3 :

dnsmasq commence à écouter sur toutes les adresses IP qui sont définies sur l'interface WiFi avant dnsmasq est lancé. Mais avec les deux méthodes ci-dessus, il n'y a aucun moyen de s'assurer que l'IP est ajoutée après le démarrage de l'application. netd configure l'interface et avant dnsmasq démarre. Ainsi, l'ajout L'adresse IP peut être en conflit dont l'IP est louée à un autre hôte (sauvegardé en /data/misc/dhcp/dnsmasq.leases ) par le serveur DHCP ( dnsmasq jusqu'à Pie) de la gamme DHCP ( 192.168.43.2 a 192.168.43.254 par défaut) ( 4 ) .

Pour résoudre ce problème :

  • Réservez l'adresse IP ajoutée manuellement en modifiant dnsmasq.conf . Voir Comment attribuer de façon permanente une adresse IP statique à des clients Wi-Fi ou à des clients de connexion USB ?
  • Ou modifier la plage d'IP DHCP, mais c'est codé en dur. Vous pouvez remplacer dnsmasq avec un script shell pour y parvenir. Voir Comment modifier la plage d'adresses IP DHCP par défaut du hotspot ?
  • Ou remplacer /system/bin/dnsmasq avec un script shell qui ajoute l'adresse IP avant d'exécuter l'original. dnsmasq binaire. Renommer dnsmasq a dnsmasq.bin et créer un script : /system/bin/dnsmasq :

    #!/system/bin/sh
    
    # set fixed IP address on Wi-Fi interface
    ip address add 192.168.43.100/24 dev wlan0
    
    # execute original binary
    exec dnsmasq.bin $*
    • Définir la propriété, la permission et le contexte SELinux sur les deux fichiers. Voir cette réponse pour les détails.
    • En outre, vous pouvez ajouter listen-address=192.168.43.100 ( 5 ) a dnsmasq.conf .
    • Utilisez ss ou netstat pour s'assurer que le serveur DHCP est à l'écoute de l'adresse IP réservée (ou de toutes les adresses IP, par exemple). 0.0.0.0 ) afin d'éviter les collisions d'adresses IP.

NOTE qu'afin de modifier .rc , dnsmasq ou dnsmasq.conf des fichiers, /vendor y /system les partitions doivent être montées R/W ce qui nécessite dm-verity désactivé . Sinon, vous pouvez utiliser les montages bind (utilisés par les modules Magisk). Sur les systèmes non SAR dispositifs /init.rc peuvent également être édités pour modifier /init.rc dans le disque RAM en décompressant boot.img .

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X