La conexión wifi integrada de Android está diseñada para usar 192.168.43.1/24 como servidor, con netd manejando la conexión, usando dnsmasq. El primer rango del DNS es 192.168.42.1-254 y el segundo rango del DNS es 192.168.43.1-254.
Netd no es fácil de cambiar. Requiere un enchufe para comunicarse con ella, y ese enchufe se toma cuando Android comienza a atarse. Pero al revisar los archivos fuente de Tethering.java (usé Froyo) vemos:
// usb client will be provided 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";
// FYI - the default wifi is 192.168.43.1 and 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";
Y más tarde vemos esos rangos usados, COMO RETROCESO .
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 fuente principal de los rangos de dhcp no es el hardcode 42 y 43, sino que se lee desde array.config_tether_dhcp_range, una matriz de cadenas internas. Pero actualmente está vacía.
Podrías editar el marco de trabajo de Android. En mi teléfono, es /system/framework/framework-res.apk. Hay un ton de tutoriales en línea para la edición del marco de trabajo-res.apk, desde simples cuerdas hasta la temática completa. Encuentra uno para tu teléfono y la versión Android.
Lo principal que quieres cambiar es el /res/valores/arrays.xml
Busca <array name="config_tether_dhcp_range" />
Cambiar a:
<string-array name="config_tether_dhcp_range">
<item>192.168.x.y</item>
<item>192.168.x.z</item>
</string-array>
compilar/comprimir/señalar según sea necesario (seguir un tutorial), y luego reinstalar.
Si quieres más de un rango, sólo copia los dos artículos una y otra vez. Siempre tienes que proporcionar un inicio y una parada para cada rango. Intenta mantenerlo en el mismo /24, es decir, 192.168.50.5 y 192.168.50.99 o lo que sea. Puedes confirmar que está funcionando con busybox ps | grep dnsmasq
o si no tienes un buzón ocupado ps dnsmasq
y luego usar el PID en cat /proc/pid/cmdline
. Deberías conseguir (o similar):
/system/bin/dnsmasq --no-daemon --no-poll -no-resolv --dhcp-range=192.168.50.5,192.168.50.99,1h
FWIW, mi conexión WIFI usa los rangos dnsmasq por defecto, pero mi ordenador fue asignado al 192.168.43.147/24 y la puerta de enlace 192.168.43.1/24. No estoy seguro de por qué el tuyo tiene por defecto una dirección 42.x.
4 votos
Mi móvil está rooteado. No me importa cambiar los archivos del sistema si es necesario.
0 votos
Sólo como respuesta a los matices en algunas de las grandes respuestas anteriores, en mi práctica el rango 192.168.43.0/24 es por defecto Android / proveedor asignado para el tethering WiFi y 192.168.42.0/24 es para el tethering USB.
0 votos
¿Cómo cambiar el rango de direcciones IP DHCP por defecto?