Fidel Montesino

Follow

Jul 10, 2020 – 5 min de lecture

Si vous êtes un ingénieur mobile, pendant le développement et les tests, vous utilisez probablement certains des outils les plus courants qui existent pour déboguer, intercepter ou réécrire vos appels réseau, comme Charles Proxy ou Fiddler.

Vous trouverez aussi probablement le processus de configuration du proxy dans vos appareils assez ennuyeux : allez dans Paramètres > Paramètres réseau > Sélectionnez votre réseau WiFi > Modifier le réseau > Ajouter un proxy. Chaque. Unique. fois. Ouf !

Si vous travaillez avec un ensemble de différents appareils, vous avez probablement aussi remarqué de petites différences entre les versions d’Android, les fabricants, etc. qui pourraient ajouter ou modifier les étapes que vous prenez pour configurer le proxy.

Il y a une petite commande adb que vous pouvez exécuter à partir de votre Terminal pour activer un proxy global sur votre appareil connecté :

adb shell settings put global http_proxy YOUR_IP:YOUR_PORT

Mais cela ne vous donnera aucun indicateur visuel pour savoir si l’appareil utilise un proxy ou non. Cela nécessite également que l’appareil soit connecté à un ordinateur avec adb installé chaque fois que vous voulez activer ou désactiver le proxy… ce qui fait probablement que l’utilisation de cette solution de contournement n’est pas la solution la plus idéale.

Eh bien, j’ai de bonnes nouvelles pour vous.

Proxy Toggle est une petite application utilitaire compatible avec Android 5.0 et plus qui vous permettra d’activer et de désactiver rapidement vos paramètres de proxy, ainsi que d’unifier et de simplifier le processus à travers les versions de la plate-forme, les appareils, les fabricants, etc.

Proxy Toggle vous permet de configurer votre proxy global d’un seul coup

Facile à installer : ajoutez simplement l’IP et le port souhaités, activez le proxy et voilà ! tout est fait, tout votre appareil sera proxié.

Rendre les choses encore plus faciles

Je sais que tout cela est une nouvelle excitante. Mais je sens aussi que devoir ouvrir l’application chaque fois que vous voulez activer le proxy pourrait être aussi un long processus… n’est-ce pas ?

C’est pourquoi j’ai aussi ajouté deux raccourcis optionnels pour vous : un widget d’écran d’accueil et une tuile de paramètres rapides.

Widget d’écran d’accueil

Ce raccourci est très utile pour activer et désactiver votre dernier proxy utilisé rapidement depuis votre écran d’accueil.

Pour ajouter le widget, vous devez normalement appuyer longuement sur votre écran d’accueil (selon votre lanceur), sélectionner Ajouter un widget et faire défiler votre liste d’applications jusqu’à ce que vous voyiez le widget Proxy Toggle.

Le widget de l’écran d’accueil configurera automatiquement le dernier proxy utilisé

C’est tout ! Activez et désactivez votre proxy d’un simple toucher !

Tableau des paramètres rapides

Si votre appareil fonctionne sous Android 7.0 ou plus, vous aurez accès à un autre raccourci étonnant : un carreau des paramètres rapides. Ce raccourci se trouvera à l’intérieur de votre tiroir de notification, à côté de quelques autres raccourcis pratiques comme WiFi, Localisation, Bluetooth, Mode avion, etc.

Pour l’activer, il suffit de développer votre tiroir de navigation, de cliquer sur l’icône Modifier et de faire glisser l’icône Proxy Toggle où vous voulez la placer.

Une fois activée, la tuile des paramètres rapides est un excellent raccourci pour basculer votre proxy

Fait ! Vous pouvez activer et désactiver votre proxy sans même quitter l’application actuelle !

Note : si vous avez des appels réseau en cours, ils peuvent prendre quelques secondes pour se terminer et se mettre à jour avec le nouveau paramètre.

Tout ce qui brille n’est pas de l’or

Bien que l’application atteigne parfaitement son objectif et nous facilite la vie, il y a quelques mises en garde que je veux souligner à propos de cette brillante application.

Utilisation des permissions restreintes du système

L’application fera usage de Settings.Global. Comme il s’agit d’un paramètre système, c’est normalement un paramètre en lecture seule. Ce petit inconvénient est contourné en accordant à l’app WRITE_SECURE_SETTINGS une permission restreinte.

Note : il s’agit d’une permission protégée que seules les apps du système devraient se voir accorder. Soyez très prudent lorsque vous accordez cette permission à des apps de sources inconnues.

Je sais que cela peut soulever certaines préoccupations, et je les comprends.
C’est pourquoi j’ai décidé de mettre le projet en open-source : pour prouver qu’il est complètement sûr d’accorder cette permission, car vous aurez un contrôle et une connaissance complets de ce qui se passe dans les coulisses.

Actroyer des permissions restreintes au système

Comme il s’agit d’une permission restreinte, nous ne pouvons pas la demander au moment de l’exécution comme nous le ferions normalement, vous devrez donc l’accorder manuellement depuis notre ordinateur.

Si vous voulez simplement installer l’application sans la construire à partir d’Android Studio, il y a un petit script qui sera fourni avec l’application. Il suffit de télécharger le fichier zip et d’exécuter le script installAndGrantPermission.sh.
Alternativement, vous pouvez installer manuellement l’app en exécutant adb install -g App.apk sur votre Terminal.

Pour accorder cette permission une fois que l’app est déjà installée, connectez l’appareil à votre ordinateur et exécutez la commande suivante sur votre Terminal:

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

Soyez prudent lors de la désinstallation de l’app

Malheureusement, en tant que développeurs, nous ne pouvons pas exécuter de code lorsque l’app est désinstallée. Par conséquent, la désinstallation de l’app avec le proxy activé laissera définitivement votre appareil avec cette configuration (car c’est une configuration Settings.Global !).

Vous devez vous assurer que le proxy est désactivé avant de désinstaller l’app. Comme nous ne pouvons pas garantir que cela va se produire, il y a aussi le script uninstallAndCleanUp.sh pour s’assurer que tout est dans un état propre après la désinstallation de l’app.

Alternativement, vous pourriez exécuter les commandes suivantes sur votre Terminal pour nettoyer le paramètre du 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

La commodité au bout des doigts

Proxy Toggle facilite la configuration d’un proxy global sur n’importe quel téléphone Android, ainsi que la fourniture de différents raccourcis pour activer et désactiver le proxy d’un simple toucher sur l’écran. J’espère que cet outil sera aussi utile à votre équipe qu’il l’a été pour notre équipe interne d’apps, à la fois les développeurs et les testeurs !

Vous pouvez télécharger la dernière version ici, ou cloner le projet depuis Github.

Mon grand merci à l’unique et étonnante Flor Novello pour son aide inestimable dans la conception de l’app !

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.