Fidel Montesino

Follow

10. jul, 2020 – 5 min læsning

Hvis du er mobilingeniør, bruger du sikkert under både udvikling og test nogle af de mest almindelige værktøjer derude til at fejlfinde, opsnappe eller omskrive dine netværksopkald, som Charles Proxy eller Fiddler.

Du vil sikkert også finde processen med at opsætte proxyen i dine enheder ret irriterende: Gå til Indstillinger > Netværksindstillinger > Vælg dit WiFi-netværk > Ændre netværk > Tilføj proxy. Hver. Single. Gang. Phew!

Hvis du arbejder med en række forskellige enheder, har du sikkert også bemærket små forskelle mellem Android-versioner, producenter osv., som kan tilføje eller ændre de trin, du tager for at konfigurere proxyen.

Der er en lille adb-kommando, du kan køre fra din Terminal for at aktivere en global proxy på din tilsluttede enhed:

adb shell settings put global http_proxy YOUR_IP:YOUR_PORT

Men det giver dig ikke nogen visuel indikator for at vide, om enheden bruger en proxy eller ej. Det kræver også, at enheden er tilsluttet en computer med adb installeret hver eneste gang, du vil aktivere eller deaktivere proxyen … hvilket sandsynligvis gør, at det ikke er den mest ideelle løsning at bruge denne omgåelse.

Jamen, jeg har gode nyheder til dig.

Proxy Toggle er et lille hjælpeprogram, der er kompatibelt med Android 5.0 og derover, og som giver dig mulighed for hurtigt at aktivere og deaktivere dine proxyindstillinger samt forene og forenkle processen på tværs af platformversioner, enheder, producenter osv.

Proxy Toggle giver dig mulighed for at konfigurere din globale proxy med et enkelt tryk

En nem opsætning: Du skal blot tilføje din ønskede IP og port, aktivere proxyen, og voilà! alt er klar, og hele din enhed vil blive proxyet.

Det gør det endnu nemmere

Jeg ved godt, at dette er spændende nyheder. Men jeg føler også, at det kan være en lang proces at skulle åbne appen, hver gang du vil aktivere proxyen… ikke sandt?

Det er derfor, at jeg også har tilføjet to valgfrie genveje, som du kan bruge: en widget til startskærmen og en flise til hurtige indstillinger.

Widget til startskærmen

Denne genvej er meget nyttig til at aktivere og deaktivere din sidst anvendte proxy hurtigt fra din startskærm.

For at tilføje widgeten skal du normalt trykke længe på din startskærm (afhængigt af din launcher), vælge Tilføj widget og rulle ned på din appliste, indtil du ser widgeten Proxy Toggle.

Hjemmeskærmens widget vil konfigurere den sidst anvendte proxy automatisk

Det er det! Tænd og sluk for din proxy med et enkelt tryk!

Snabolig til hurtige indstillinger

Hvis din enhed kører Android 7.0 eller højere, har du adgang til endnu en fantastisk genvej: en flise til hurtige indstillinger. Denne genvej vil ligge i din Notifikationsskuffe ved siden af nogle andre praktiske genveje som WiFi, Placering, Bluetooth, Flytilstand osv.

For at aktivere den skal du blot udvide din Navigationsskuffe, klikke på ikonet Rediger og trække ikonet Proxy Toggle derhen, hvor du ønsker at placere det.

Når den er aktiveret, er flisen med hurtige indstillinger en god genvej til at skifte proxy

Færdig! Du kan slå proxyen til og fra uden at forlade den aktuelle app!

Bemærk: Hvis du har igangværende netværksopkald, kan det tage et par sekunder, før de er færdige og opdateret med den nye indstilling.

Alt der glimter er ikke guld

Og selv om appen perfekt opfylder sit mål og gør vores liv lettere, er der et par forbehold, som jeg vil fremhæve om denne skinnende app.

Anvendelse af systembegrænsede tilladelser

Appen vil gøre brug af Settings.Global. Da dette er en systemindstilling, er det normalt en skrivebeskyttet indstilling. Denne lille ulempe omgås ved at give appen WRITE_SECURE_SETTINGS begrænset tilladelse.

Bemærk: Dette er en beskyttet tilladelse, som kun System-apps bør have. Vær ekstra forsigtig, når du giver denne tilladelse til apps fra ukendte kilder.

Jeg ved, at dette kan give anledning til nogle bekymringer, og jeg forstår dem godt.
Det er derfor, jeg besluttede at open source-projektet: for at bevise, at det er helt sikkert at give denne tilladelse, da du vil have fuld kontrol over og viden om, hvad der foregår bag kulisserne.

Givning af systembegrænsede tilladelser

Da dette er en begrænset tilladelse, kan vi ikke anmode om den på runtime, som vi normalt ville gøre, så du skal give den manuelt fra vores computer.

Hvis du bare vil installere appen uden at bygge den fra Android Studio, er der et lille script, som vil blive leveret sammen med appen. Du skal blot downloade zip-filen og udføre installAndGrantPermission.sh-scriptet.
Alternativt kan du manuelt installere appen ved at køre adb install -g App.apk på din Terminal.

For at give denne tilladelse, når appen allerede er installeret, skal du tilslutte enheden til din computer og udføre følgende kommando på din Terminal:

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

Vær forsigtig, når du afinstallerer appen

Som udviklere kan vi desværre ikke køre nogen kode, når appen afinstalleres. Derfor vil afinstallation af appen med proxyen aktiveret permanent efterlade din enhed med denne opsætning (da det er en Settings.Global-konfiguration!).

Du bør sørge for, at proxyen er deaktiveret, før du afinstallerer appen. Da vi ikke kan garantere, at dette vil ske, er der også uninstallAndCleanUp.sh scriptet til at sikre, at alt er i en ren tilstand efter afinstallering af appen.

Alternativt kan du køre følgende kommandoer i din Terminal for at rydde op i proxy-indstillingen:

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

Bekvemmelighed lige ved hånden

Proxy Toggle gør det nemmere at opsætte en global proxy på enhver Android-telefon, ligesom den giver forskellige genveje til at aktivere og deaktivere proxyen med et enkelt tryk på skærmen. Jeg håber, at dette værktøj vil være lige så nyttigt for dit team, som det har været for vores interne apps team, både udviklere og testere!

Du kan downloade den seneste version her, eller klone projektet fra Github.

Mange tak til den unikke og fantastiske Flor Novello for hendes uvurderlige hjælp med appdesignet!

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.