Fidel Montesino

Follow

Jul 10, 2020 – 5 min read

Jeśli jesteś inżynierem mobilnym, podczas rozwoju i testowania prawdopodobnie używasz niektórych z najbardziej popularnych narzędzi do debugowania, przechwytywania lub przepisywania połączeń sieciowych, takich jak Charles Proxy lub Fiddler.

Prawdopodobnie znajdziesz również proces ustawiania proxy w swoich urządzeniach dość irytujące: przejdź do Ustawienia > Ustawienia sieci > Wybierz swoją sieć WiFi > Modyfikuj sieć > Dodaj proxy. Każdy. Single. Time. Phew!

Jeśli pracujesz z zestawem różnych urządzeń, prawdopodobnie zauważyłeś też drobne różnice między wersjami Androida, producentami itp., które mogą dodać lub zmodyfikować kroki podejmowane w celu skonfigurowania proxy.

Istnieje małe polecenie adb, które możesz uruchomić z Terminala, aby włączyć globalne proxy na podłączonym urządzeniu:

adb shell settings put global http_proxy YOUR_IP:YOUR_PORT

Ale to nie da ci żadnego wizualnego wskaźnika, aby wiedzieć, czy urządzenie używa proxy, czy nie. Wymaga również, aby urządzenie było podłączone do komputera z zainstalowanym adb za każdym razem, gdy chcesz włączyć lub wyłączyć proxy… co prawdopodobnie sprawia, że korzystanie z tego obejścia nie jest najbardziej idealnym rozwiązaniem.

Cóż, mam dla ciebie dobrą wiadomość.

Proxy Toggle to mała aplikacja użytkowa kompatybilna z Androidem 5.0 i nowszym, która pozwoli ci szybko włączyć i wyłączyć ustawienia proxy, a także ujednolicić i uprościć proces w różnych wersjach platformy, urządzeniach, producentach itp.

Proxy Toggle pozwala skonfigurować globalne proxy za pomocą jednego stuknięcia

Łatwa konfiguracja: wystarczy dodać żądany IP i port, włączyć proxy i voilà! wszystko zrobione, całe urządzenie będzie proxy.

Uczynienie tego jeszcze łatwiejszym

Wiem, że to wszystko są ekscytujące wiadomości. Ale czuję również, że konieczność otwierania aplikacji za każdym razem, gdy chcesz włączyć proxy może być również długim procesem… prawda?

Dlatego też dodałem dwa opcjonalne skróty do użycia: widżet ekranu domowego i kafelek szybkich ustawień.

Widżet ekranu domowego

Ten skrót jest bardzo pomocny przy włączaniu i wyłączaniu ostatnio używanego proxy szybko z ekranu domowego.

Aby dodać widżet, normalnie naciśnij długo ekran główny (w zależności od launchera), wybierz Dodaj widżet i przewiń w dół na liście aplikacji, aż zobaczysz widżet Proxy Toggle.

Widżet ekranu głównego automatycznie skonfiguruje ostatnio używane proxy

To wszystko! Włączaj i wyłączaj proxy jednym dotknięciem!

Kafelek szybkich ustawień

Jeśli Twoje urządzenie działa pod kontrolą systemu Android 7.0 lub nowszego, będziesz miał dostęp do kolejnego niesamowitego skrótu: Kafelka szybkich ustawień. Ten skrót będzie żył wewnątrz Szuflady powiadomień, obok niektórych innych poręcznych skrótów, takich jak WiFi, Lokalizacja, Bluetooth, Tryb samolotowy, itp.

Aby go włączyć, po prostu rozwiń Szufladę nawigacji, kliknij na ikonę Edytuj i przeciągnij ikonę Proxy Toggle, gdziekolwiek chcesz ją umieścić.

Po włączeniu, kafelek szybkich ustawień jest świetnym skrótem do przełączania proxy

Zrobione! Możesz włączać i wyłączać proxy nawet bez opuszczania bieżącej aplikacji!

Uwaga: jeśli masz jakiekolwiek trwające połączenia sieciowe, mogą one zająć kilka sekund, aby zakończyć i zaktualizować z nowym ustawieniem.

Wszystko co się świeci nie jest złotem

Ale aplikacja doskonale realizuje swój cel i ułatwia nam życie, jest kilka zastrzeżeń, które chcę podkreślić o tej błyszczącej aplikacji.

Używanie systemowych ograniczonych uprawnień

Aplikacja będzie korzystać z Settings.Global. Ponieważ jest to ustawienie systemowe, zwykle jest to ustawienie tylko do odczytu. Ta mała niedogodność jest omijana przez przyznanie aplikacji WRITE_SECURE_SETTINGSograniczonego uprawnienia.

Uwaga: jest to chronione uprawnienie, które powinno być przyznawane tylko aplikacjom systemowym. Zachowaj szczególną ostrożność podczas przyznawania tego uprawnienia aplikacjom z nieznanych źródeł.

Wiem, że może to budzić pewne obawy, i rozumiem je.
Dlatego zdecydowałem się na open-source projektu: aby udowodnić, że jest to całkowicie bezpieczne, aby przyznać to pozwolenie, jak będziesz miał pełną kontrolę i wiedzę o tym, co dzieje się za kulisami.

Udzielanie ograniczonych uprawnień systemowych

Ponieważ jest to ograniczone uprawnienie, nie możemy go zażądać w trybie runtime, tak jak normalnie byśmy to zrobili, więc będziesz musiał ręcznie przyznać je z naszego komputera.

Jeśli chcesz po prostu zainstalować aplikację bez budowania jej z Android Studio, jest mały skrypt, który będzie dołączony do aplikacji. Wystarczy pobrać plik zip i wykonać skrypt installAndGrantPermission.sh.
Alternatywnie, można ręcznie zainstalować aplikację poprzez uruchomienie adb install -g App.apk w Terminalu.

Aby przyznać to pozwolenie, gdy aplikacja jest już zainstalowana, podłącz urządzenie do komputera i wykonaj następujące polecenie w Terminalu:

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

Bądź ostrożny podczas odinstalowywania aplikacji

Niestety, jako deweloperzy, nie możemy uruchomić żadnego kodu, gdy aplikacja jest odinstalowywana. Dlatego odinstalowanie aplikacji z włączonym proxy na stałe pozostawi twoje urządzenie z tym ustawieniem (ponieważ jest to konfiguracja Settings.Global!).

Powinieneś upewnić się, że proxy jest wyłączone przed odinstalowaniem aplikacji. Ponieważ nie możemy zagwarantować, że tak się stanie, istnieje również skrypt uninstallAndCleanUp.sh do upewnienia się, że wszystko jest w czystym stanie po odinstalowaniu aplikacji.

Alternatywnie, można uruchomić następujące polecenia w Terminalu, aby wyczyścić ustawienia 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

Wygoda na wyciągnięcie ręki

Proxy Toggle ułatwia ustawienie globalnego proxy na każdym telefonie z Androidem, jak również zapewnia różne skróty do włączania i wyłączania proxy za pomocą jednego dotknięcia ekranu. Mam nadzieję, że to narzędzie będzie tak samo przydatne dla twojego zespołu, jak było dla naszego wewnętrznego zespołu aplikacji, zarówno programistów, jak i testerów!

Możesz pobrać najnowszą wersję stąd, lub sklonować projekt z Github.

Wielkie podziękowania dla wyjątkowej i niesamowitej Flor Novello za jej nieocenioną pomoc przy projektowaniu aplikacji!

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.