Mais
Como configurar as definições DHCP do WIFI Tethering (Hotspot) no Android?
Ao ligar o meu PC ao hotspot Wi-Fi do Android, atribuiu um endereço 192.168.42.x
ao meu PC. Preciso realmente de mudar isto, pois entra em conflito com uma das nossas sub-redes de trabalho - será isto possível?
27
3
Infelizmente, não há forma de alterar a gama de endereços IP para o suporte de fixação de construção, mesmo em CyanogenMod. O IP do hotspot Wi-Fi é hardcoded em android.net.wifi.WifiStateMachine.startTethering(); o IP de ligação USB é hardcoded em com.android.server.connectivity.Tethering.
No entanto, se o seu telefone estiver enraizado, pode tentar utilizar aplicações de terceiros para amarrar que têm a opção de alterar a gama de endereços IP. Por exemplo, quando a ligação USB foi quebrada em alfas CyanogenMod para Samsung Galaxy W, usei Wired Tether for Root Users, que tem essa opção. Para a ligação Wi-Fi pode experimentar a aplicação Wireless Tether for Root Users dos mesmos autores, que também tem a opção de alterar a gama de endereços IP.
Como o Código Google foi desligado, os links acima já não funcionam. Algumas pessoas exportaram o código fonte desses repositórios para o GitHub:
Contudo, não houve mais actividade de desenvolvimento, e as aplicações provavelmente já não funcionam nas versões recentes do Android.
Para o caso de alguém querer experimentar essas aplicações obsoletas, consegui encontrar alguns ficheiros APK no Google Code Archive:
O dispositivo de ligação wifi do Android foi concebido para utilizar 192.168.43.1/24 como servidor, com
netd
a manusear o dispositivo de ligação, utilizando odnsmasq
. O primeiro intervalo DNS é192.168.42.1-254
e o segundo intervalo DNS é192.168.43.1-254
.A Netd não é fácil de mudar. Requer uma tomada para comunicar com ela, e essa tomada é tomada quando o andróide começa a amarrar. Mas ao percorrer os ficheiros da fonte para
Tethering.java
(utilizei Froyo), vemos:E mais tarde vemos essas gamas utilizadas, **AS BACKUPS***.
A fonte principal para as gamas dhcp não é o hardcoded 42 e 43, mas lido a partir de array.config_tether_dhcp_range, um array de cordas interno. Mas está actualmente vazia.
Poderia editar a estrutura do androide. No meu telefone, é
/system/framework/framework-res.apk
. Há uma ton de tutoriais online para editar framework-res.apk, desde simples strings a temas completos. Encontre um para o seu telefone e versão andróide.O principal que quer mudar é o
/res/valores/arrays.xml
.Procure ``
Mudar para:
compilar/zip/assinar conforme necessário (seguir um tutorial), depois reinstalar.
Se quiser mais do que um intervalo, basta copiar os dois itens uma e outra vez. É sempre necessário fornecer um início e uma paragem para cada intervalo. Tente mantê-la no mesmo /24, ou seja
192.168.50.
5 e192.168.50.99
ou o que quer que seja. Pode confirmar que está a trabalhar combusybox ps | grep dnsmasq
ou se não tiver'não tiver busyboxps dnsmasq
então utilize o pid emcat /proc/pid/cmdline
. Deverá obter (ou similar):FWIW, a minha ligação WIFI utiliza as gamas padrão
dnsmasq
, mas o meu computador foi atribuído192.168.43.147/24
e o gateway192.168.43.1/24
. Não tenho a certeza porque é que o seu endereço por defeito foi42.x
.Eu sei que este é um posto antigo, mas pensei em fornecer uma actualização. Parece que alguns fabricantes e versões do Android permitem agora a mudança da gama de subrede IP para o servidor DHCP através do UI quando se utiliza a funcionalidade de hotspot WiFi. Aqui's onde encontrá-lo num HTC One M8 a executar o Android 6.0. YMMV.
A partir do ecrã do hotspot móvel, clicar no ícone de 3 pontos (mais), ir para Avançadas, depois definições LAN. Em "IP" local; altere o endereço IP para o seu IP desejado. Em "Local DHCP" altere o IP inicial para corresponder à subrede do seu endereço IP.
Trent