Capturer le trafic d'une app Android
L'app Busymate DevTools pour Android fait tourner un moteur de capture basé sur VPN directement sur le téléphone. Pas de proxy de bureau, pas de Wi-Fi partagé, pas de réglage de proxy — et un compte rendu honnête des apps qui se déchiffreront réellement sur un téléphone non rooté.
Sur Android, la voie classique pour lire le HTTPS d'une app est un proxy sur un portable plus une entrée de proxy manuelle dans les réglages Wi-Fi du téléphone. Ça marche jusqu'à ce que vous quittiez ce réseau. Busymate DevTools sort le proxy du tableau : l'app s'enregistre comme VPN du téléphone, voit chaque connexion qu'il établit, déchiffre les hôtes que vous choisissez avec un certificat qu'elle génère sur l'appareil, et transmet le résultat au même dashboard que l'app iOS et le proxy de bureau.
Il y a un fait de plateforme que ce guide ne cachera pas. Depuis Android 7.0, une app ignore les certificats installés par l'utilisateur sauf si elle y consent explicitement. Le téléphone peut donc capturer le trafic de toutes les apps, mais ne peut déchiffrer que celles qui font confiance au magasin de certificats utilisateur — en pratique vos propres builds de debug, plus les navigateurs système et clients similaires. L'étape cinq montre la modification d'un seul fichier qui fait entrer votre app dans ce groupe, et le guide sur le pinning couvre le reste.
Ce qu'il vous
Un téléphone, un compte et — si vous voulez des corps déchiffrés depuis votre propre app — un build de debug que vous pouvez recompiler.
Un téléphone sous Android 7.0 ou plus récent. Ni root ni ordinateur ne sont nécessaires pour capturer.
Un compte Busymate. Connectez-vous avec Google ou avec un e-mail et un mot de passe ; la connexion appaire le téléphone à votre dashboard.
Les noms d'hôte de l'API que vous voulez lire, pour la liste SSL proxy. Seuls les hôtes listés sont déchiffrés.
Pour votre propre app : la possibilité de recompiler son build de debug avec une configuration de sécurité réseau d'un seul fichier, afin qu'elle fasse confiance au certificat généré par le téléphone.
Faites-le
Six étapes. La configuration guidée de l'app gère les demandes de la plateforme un écran à la fois ; le seul travail hors de l'app est la modification du build de debug à l'étape cinq.
- 01
Installez l'app et acceptez le consentement de capture
Installez Busymate DevTools depuis Google Play, ou chargez l'APK de release signé depuis la page Android si la fiche n'est pas encore visible dans votre région. Au premier lancement, l'app demande votre consentement explicite pour capturer le trafic réseau. La capture est facultative et reste désactivée jusqu'à ce que vous l'activiez — rien ne tourne en arrière-plan avant que vous ne le décidiez.


- 02
Connectez-vous — le téléphone s'appaire tout seul
Connectez-vous avec Google ou avec votre e-mail et votre mot de passe. Comme sur iOS, se connecter c'est appairer : l'app échange la session contre un identifiant d'appareil longue durée stocké dans le stockage chiffré de l'app, et le téléphone apparaît Online dans l'onglet Devices du dashboard un instant plus tard. L'écran d'accueil affiche le nom de l'appareil, une pastille de compte, la carte de l'interrupteur de capture et une carte d'état avec un engrenage pour les Réglages.


- 03
Ajoutez les domaines à déchiffrer
Ouvrez les Réglages depuis l'engrenage et allez dans SSL Proxying. Listez les hôtes dont vous voulez lire les corps HTTPS ; tout le reste demeure chiffré de bout en bout et apparaît comme un nom d'hôte avec un compteur de requêtes. Un astérisque et un point en tête couvrent un domaine et tous ses sous-domaines. La même section contient les commandes de déchiffrement et une liste Ignore Hosts pour le bruit de fond que vous ne voulez jamais dans le flux.
Vous n'êtes pas obligé de le faire sur le téléphone. Le dashboard modifie la même liste par appareil, et un changement là-bas est poussé en direct vers le téléphone, si bien qu'un collègue peut ajouter un hôte pendant que vous continuez à tester.
- 04
Lancez la configuration guidée
Touchez la carte d'état. La configuration guidée parcourt trois demandes de la plateforme, un écran à la fois : autoriser la notification de capture, installer dans le magasin de certificats utilisateur du téléphone le certificat que l'app a généré rien que pour vous, et approuver la demande de connexion VPN d'Android lui-même. Chaque étape passe à « fait » au fur et à mesure, et la carte passe à « prêt » quand les trois sont validées.
Ce certificat est propre à votre appareil — il est créé sur le téléphone, jamais téléchargé depuis un serveur partagé — et c'est lui qui permet à l'app de présenter un certificat de confiance pour chaque hôte que vous avez choisi de déchiffrer.


