Fidel Montesino

Follow

Jul 10, 2020 – 5 min leia-se

Se você é um engenheiro móvel, durante o desenvolvimento e os testes você provavelmente usa algumas das ferramentas mais comuns para depurar, interceptar ou reescrever suas chamadas de rede, como Charles Proxy ou Fiddler.

Você provavelmente também achará o processo de configuração do proxy em seus dispositivos bastante irritante: vá para Configurações > Configurações de Rede > Selecione sua rede WiFi > Modifique a Rede > Adicione proxy. Todos. Simples. Tempo. Phew!

Se você estiver trabalhando com um conjunto de dispositivos diferentes, você provavelmente também notou pequenas diferenças entre as versões do Android, fabricantes, etc., que podem adicionar ou modificar os passos para configurar o proxy.

Existe um pequeno comando adb que você pode executar a partir do seu Terminal para habilitar um proxy global no seu dispositivo conectado:

adb shell settings put global http_proxy YOUR_IP:YOUR_PORT

Mas isso não lhe dará nenhum indicador visual para saber se o dispositivo está usando um proxy ou não. Também requer que o dispositivo esteja conectado a um computador com adb instalado cada vez que você quiser habilitar ou desabilitar o proxy… o que provavelmente faz com que usar esta solução não seja a mais ideal.

Bem, tenho boas notícias para você.

Proxy Toggle é um pequeno aplicativo utilitário compatível com o Android 5.0 e superior que lhe permitirá habilitar e desabilitar rapidamente suas configurações de proxy, bem como unificar e simplificar o processo entre as versões da plataforma, dispositivos, fabricantes, etc.

>

Proxy Toggle permite que você configure o seu proxy global com um toque

Configuração fácil: basta adicionar seu IP e porta desejados, habilitar o proxy e voilà! tudo feito, seu dispositivo inteiro será proxied.

Tornando ainda mais fácil

Eu sei que isso tudo é uma notícia excitante. Mas também sinto que ter que abrir o aplicativo toda vez que você quiser ativar o proxy também pode ser um processo longo… certo?

É por isso que também adicionei dois atalhos opcionais para você usar: um widget de tela inicial e um tile de configurações rápidas.

Widget de tela inicial

Este atalho é muito útil para ativar e desativar seu último proxy usado rapidamente a partir da sua tela inicial.

Para adicionar o widget, você normalmente pressionaria sua tela inicial (dependendo do seu lançador), selecione Adicionar Widget e role para baixo na sua lista de aplicativos até ver o widget Proxy Toggle.

>

>

O widget da tela inicial configurará automaticamente o último proxy usado

É isso! Ligue e desligue o seu proxy com um único toque!

Quick Settings Tile

Se o seu dispositivo estiver a executar o Android 7.0 ou superior, terá acesso a outro atalho incrível: um Quick Settings Tile. Este atalho irá viver dentro da sua gaveta de notificação, ao lado de outros atalhos úteis como WiFi, Localização, Bluetooth, Modo Avião, etc.

Para ativá-lo, basta expandir a sua gaveta de navegação, clicar no ícone Editar e arrastar o ícone de Alternância de Proxy para onde você quiser colocá-lo.

>

>

Ativado, o tile quick settings é um ótimo atalho para alternar seu proxy

Done! Você pode ligar e desligar o seu proxy sem mesmo deixar o aplicativo atual!

Note: se você tiver alguma chamada de rede em andamento, elas podem levar alguns segundos para serem completadas e atualizadas com a nova configuração.

Tudo o que brilha não é ouro

Embora o aplicativo cumpra perfeitamente seu objetivo e torne nossa vida mais fácil, há um par de ressalvas que eu quero destacar sobre este aplicativo brilhante.

Usando permissões restritas do sistema

O aplicativo fará uso do Settings.Global. Como esta é uma configuração do sistema, normalmente é uma configuração somente leitura. Este pequeno inconveniente é contornado ao conceder o aplicativo WRITE_SECURE_SETTINGS permissão restrita.

Note: esta é uma permissão protegida que somente os aplicativos do Sistema devem ser concedidos. Tenha cuidado extra quando você conceder esta permissão para aplicativos de fontes desconhecidas.

Eu sei que isto pode levantar algumas preocupações, e eu as entendo.
Foi por isso que decidi abrir o projeto: para provar que é completamente seguro conceder essa permissão, pois você terá controle total e conhecimento do que está acontecendo nos bastidores.

Permissões restritas do sistema de transição

Posto que esta é uma permissão restrita, não podemos solicitá-la em tempo de execução como normalmente faríamos, então você precisará concedê-la manualmente do nosso computador.

Se você quiser apenas instalar o aplicativo sem construí-lo a partir do Android Studio, há um pequeno script que será empacotado com o aplicativo. Basta baixar o arquivo zip e executar o arquivo installAndGrantPermission.sh script.
Alternativamente, você pode instalar manualmente o aplicativo executando adb install -g App.apk no seu Terminal.

Para conceder essa permissão uma vez que o aplicativo já esteja instalado, conecte o dispositivo ao seu computador e execute o seguinte comando no seu Terminal:

adb shell pm grant com.kinandcarta.create.proxytoggle android.permission.WRITE_SECURE_SETTINGS

Tenha cuidado ao desinstalar o aplicativo

Sadly, como desenvolvedores, não podemos executar nenhum código quando o aplicativo estiver sendo desinstalado. Portanto, desinstalar a app com o proxy ativado deixará seu dispositivo permanentemente com esta configuração (pois é uma configuração Settings.Global!).

Você deve ter certeza de que o proxy está desativado antes de desinstalar a app. Como não podemos garantir que isso vai acontecer, há também o script uninstallAndCleanUp.sh para ter certeza de que tudo está em um estado limpo depois de desinstalar a app.

Alternativamente, você poderia executar os seguintes comandos no seu Terminal para limpar a configuração do proxy:

adb shell settings delete global http_proxy
adb shell settings delete global global_http_proxy_host
adb shell settings delete global global_http_proxy_port

Conveniência na ponta dos seus dedos

Alternativamente, você poderia executar os seguintes comandos no seu Terminal para limpar a configuração do proxy:

adb shell settings delete global http_proxy
adb shell settings delete global global_http_proxy_host
adb shell settings delete global global_http_proxy_port

Conveniência na ponta dos seus dedos

Alternativamente, você poderia executar os seguintes comandos no seu Terminal para limpar a configuração do proxy Espero que esta ferramenta seja tão útil para sua equipe quanto tem sido para nossa equipe interna de aplicativos, tanto desenvolvedores quanto testadores!

Você pode baixar a última versão daqui, ou clonar o projeto do Github.

Muito obrigado à única e incrível Flor Novello por sua inestimável ajuda com o design do aplicativo!

Deixe uma resposta

O seu endereço de email não será publicado.