Le partage de connexion WiFi intégré à Android est conçu pour utiliser 192.168.43.1/24
comme serveur, avec netd
gérant le partage de connexion, utilisant dnsmasq
. La première plage DNS est 192.168.42.1-254
et la 2ème plage DNS est 192.168.43.1-254
.
Netd n'est pas facile à changer. Il nécessite un socket pour communiquer avec lui, et ce socket est pris lorsque Android démarre le partage de connexion. Mais en examinant les fichiers source de Tethering.java
(j'ai utilisé Froyo) on voit :
// Le client USB sera fourni avec 192.168.42.129
private static final String USB_NEAR_IFACE_ADDR = "192.168.42.129";
private static final String USB_NETMASK = "255.255.255.0";
// Pour info - le wifi par défaut est 192.168.43.1 et 255.255.255.0
private String[] mDhcpRange;
private static final String DHCP_DEFAULT_RANGE1_START = "192.168.42.2";
private static final String DHCP_DEFAULT_RANGE1_STOP = "192.168.42.254";
private static final String DHCP_DEFAULT_RANGE2_START = "192.168.43.2";
private static final String DHCP_DEFAULT_RANGE2_STOP = "192.168.43.254";
Et plus tard, on voit ces plages utilisées, COMME BACKUPS.
mDhcpRange = context.getResources().getStringArray(
com.android.internal.R.array.config_tether_dhcp_range);
if ((mDhcpRange.length == 0) || (mDhcpRange.length % 2 ==1)) {
mDhcpRange = new String[4];
mDhcpRange[0] = DHCP_DEFAULT_RANGE1_START;
mDhcpRange[1] = DHCP_DEFAULT_RANGE1_STOP;
mDhcpRange[2] = DHCP_DEFAULT_RANGE2_START;
mDhcpRange[3] = DHCP_DEFAULT_RANGE2_STOP;
}
La source principale des plages DHCP n'est pas le 42 et le 43 en dur, mais est lue à partir de array.config_tether_dhcp_range
, un tableau de chaînes interne. Mais il est actuellement vide.
Vous pourriez éditer le framework Android. Sur mon téléphone, c'est dans /system/framework/framework-res.apk
. Il y a plein de tutoriels en ligne pour éditer framework-res.apk
, des simples chaînes à des thèmes complets. Trouvez-en un pour votre téléphone et votre version d'Android.
La chose principale que vous souhaitez changer est le /res/values/arrays.xml
Cherchez . Changez à :
192.168.x.y
192.168.x.z
compiler/zipper/signer au besoin (suivez un tutoriel), puis réinstallez.
Si vous voulez plus d'une plage, copiez simplement les deux éléments à l'infini. Vous devez toujours fournir un début et une fin pour chaque plage. Essayez de les garder dans la même /24, c'est-à-dire 192.168.50.
5 et 192.168.50.99
ou autre. Vous pouvez confirmer que cela fonctionne avec busybox ps | grep dnsmasq
, ou si vous n'avez pas busybox ps dnsmasq
puis utilisez le pid dans cat /proc/pid/cmdline
. Vous devriez obtenir (ou similaire) :
/system/bin/dnsmasq --no-daemon --no-poll -no-resolv --dhcp-range=192.168.50.5,192.168.50.99,1h
À titre indicatif, mon partage de connexion WiFi utilise les plages dnsmasq
par défaut, mais mon ordinateur a été assigné 192.168.43.147/24
et passerelle 192.168.43.1/24
. Je ne sais pas pourquoi le vôtre est configuré sur une adresse en 42.x
.
4 votes
Mon mobile est rooté. Je n'ai pas de problème à modifier les fichiers système si nécessaire.
0 votes
Tout comme réponse aux nuances dans certaines des réponses précédentes, dans ma pratique, la plage 192.168.43.0/24 est par défaut assignée par Android/fournisseur pour le partage de connexion WiFi et 192.168.42.0/24 est pour le partage de connexion USB.
0 votes
Comment modifier la plage d'adresses IP DHCP par défaut ?