Al conectar mi PC al punto de acceso Wi-Fi de Android, asignó una 192.168.42.x
dirección a mi PC. Realmente necesito cambiar esto, ya que entra en conflicto con una de nuestras subredes de trabajo. ¿Es esto posible?
27
Al conectar mi PC al punto de acceso Wi-Fi de Android, asignó una 192.168.42.x
dirección a mi PC. Realmente necesito cambiar esto, ya que entra en conflicto con una de nuestras subredes de trabajo. ¿Es esto posible?
Respuestas:
Desafortunadamente, no hay forma de cambiar el rango de direcciones IP para el soporte de anclaje incorporado, incluso en CyanogenMod. La IP del punto de acceso Wi-Fi está codificada en android.net.wifi.WifiStateMachine.startTethering () ; la IP de conexión USB está codificada en com.android.server.connectivity.Tethering .
Sin embargo, si su teléfono está rooteado, puede intentar usar aplicaciones de terceros para la conexión que tengan la opción de cambiar el rango de direcciones IP. Por ejemplo, cuando la conexión USB incorporada se rompió en CyanogenMod alphas para Samsung Galaxy W, utilicé Wired Tether para usuarios root , que tiene esa opción. Para la conexión Wi-Fi, puede probar la aplicación Wireless Tether for Root Users de los mismos autores, que también tiene la opción de cambiar el rango de direcciones IP.
Debido a que Google Code se cerró, los enlaces anteriores ya no funcionan. Algunas personas exportaron el código fuente de esos repositorios a GitHub:
Sin embargo, no hubo más actividad de desarrollo, y las aplicaciones probablemente ya no funcionen en las versiones recientes de Android.
En caso de que alguien quiera probar esas aplicaciones obsoletas, he podido encontrar algunos archivos APK en el Archivo de códigos de Google :
fuente
El anclaje a red incorporado de Android está diseñado para usar 192.168.43.1/24 como servidor, con el
netd
manejo del anclaje a reddnsmasq
. El primer rango de DNS es192.168.42.1-254
y y el segundo rango de DNS es192.168.43.1-254
.Netd no es fácil de cambiar. Requiere un socket para comunicarse con él, y ese socket se toma cuando Android comienza a conectarse. Pero revisando los archivos fuente de
Tethering.java
(usé Froyo) vemos:Y más adelante vemos esos rangos utilizados, COMO BACKUPS .
La fuente principal de los rangos dhcp no son los codificados 42 y 43, sino que se leen desde array.config_tether_dhcp_range, una matriz de cadenas interna. Pero actualmente está vacío.
Podrías editar el marco de Android. En mi teléfono, lo es
/system/framework/framework-res.apk
. Hay un montón de tutoriales en línea para editar framework-res.apk, desde cadenas simples hasta temas completos. Encuentre uno para su teléfono y versión de Android.Lo principal que desea cambiar es el
/res/values/arrays.xml
Buscar
<array name="config_tether_dhcp_range" />
Cambiar a:
compile / zip / sign según sea necesario (siga un tutorial), luego reinstale.
Si desea más de un rango, simplemente copie los dos elementos una y otra vez. Siempre debe proporcionar un inicio y una parada para cada rango. Trate de mantenerlo en el mismo / 24, es decir,
192.168.50.
5192.168.50.99
o lo que sea. Puede confirmar que está funcionandobusybox ps | grep dnsmasq
o si no tiene busyboxps dnsmasq
, use el pid incat /proc/pid/cmdline
. Deberías obtener (o similar):FWIW, mi conexión WIFI utiliza los
dnsmasq
rangos predeterminados , pero mi computadora fue asignada192.168.43.147/24
y puerta de enlace192.168.43.1/24
. No estoy seguro de por qué el tuyo se omitió en una42.x
dirección.fuente
Sé que esta es una publicación antigua, pero pensé que podría proporcionar una actualización. Parece que algunos fabricantes y versiones de Android ahora sí permiten el cambio del rango de subred IP para el servidor DHCP a través de la interfaz de usuario cuando se utiliza la función de punto de acceso WiFi. Aquí es donde encontrarlo en un HTC One M8 con Android 6.0. YMMV.
Desde la pantalla Mobile Hotspot, haga clic en el ícono de 3 puntos (más), vaya a Avanzado y luego a Configuración de LAN. En "IP local", cambie la dirección IP a su IP deseada. En "DHCP local", cambie la IP de inicio para que coincida con la subred de su dirección IP.
Trent
fuente
NOTA: Se requiere root.
El rango predeterminado de direcciones IP de DHCP está codificado ( 1 ) , no puede cambiarlo sin reconstruir la ROM con el código fuente modificado. O usa un pequeño truco.
Cuando activas el anclaje, lo que sucede (al menos):
hostapd
- se inicia el demonio que gestiona los puntos de acceso.dnsmasq
- el servidor DHCP / DNS (hasta Pie) - se inicia con argumentos de línea de comandos codificados ( 7 ) (que de lo contrario se pueden configurar mediante/etc/dnsmasq.conf
( 8 ) ).Por lo tanto, podemos reemplazarlo
/system/bin/dnsmasq
con un script de shell personalizado, tomando el control del proceso intermedio. Cambie el nombre del binario original a otra cosa:Crear guión
/system/bin/dnsmasq
:Confirme el nombre de su interfaz Wi-Fi (
wlan0
generalmente). Consulte conip link
ols /sys/class/net/
.También confirmar su tabla de enrutamiento de red local es
97
:grep local_network /data/misc/net/rt_tables
. El enrutamiento de Android es un desastre, que se vuelve más complejo con cada nueva versión. Así que no estoy seguro de si esto ha sido persistente o no. Además, antes de realizar cualquier cambio, verifique sus políticas y tablas de enrutamiento para averiguar qué debe incluir en su script:Las reglas de SELinux también deben definirse si (todas o algunas) aún no están definidas y si el estado sí lo está
enforcing
. Utilice Magisksuploicy
u otra herramienta similar comosepolicy-inject
:* no es persistente en todos los reinicios, usa algún
init.d
script o reemplaza/sepolicy
enramdisk
Establecer permisos en archivos:
¡Disfrutar!
O puede configurar la conexión completa desde la línea de comandos, ejecutando sus propios procesos. Esta respuesta incluye las instrucciones, aunque la pregunta es diferente.
RELACIONADO:
fuente