- 05
Faites en sorte que votre propre app fasse confiance au magasin de certificats utilisateur
C'est l'étape qu'aucun outil de capture Android ne peut sauter. Depuis Android 7.0, une app qui cible ce niveau ou plus ne fait confiance par défaut qu'au magasin de certificats système, si bien que votre app fermera la connexion dès que le téléphone présentera son certificat généré. Le correctif est une petite configuration de sécurité réseau, limitée aux builds de debug, qui ajoute le magasin utilisateur à côté du magasin système. Android retire entièrement le bloc de surcharges de debug des builds de release, il ne peut donc pas fuiter en production.
Créez le fichier ci-dessous dans votre app, gardez l'ancre système à côté de l'ancre utilisateur pour que le HTTPS ordinaire continue de fonctionner, référencez-le depuis la balise application de votre manifeste, puis recompilez et installez le build de debug. Réinstaller l'ancien binaire ne sert à rien — la confiance vit dans l'app fraîchement compilée.
La configuration de sécurité réseau réservée au debug, puis la référence dans le manifeste xml<!-- app/src/main/res/xml/network_security_config.xml --> <network-security-config> <debug-overrides> <trust-anchors> <certificates src="user" /> <certificates src="system" /> </trust-anchors> </debug-overrides> </network-security-config> <!-- AndroidManifest.xml --> <application android:networkSecurityConfig="@xml/network_security_config" ... > - 06
Activez la capture et inspectez
Activez l'interrupteur de capture. Android affiche l'icône de clé VPN dans la barre d'état, et chaque requête du téléphone commence à arriver dans le flux du dashboard et dans l'écran Network de l'app — une ligne d'état, des pastilles de statistiques, des puces de catégorie et une liste groupée par hôte avec une recherche en bas. Touchez un hôte, puis une requête, pour le détail complet : onglets General, Header, Summary, Timing et Body pour la requête comme pour la réponse.
Ouvrez votre app et déclenchez un appel. Ses entrées HTTPS affichent désormais des en-têtes lisibles et un corps déchiffré au lieu d'un tunnel opaque. Quand vous avez terminé, désactivez la capture — le VPN tombe, et le certificat comme l'app peuvent être supprimés comme n'importe quel autre.


Ce qui peut
La plupart des problèmes Android viennent de la plateforme, stricte sur les certificats, et le flux vous indique lequel vous avez rencontré.
Le trafic de votre propre app apparaît toujours chiffré
La configuration de sécurité réseau n'a pas pris effet. Vérifiez que vous avez recompilé et installé le build de debug après l'avoir ajoutée, que le manifeste pointe vers le fichier, et que le certificat se trouve dans le magasin utilisateur. Si la configuration vit dans un source set réservé au debug, l'attribut du manifeste doit aussi être dans le manifeste de debug.
Une app du store que vous n'avez pas compilée reste opaque
Attendu sur un téléphone non rooté : cette app n'a jamais accepté les certificats utilisateur, donc le téléphone n'enregistre la connexion qu'en métadonnées. La déchiffrer exige un appareil rooté où le certificat peut aller dans le magasin système — le niveau utilisé par la ferme de téléphones — et même cela n'ouvre pas une app qui épingle son propre certificat.
La demande VPN d'Android revient sans cesse
Une autre app VPN est active, ou l'approbation précédente a été révoquée dans les réglages VPN du système. Un seul VPN peut tourner à la fois ; déconnectez l'autre et approuvez de nouveau la demande depuis la configuration guidée.
La notification de capture n'est jamais apparue
L'autorisation de notification a été refusée à la première demande. Réactivez-la pour Busymate DevTools dans les réglages d'apps du système ; la configuration guidée la revérifie et passe l'étape à « fait ».
Un hôte est dans la liste mais la règle sur le chemin ne se déclenche pas
Les règles qui filtrent sur un chemin ont besoin que l'hôte soit déchiffré ; sur un hôte qui passe chiffré, seul le nom d'hôte est visible. Ajoutez d'abord l'hôte à la liste SSL proxy, puis revérifiez la règle.
Les questions
Ai-je besoin du root ?
Pas pour capturer, et pas pour déchiffrer vos propres builds de debug ou des clients qui font confiance au magasin utilisateur. Le root n'est nécessaire que pour placer le certificat dans le magasin système afin que les apps que vous n'avez pas compilées lui fassent confiance.
Est-ce un proxy sous le capot ?
Non. L'app est enregistrée comme VPN du téléphone, elle voit donc le trafic de toutes les apps en Wi-Fi et en données mobiles sans toucher au moindre réglage de proxy. Un proxy de bureau distinct existe pour les navigateurs et les backends, mais ce guide ne l'utilise jamais.
Que deviennent les apps qui ne sont pas dans ma liste ?
Elles continuent de fonctionner exactement comme avant. Leurs connexions ne sont enregistrées qu'en hôte et en temps et ne sont jamais déchiffrées, et Ignore Hosts peut retirer entièrement du flux les plus bruyantes.
Le trafic de votre app,
Installez l'app, lancez la configuration guidée, ajoutez la configuration de debug d'un seul fichier et regardez les requêtes de votre app arriver déchiffrées.