Ao conectar meu PC ao ponto de acesso Wi-Fi do Android, ele atribuiu um 192.168.42.x
endereço ao meu PC. Eu realmente preciso mudar isso, pois entra em conflito com uma de nossas sub-redes de trabalho - isso é possível?
27
Ao conectar meu PC ao ponto de acesso Wi-Fi do Android, ele atribuiu um 192.168.42.x
endereço ao meu PC. Eu realmente preciso mudar isso, pois entra em conflito com uma de nossas sub-redes de trabalho - isso é possível?
Respostas:
Infelizmente, não há como alterar o intervalo de endereços IP para o suporte de compartilhamento integrado, mesmo no CyanogenMod. O IP do ponto de acesso Wi-Fi é codificado em android.net.wifi.WifiStateMachine.startTethering () ; o IP de compartilhamento USB é codificado em com.android.server.connectivity.Tethering .
No entanto, se o telefone estiver enraizado, você pode tentar usar aplicativos de terceiros para amarrar, que têm a opção de alterar o intervalo de endereços IP. Por exemplo, quando o tethering USB incorporado foi quebrado nos alfas CyanogenMod para Samsung Galaxy W, usei o Wired Tether para usuários raiz , que tem essa opção. Para compartilhamento de Wi-Fi, você pode experimentar o aplicativo Wireless Tether for Root Users dos mesmos autores, que também tem a opção de alterar o intervalo de endereços IP.
Como o Google Code foi desligado, os links acima não funcionam mais. Algumas pessoas exportaram o código fonte desses repositórios para o GitHub:
No entanto, não houve mais atividades de desenvolvimento e os aplicativos provavelmente não funcionam mais nas versões recentes do Android.
Caso alguém queira experimentar esses aplicativos obsoletos, encontrei alguns arquivos APK no Google Code Archive :
fonte
O tethering wifi interno do Android foi projetado para usar 192.168.43.1/24 como servidor, com o
netd
manuseio do tetheringdnsmasq
. O primeiro intervalo de DNS é192.168.42.1-254
e o segundo intervalo de DNS é192.168.43.1-254
.Netd não é fácil de mudar. Ele requer um soquete para se comunicar com ele, e esse soquete é usado quando o Android inicia o compartilhamento. Mas, passando os arquivos de origem para
Tethering.java
(eu usei o Froyo), vemos:E mais tarde, vemos esses intervalos usados, como backups .
A fonte principal para os intervalos dhcp não são os 42 e 43 codificados, mas lidos em array.config_tether_dhcp_range, um array interno de strings. Mas está vazio no momento.
Você pode editar a estrutura do Android. No meu telefone, é
/system/framework/framework-res.apk
. Há uma tonelada de tutoriais on-line para edição de quadro res.apk, de cordas simples para theming completo. Encontre um para o seu telefone e a versão do Android.A principal coisa que você deseja alterar é a
/res/values/arrays.xml
Olhe para
<array name="config_tether_dhcp_range" />
Mudar para:
compile / zip / sign conforme necessário (siga um tutorial) e reinstale.
Se você deseja mais de um intervalo, basta copiar os dois itens repetidamente. Você sempre precisa fornecer um começo e uma parada para cada intervalo. Tente mantê-lo no mesmo / 24, ou seja,
192.168.50.
5 e192.168.50.99
ou o que for. Você pode confirmar que está funcionandobusybox ps | grep dnsmasq
ou, se não tiver o busyboxps dnsmasq
, use o pid incat /proc/pid/cmdline
. Você deve obter (ou similar):FWIW, meu compartilhamento WIFI usa os
dnsmasq
intervalos padrão , mas meu computador foi atribuído192.168.43.147/24
e gateway192.168.43.1/24
. Não sei por que o seu padrão foi um42.x
endereço.fonte
Eu sei que este é um post antigo, mas pensei em fornecer uma atualização. Parece que alguns fabricantes e versões do Android agora permitem alterar o alcance da sub-rede IP do servidor DHCP por meio da interface do usuário ao usar o recurso de ponto de acesso WiFi. Aqui está onde encontrá-lo em um HTC One M8 executando o Android 6.0. YMMV.
Na tela Mobile Hotspot, clique no ícone de 3 pontos (mais), vá para Avançado e, em seguida, Configurações da LAN. Em "IP local", altere o endereço IP para o IP desejado. Em "DHCP local", altere o IP inicial para corresponder à sub-rede do seu endereço IP.
Trent
fonte
NOTA: A raiz é necessária.
O intervalo de endereços IP do DHCP padrão é codificado ( 1 ) , você não pode alterá-lo sem reconstruir a ROM com o código-fonte modificado. Ou use um pequeno truque.
Quando você ativa o tethering, o que acontece (pelo menos):
hostapd
- o daemon que gerencia os pontos de acesso - é iniciado.dnsmasq
- o servidor DHCP / DNS (até Torta) - é iniciado com argumentos de linha de comando codificados ( 7 ) (que podem ser definidos em/etc/dnsmasq.conf
( 8 ) de outra forma).Assim, podemos substituir
/system/bin/dnsmasq
por um script de shell personalizado, assumindo o controle do processo no meio. Renomeie o binário original para outra coisa:Criar script
/system/bin/dnsmasq
:Confirme o nome da sua interface Wi-Fi (
wlan0
normalmente). Verifique comip link
ouls /sys/class/net/
.Também confirmam a sua tabela de roteamento de rede local é
97
:grep local_network /data/misc/net/rt_tables
. O roteamento do Android é uma bagunça, ficando mais complexo a cada nova versão. Portanto, não tenho certeza se isso foi persistente ou não. Antes de fazer alterações, verifique também suas políticas e tabelas de roteamento para descobrir o que você deve colocar em seu script:As regras do SELinux também precisam ser definidas se (todas ou algumas) ainda não estiverem definidas e se o status for
enforcing
. Use Magisk'ssuploicy
ou alguma outra ferramenta similar comosepolicy-inject
:* Não é persistente entre as reinicializações, use algum
init.d
script ou substituir/sepolicy
emramdisk
Defina permissões nos arquivos:
Apreciar!
Ou você pode configurar o compartilhamento completo da linha de comando, executando seus próprios processos. Esta resposta inclui as instruções, embora a pergunta seja diferente.
RELACIONADOS:
fonte