1 votes

Enregistrer les commandes ADB ?

J'ai une application qui utilise l'interface ADB pour communiquer avec mon téléphone Android. Lorsque je lance l'application et que j'appuie sur le bouton, l'application envoie en quelque sorte des commandes à mon téléphone Android pour activer des fonctions spéciales qui existent dans l'application Android.

Ma question est la suivante : puis-je enregistrer les actions effectuées par l'application, en particulier les commandes liées à ADB ? Comment fonctionne-t-elle ? Quelles sont les références et les commandes ?

Par exemple, il y a une application appelée "Gamesir World" installée sur un appareil Android, cette application doit être activée avec une fonction spéciale appelée "remapper", avec l'aide d'un PC, le nom de l'application PC est "xiaoji-vtouch.exe". Entre cette plateforme, je vois dans le dossier Windows '%temp%' que l'application xiaoji a un dossier qui contient ADB, alors je suppose que cette application a appelé un shell ADB pour activer la fonction spéciale "Gamesir World, Remapper". Je veux savoir ce que fait xiaoji avec l'ADB, parce qu'il y a d'autres options pour activer cette fonctionnalité en utilisant un produit appelé A3 remapper, mais je veux passer outre, peut-être que je peux activer cette fonctionnalité sans autre dispositif.

Lien des demandes Android, https://www.xiaoji.com/gsw/index_en.html Fenêtres, https://www.xiaoji.com/download/vtouch/xiaoji-vtouch-1.2.0.zip Documentations, https://www.xiaoji.com/help/gw/2274.html

3voto

pr0nin Points 353

Il existe plusieurs solutions :

1. Remplacer adb binaire (voir les commentaires de Curious Mind)

Remplacez l'exécutable adb sur le PC par un exécutable qui appelle l'exécutable adb original et imprime toutes les commandes. Cette variante est assez limitée car elle ne fonctionne que si le programme appelle toutes les commandes de la base. adb shell commandxyz . S'il ouvre un shell et envoie plusieurs commandes dans le flux du shell, vous ne pourrez pas les retracer.

2. Utiliser un binaire adb avec trace activée

ADB a des capacités de traçage dans son code source. Par défaut, elles ne sont pas actives, mais en utilisant une version auto-compilée d'ADB et un patch qui active ces capacités, vous seriez en mesure de voir toutes les commandes. Voir cette question pour plus de détails : https://stackoverflow.com/questions/5791722/how-do-i-enable-adb-tracing

3. Utilisez ADB over IP et capturez les données via Wireshark :

Connectez-vous à votre appareil via IP : adb tcpip 5555 et l'utilisation de l'IP au lieu de la connexion USB. La connexion IP peut être capturée par Wireshark (régler le filtre de capture sur tcp port 5555 ).

Le principal problème est qu'adb ne transite pas les commandes mais les caractères individuels. Il est donc assez compliqué de reconstituer la commande, même en décodant le trafic TCP vers le port 5555 en tant que protocole ADB (en cours d'exécution, sélectionnez "Décoder en tant que" dans le menu contextuel).

Vous pouvez alors filtrer le trafic pour les commandes adb sortantes : ip.src==<your PC IP> && adb.data

Le principal problème est que chaque personnage est généralement envoyé en tant qu'individu. ADB DATA avec ses données sous forme de 4 octets de longueur + 4 octets de caractère (caractère ASCII décodé en entier).

L'exemple de capture d'écran suivant montre la capture de la commande hello world 12345 saisi dans un shell adb ouvert (voir la dernière colonne et le dernier caractère de chaque paquet de données) :

Wireshark capture

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X