Fidel Montesino

Follow

Jul 10, 2020 – 5 min read

Om du är mobilingenjör använder du förmodligen några av de vanligaste verktygen som finns där ute för att felsöka, avlyssna eller skriva om dina nätverkssamtal, som Charles Proxy eller Fiddler.

Du kommer förmodligen också att tycka att processen med att konfigurera proxyn i dina enheter är ganska irriterande: Gå till Inställningar > Nätverksinställningar > Välj ditt WiFi-nätverk > Ändra nätverk > Lägg till proxy. Varje. Single. Time. Puh!

Om du arbetar med flera olika enheter har du förmodligen också märkt små skillnader mellan Android-versioner, tillverkare osv. som kan lägga till eller ändra stegen du tar för att konfigurera proxyn.

Det finns ett litet adb-kommando som du kan köra från terminalen för att aktivera en global proxy på den anslutna enheten:

adb shell settings put global http_proxy YOUR_IP:YOUR_PORT

Men det här ger dig ingen visuell indikator för att veta om enheten använder en proxy eller inte. Det kräver också att enheten är ansluten till en dator med adb installerad varje gång du vill aktivera eller inaktivera proxyn… vilket förmodligen gör att det inte är den mest idealiska lösningen att använda den här lösningen.

Ja, jag har goda nyheter för dig.

Proxy Toggle är ett litet hjälpprogram som är kompatibelt med Android 5.0 och senare och som gör det möjligt för dig att snabbt aktivera och inaktivera proxyinställningarna, samt att förenhetliga och förenkla processen mellan olika plattformsversioner, enheter, tillverkare, osv.

Proxy Toggle låter dig konfigurera din globala proxy med ett enda tryck

Enkla inställningar: lägg bara till önskad IP och port, aktivera proxy och voilà! och så är allt klart, hela din enhet kommer att vara proxyad.

Men gör det ännu enklare

Jag vet att det här är spännande nyheter. Men jag känner också att det kan vara en lång process att behöva öppna appen varje gång du vill aktivera proxyn… eller hur?

Det är därför jag också lagt till två valfria genvägar som du kan använda: en widget för hemskärmen och en snabbinställningsbricka.

Hemskärmswidget

Den här genvägen är mycket användbar för att aktivera och inaktivera den senast använda proxyn snabbt från din hemskärm.

För att lägga till widgeten trycker du normalt länge på din hemskärm (beroende på din launcher), väljer Lägg till widget och bläddrar ner i applistan tills du ser widgeten Proxy Toggle.

Hemskärmswidgeten kommer att konfigurera den senast använda proxyn automatiskt

Det var allt! Slå på och stänga av din proxy med ett enda tryck!

Snabbinställningskakel

Om din enhet kör Android 7.0 eller senare har du tillgång till en annan fantastisk genväg: en snabbinställningskakel. Den här genvägen kommer att finnas i din Notifieringslådan, bredvid några andra praktiska genvägar som WiFi, Plats, Bluetooth, Flygplansläge etc.

För att aktivera den expanderar du helt enkelt din Navigeringslådan, klickar på ikonen Redigera och drar ikonen Proxy Toggle dit du vill placera den.

När den väl är aktiverad är snabbinställningsrutan en bra genväg för att växla din proxy

Färdigt! Du kan slå på och stänga av din proxy utan att ens lämna den aktuella appen!

Observera: Om du har några pågående nätverkssamtal kan det ta några sekunder innan de avslutas och uppdateras med den nya inställningen.

Allt som glittrar är inte guld

Och även om appen perfekt uppnår sitt mål och gör vårt liv enklare, finns det ett par varningar som jag vill belysa om denna glänsande app.

Användning av systembegränsade behörigheter

Appen kommer att använda sig av Settings.Global. Eftersom detta är en systeminställning är det normalt en skrivskyddad inställning. Denna lilla olägenhet kringgås genom att ge appen WRITE_SECURE_SETTINGS begränsad behörighet.

Observera: detta är en skyddad behörighet som endast systemappar bör beviljas. Var extra försiktig när du beviljar den här behörigheten för appar från okända källor.

Jag vet att det här kan väcka en del oro, och jag förstår dem.
Det var därför jag bestämde mig för att öppna källkoden till projektet: för att bevisa att det är helt säkert att bevilja denna behörighet, eftersom du kommer att ha fullständig kontroll och kunskap om vad som händer bakom kulisserna.

Givande av begränsade systembehörigheter

Då detta är en begränsad behörighet kan vi inte begära den vid körning som vi normalt skulle göra, så du måste bevilja den manuellt från vår dator.

Om du bara vill installera appen utan att bygga den från Android Studio, finns det ett litet skript som kommer att levereras tillsammans med appen. Det är bara att ladda ner zip-filen och köra skriptet installAndGrantPermission.sh.
Alternativt kan du installera appen manuellt genom att köra adb install -g App.apk i din Terminal.

För att bevilja detta tillstånd när appen redan är installerad ansluter du enheten till datorn och kör följande kommando i din Terminal:

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

Var försiktig när du avinstallerar appen

Syndigt nog kan vi som utvecklare inte köra någon kod när appen avinstalleras. Därför kommer avinstallation av appen med proxyn aktiverad att permanent lämna enheten med denna inställning (eftersom det är en Settings.Global-konfiguration!).

Du bör se till att proxyn är inaktiverad innan du avinstallerar appen. Eftersom vi inte kan garantera att detta kommer att ske finns det också uninstallAndCleanUp.sh skriptet för att se till att allt är i ett rent tillstånd efter avinstallation av appen.

Alternativt kan du köra följande kommandon i terminalen för att rensa proxyinställningen:

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

Bekvämlighet vid dina fingertoppar

Proxy Toggle gör det enklare att ställa in en global proxy på vilken Android-telefon som helst, samt ger olika genvägar för att aktivera och inaktivera proxyn med ett enda tryck på skärmen. Jag hoppas att det här verktyget kommer att vara lika användbart för ditt team som det har varit för vårt interna app-team, både utvecklare och testare!

Du kan ladda ner den senaste versionen härifrån, eller klona projektet från Github.

Mycket tack till den unika och fantastiska Flor Novello för hennes ovärderliga hjälp med appdesignen!

Lämna ett svar

Din e-postadress kommer inte publiceras.