Fidel Montesino

Follow

Júl 10, 2020 – 5 min read

Ha mobilmérnök vagy, mind a fejlesztés, mind a tesztelés során valószínűleg a legelterjedtebb eszközöket használod a hálózati hívások hibakeresésére, elfogására vagy átírására, mint például a Charles Proxy vagy a Fiddler.

Valószínűleg Ön is elég idegesítőnek találja a proxy beállításának folyamatát az eszközeiben: menjen a Beállítások > Hálózati beállítások > Válassza ki a WiFi hálózatát > Hálózat módosítása > Proxy hozzáadása. Minden. Single. Time. Phew!

Ha több különböző eszközzel dolgozol, valószínűleg észrevetted az Android verziók, gyártók stb. közötti apró különbségeket is, amelyek hozzáadhatják vagy módosíthatják a proxy beállításához szükséges lépéseket.

Van egy kis adb parancs, amelyet a Terminálból futtathatsz, hogy engedélyezd a globális proxyt a csatlakoztatott eszközödön:

adb shell settings put global http_proxy YOUR_IP:YOUR_PORT

De ez nem ad semmilyen vizuális jelzést, hogy tudd, az eszköz proxyt használ-e vagy sem. Emellett minden egyes alkalommal, amikor engedélyezni vagy letiltani szeretné a proxyt, az eszköznek egy olyan számítógéphez kell csatlakoznia, amelyen az adb telepítve van… ami miatt valószínűleg nem a legideálisabb megoldás ennek a megoldásnak a használata.

Nos, van egy jó hírem az Ön számára.

A Proxy Toggle egy kis segédprogram, amely kompatibilis az Android 5.0 és újabb verziókkal, és lehetővé teszi a proxy beállítások gyors engedélyezését és letiltását, valamint a folyamat egységesítését és egyszerűsítését platformverziók, eszközök, gyártók stb. között.

A Proxy Toggle lehetővé teszi a globális proxy beállítását egyetlen érintéssel

Egyszerű beállítás: csak adja meg a kívánt IP-t és portot, engedélyezze a proxyt és voilá! minden kész, az egész eszköze proxyként fog működni.

Még egyszerűbbé téve

Tudom, hogy ez mind izgalmas hír. De azt is érzem, hogy minden alkalommal megnyitni az alkalmazást, amikor engedélyezni akarod a proxyt, szintén hosszú folyamat lehet… igaz?

Ezért két opcionális parancsikont is hozzáadtam neked: egy kezdőképernyő widgetet és egy gyors beállítási csempét.

Home Screen Widget

Ez a parancsikon nagyon hasznos, ha gyorsan engedélyezed és letiltod a legutóbb használt proxy-t a kezdőképernyőről.

A widget hozzáadásához általában hosszan nyomja meg a kezdőképernyőjét (az indítóprogramtól függően), válassza a Widget hozzáadása lehetőséget, és görgessen lefelé az alkalmazáslistán, amíg meg nem látja a Proxy Toggle widgetet.

A kezdőképernyő widget automatikusan beállítja a legutóbb használt proxyt

Ez az! Kapcsolja be és ki a proxyt egyetlen érintéssel!

Gyorsbeállítások csempe

Ha a készülékén Android 7.0 vagy újabb verzió fut, egy másik csodálatos parancsikonhoz is hozzáférhet: a Gyorsbeállítások csempéhez. Ez a parancsikon az Értesítési fiókban fog lakni, néhány más praktikus parancsikon mellett, mint például a WiFi, Helymeghatározás, Bluetooth, Repülőgépes mód stb.

Az engedélyezéséhez egyszerűen bontsa ki a Navigációs fiókot, kattintson a Szerkesztés ikonra, és húzza a Proxy Toggle ikont oda, ahová szeretné elhelyezni.

Amint engedélyezte, a gyorsbeállítások csempe remekül használható a proxy kapcsolására

Kész! Be- és kikapcsolhatja a proxy-t anélkül, hogy elhagyná az aktuális alkalmazást!

Figyelem: ha vannak folyamatban lévő hálózati hívásai, akkor néhány másodpercig eltarthat, amíg befejeződnek és frissülnek az új beállítással.

Minden, ami fénylik, nem arany

Bár az alkalmazás tökéletesen teljesíti a célját és megkönnyíti az életünket, van néhány fenntartás, amit szeretnék kiemelni ezzel a csillogó alkalmazással kapcsolatban.

A rendszer korlátozott jogosultságainak használata

Az alkalmazás a Settings.Global. Mivel ez egy rendszerbeállítás, általában csak olvasható beállítás. Ez a kis kellemetlenség kikerülhető az alkalmazás WRITE_SECURE_SETTINGS korlátozott engedély megadásával.

Figyelem: ez egy védett engedély, amelyet csak a rendszeralkalmazásoknak szabad megadni. Legyen különösen óvatos, amikor ismeretlen forrásból származó alkalmazásoknak adja meg ezt az engedélyt.

Tudom, hogy ez aggodalmat kelthet, és meg is értem őket.
Ezért döntöttem úgy, hogy nyílt forráskódúvá teszem a projektet: hogy bebizonyítsam, hogy teljesen biztonságos ezt az engedélyt megadni, mivel teljes kontrollja és tudása lesz arról, hogy mi történik a színfalak mögött.

A rendszer korlátozott jogosultságainak megadása

Mivel ez egy korlátozott jogosultság, nem tudjuk futásidőben kérni, ahogyan azt általában tennénk, ezért manuálisan kell megadni a számítógépünkről.

Ha csak telepíteni szeretnénk az alkalmazást anélkül, hogy az Android Studio-ból építenénk, van egy kis szkript, ami az alkalmazáshoz lesz csatolva. Csak töltsük le a zip fájlt és futtassuk le a installAndGrantPermission.sh szkriptet.
Alternatívaként manuálisan is telepíthetjük az alkalmazást a adb install -g App.apk futtatásával a Terminálon.

Az engedély megadásához, ha az alkalmazás már telepítve van, csatlakoztassuk az eszközt a számítógépünkhöz és futtassuk a következő parancsot a Terminálon:

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

Vigyázzunk az alkalmazás eltávolításakor

Sajnos fejlesztőként nem tudunk semmilyen kódot futtatni, amikor az alkalmazás eltávolítása folyamatban van. Ezért az alkalmazás eltávolítása a proxy engedélyezésével véglegesen ezzel a beállítással hagyja a készüléket (mivel ez egy Settings.Global konfiguráció!).

Az alkalmazás eltávolítása előtt győződjön meg róla, hogy a proxy ki van kapcsolva. Mivel nem tudjuk garantálni, hogy ez meg fog történni, ott van a uninstallAndCleanUp.sh szkript is, amely biztosítja, hogy az alkalmazás eltávolítása után minden tiszta állapotban legyen.

Alternatívaként a következő parancsokat is futtathatja a Terminálon a proxy beállítások megtisztításához:

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

Kényelem az ujjai hegyén

A Proxy Toggle megkönnyíti a globális proxy beállítását bármely Android telefonon, valamint különböző parancsikonokat biztosít a proxy engedélyezéséhez és letiltásához a képernyő egyetlen érintésével. Remélem, hogy ez az eszköz ugyanolyan hasznos lesz az Ön csapata számára, mint amilyen hasznos volt a belső alkalmazásokat fejlesztő és tesztelő csapatunk számára!

A legújabb verziót letöltheti innen, vagy klónozhatja a projektet a Githubról.

Nagy köszönet az egyedülálló és csodálatos Flor Novellónak az alkalmazás tervezésében nyújtott felbecsülhetetlen segítségéért!

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.