Fidel Montesino

Sledovat

10. července, 2020 – 5 minut čtení

Pokud jste mobilní inženýr, během vývoje i testování pravděpodobně používáte některé z nejběžnějších nástrojů pro ladění, zachytávání nebo přepisování síťových volání, jako je Charles Proxy nebo Fiddler.

Také proces nastavení proxy serveru ve vašich zařízeních vám pravděpodobně přijde dost otravný: Přejděte do Nastavení > Nastavení sítě > Vyberte svou síť WiFi > Upravit síť > Přidat proxy server. Každý. Proxy je na každém kroku. Time. Uff!“

Pokud pracujete se sadou různých zařízení, pravděpodobně jste si také všimli drobných rozdílů mezi verzemi systému Android, výrobci atd. které mohou přidat nebo upravit kroky, které provedete pro nastavení proxy serveru.

Existuje malý příkaz adb, který můžete spustit z Terminálu a povolit globální proxy server v připojeném zařízení:

adb shell settings put global http_proxy YOUR_IP:YOUR_PORT

Nedá vám však žádný vizuální indikátor, podle kterého byste poznali, zda zařízení používá proxy server, nebo ne. Také vyžaduje, aby bylo zařízení připojeno k počítači s nainstalovaným adb pokaždé, když chcete proxy povolit nebo zakázat… což pravděpodobně způsobuje, že použití tohoto řešení není nejideálnější.

No, mám pro vás dobrou zprávu.

Proxy Toggle je malá obslužná aplikace kompatibilní s Androidem 5.0 a vyšším, která vám umožní rychle povolit a zakázat nastavení proxy a také sjednotit a zjednodušit proces napříč verzemi platforem, zařízeními, výrobci atd.

Proxy Toggle umožňuje nastavit globální proxy jedním klepnutím

Snadné nastavení: stačí přidat požadovanou IP a port, povolit proxy a voilà! vše je hotovo, celé vaše zařízení bude proxováno.

Ještě jednodušší

Vím, že je to všechno vzrušující novinka. Ale mám také pocit, že otevírat aplikaci pokaždé, když chcete povolit proxy, může být také zdlouhavý proces… že?“

Proto jsem také přidal dvě volitelné zkratky, které můžete používat: widget na domovskou obrazovku a dlaždici rychlého nastavení.

Widget na domovskou obrazovku

Tato zkratka je velmi užitečná pro rychlé povolení a zakázání naposledy použitého proxy z domovské obrazovky.

Pro přidání widgetu obvykle dlouze stiskněte domovskou obrazovku (v závislosti na vašem launcheru), vyberte možnost Přidat widget a sjeďte dolů v seznamu aplikací, dokud neuvidíte widget Přepínač proxy.

Widget na domovské obrazovce automaticky nastaví naposledy použitý proxy server

To je vše! Jediným klepnutím zapnete a vypnete proxy server!

Deska rychlého nastavení

Pokud vaše zařízení používá systém Android 7.0 nebo vyšší, budete mít přístup k další úžasné zkratce: desce rychlého nastavení. Tato zkratka se bude nacházet uvnitř zásuvky oznámení, vedle některých dalších praktických zkratek, jako je WiFi, Poloha, Bluetooth, Režim letadlo atd.

Chcete-li ji aktivovat, jednoduše rozbalte zásuvku navigace, klikněte na ikonu Upravit a přetáhněte ikonu Přepínač proxy, kamkoli ji chcete umístit.

Po povolení je dlaždice rychlého nastavení skvělou zkratkou pro přepínání proxy serveru

Dokončeno! Proxy server můžete zapínat a vypínat, aniž byste opustili aktuální aplikaci!

Poznámka: pokud máte nějaké probíhající síťové hovory, může jejich dokončení a aktualizace novým nastavením trvat několik sekund.

Vše, co se třpytí, není zlato

Ačkoli aplikace dokonale plní svůj cíl a usnadňuje nám život, je tu několik výhrad, na které chci u této nablýskané aplikace upozornit.

Používání systémových omezených oprávnění

Aplikace využije Nastavení.globální. Protože se jedná o systémové nastavení, je to normálně nastavení pouze pro čtení. Tuto drobnou nepříjemnost obejdete tím, že aplikaci udělíte WRITE_SECURE_SETTINGSomezené oprávnění.

Poznámka: jedná se o chráněné oprávnění, které by mělo být uděleno pouze systémovým aplikacím. Při udělování tohoto oprávnění aplikacím z neznámých zdrojů buďte obzvláště opatrní.

Vím, že to může vyvolat určité obavy, a chápu je.
Proto jsem se rozhodl pro open-source projekt: abych dokázal, že je zcela bezpečné toto oprávnění udělovat, protože budete mít naprostou kontrolu a budete vědět, co se děje v zákulisí.

Udělování systémových omezených oprávnění

Jelikož se jedná o omezené oprávnění, nemůžeme si ho vyžádat za běhu, jak bychom to dělali normálně, takže ho budeme muset udělit ručně z našeho počítače.

Pokud chcete aplikaci pouze nainstalovat, aniž byste ji sestavovali ze Studia Android, existuje malý skript, který bude přibalen k aplikaci. Stačí stáhnout soubor zip a spustit skript installAndGrantPermission.sh.
Případně můžete aplikaci nainstalovat ručně spuštěním příkazu adb install -g App.apk v Terminálu.

Chcete-li toto oprávnění udělit, jakmile je aplikace již nainstalována, připojte zařízení k počítači a v Terminálu spusťte následující příkaz:

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

Při odinstalování aplikace buďte opatrní

Naneštěstí jako vývojáři nemůžeme při odinstalování aplikace spustit žádný kód. Proto při odinstalování aplikace se zapnutým proxy serverem zůstane vaše zařízení trvale s tímto nastavením (protože se jedná o konfiguraci Settings.Global!).

Před odinstalováním aplikace byste se měli ujistit, že je proxy server vypnutý. Protože nemůžeme zaručit, že se tak stane, je zde také skript uninstallAndCleanUp.sh, který zajistí, že po odinstalování aplikace bude vše v čistém stavu.

Alternativně můžete v terminálu spustit následující příkazy pro vyčištění nastavení 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

Pohodlí na dosah ruky

Proxy Toggle usnadňuje nastavení globální proxy na libovolném telefonu se systémem Android a také poskytuje různé zkratky pro povolení a zakázání proxy jediným klepnutím na obrazovku. Doufám, že tento nástroj bude pro váš tým stejně užitečný, jako byl pro náš tým interních aplikací, a to jak pro vývojáře, tak pro testery!

Nejnovější verzi si můžete stáhnout odsud, nebo si projekt naklonovat z Githubu.

Mnohokrát děkuji jedinečné a úžasné Flor Novello za její neocenitelnou pomoc s designem aplikace!

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.