0 votes

démarrer l'apk depuis la console -> obtenir l'identifiant du processus

J'ai quelques sorties de logcat sauvegardées dans un fichier txt. J'ai besoin de les analyser en recherchant uniquement les entrées qui correspondent à mon application. Cependant, il me faut toujours un certain temps pour trouver l'ID exact du processus de mon application afin de le filtrer.

Existe-t-il un moyen d'obtenir automatiquement l'ID du processus lors du démarrage de l'apk via adb ?

Voici la ligne de mon script qui lance l'application sur un appareil

adb -s $device_name  shell am start -S -n $pkg_name/com.unity3d.player.UnityPlayerActivity

Un peu plus de contexte :
Mon script installe et démarre une apk sur un appareil Android. Le script s'exécute sur une plateforme cloud de test d'appareils (Kobiton) qui utilise probablement Appium pour exécuter des apks dans un bac à sable sur des appareils réels. Après avoir exécuté l'application pendant un le serveur Kobiton renvoie la sortie logcat sous la forme d'un fichier txt.

Voici à quoi ressemble un tel résultat :

2022-08-04 16:10:28.722 -0400  4197  4500 D SdpManagerService.SDPLog: com.android.server.SdpManagerService$SdpEngineDatabase$EngineListHandler.getEngineListXmlFile(SdpManagerService.java:2635)
2022-08-04 16:10:28.722 -0400  4197  4500 D SdpManagerService.SDPLog: com.android.server.SdpManagerService$SdpEngineDatabase$EngineListHandler.getEngineListXmlFile(SdpManagerService.java:2623)
2022-08-04 16:10:28.722 -0400  4197  4500 D SdpManagerService.SDPLog: com.android.server.SdpManagerService$SdpEngineDatabase$EngineListHandler.getEngineListLocked(SdpManagerService.java:2721)
2022-08-04 16:10:28.722 -0400  4197  4500 D SdpManagerService.SDPLog: com.android.server.SdpManagerService$SdpEngineDatabase$EngineListHandler.access$2300(SdpManagerService.java:2612)
2022-08-04 16:10:28.722 -0400  4197  4500 D SdpManagerService.SDPLog: com.android.server.SdpManagerService$SdpEngineDatabase.getEngineListLocked(SdpManagerService.java:2592) 
2022-08-04 16:10:28.722 -0400  4197  4500 D SdpManagerService.SDPLog: com.android.server.SdpManagerService$SdpEngineDatabase.access$1700(SdpManagerService.java:2570)
2022-08-04 16:10:28.722 -0400  4197  4500 D SdpManagerService.SDPLog: com.android.server.SdpManagerService.readEngineList(SdpManagerService.java:2543)
2022-08-04 16:10:28.722 -0400  4197  4500 D SdpManagerService.SDPLog: com.android.server.SdpManagerService.handlePackageRemoved(SdpManagerService.java:4755)
2022-08-04 16:10:28.723 -0400  4197  4500 D SdpManagerService.SDPLog: com.android.server.SdpManagerService.access$6100(SdpManagerService.java:171)
2022-08-04 16:10:28.723 -0400  4197  4500 D SdpManagerService.SDPLog: com.android.server.SdpManagerService$SdpHandler.handleMessage(SdpManagerService.java:6105)
2022-08-04 16:10:28.723 -0400  4197  4500 D SdpManagerService.SDPLog: android.os.Handler.dispatchMessage(Handler.java:106)
2022-08-04 16:10:28.723 -0400  4197  4500 D SdpManagerService.SDPLog: android.os.Looper.loop(Looper.java:214)
2022-08-04 16:10:28.723 -0400  4197  4500 D SdpManagerService.SDPLog: android.os.HandlerThread.run(HandlerThread.java:65)
2022-08-04 16:10:28.723 -0400  4197  4500 E SdpManagerService: read engine - No any engine found
2022-08-04 16:10:28.734 -0400  4197  4197 D ZenModeHelper: Set zen mode for exception case : 0
2022-08-04 16:10:28.745 -0400 20156 20156 I SKBD    : anc isTosAccept false
2022-08-04 16:10:28.749 -0400  4197  4197 D UniversalCredentialManagerService: ****MSG_CLEAN_INFO block started****
2022-08-04 16:10:28.749 -0400  4197  4197 D UniversalCredentialManagerService: uid - 15747, userId-0
2022-08-04 16:10:28.749 -0400  4197  4197 D UniversalCredentialManagerService: notifyChangeToPlugin is called for package uninstalled...
2022-08-04 16:10:28.749 -0400  4197  4197 D UcmService: notifyChangeToPlugin event 12
2022-08-04 16:10:28.749 -0400  4197  4197 D UcmService: checkCallerPermissionFor is called for method-notifyChangeToPlugin
2022-08-04 16:10:28.749 -0400  4197  4197 D UniversalCredentialManagerService: ****MSG_CLEAN_INFO block ended****
2022-08-04 16:10:28.790 -0400 19812 19812 D Notification.Badge: onNotificationRankingUpdate().sIsDnDModeChanged[false]
2022-08-04 16:10:28.790 -0400 19812 19812 D Notification.Badge: [invalid] onNotificationRankingUpdate : sNotificationListenerInstance = com.android.launcher3.framework.device.notification.NotificationListener@d63fa54 sIsConnected[true]
2022-08-04 16:10:28.793 -0400 22587 27587 V SysAbnormalItemManager: updated column : com.MoveBook.MoveBookFarmAdventures / flag : false
2022-08-04 16:10:28.798 -0400 22587 27587 V SysAbnormalItemManager: updated column : 15747 / flag : false
2022-08-04 16:10:28.801 -0400  4197  4223 V MARsDBManager: getManagedPackagesFromDB!
2022-08-04 16:10:28.802 -0400  4197  4197 W Looper  : Drained
2022-08-04 16:10:28.813 -0400 28468 28468 I cr_SplitCompatApp: aunched version=95.0.4638.50 minSdkVersion=24 isBundle=true processName=com.android.chrome isIsolated=false    
2022-08-04 16:10:28.816 -0400  4197  4223 V MARsPolicyManager: getPkgInfoFromSMToMARs size = 29
2022-08-04 16:10:28.830 -0400  4197  4223 E EdmStorageProvider: Admin not in database, something went wrong
2022-08-04 16:10:28.844 -0400  5426  5426 D io_stats: !@ 179,0 r 4229839 195915004 w 12884332 278363688 d 857544 165056904 f 2502218 2756314 iot 11859272 12140884 th 51200 0 
0 pt 0 inp 2 0 5407919.174
2022-08-04 16:10:28.850 -0400  4197  4223 I chatty  : uid=1000(system) MARsDBThread identical 7 lines
2022-08-04 16:10:28.852 -0400  4197  4223 E EdmStorageProvider: Admin not in database, something went wrong
2022-08-04 16:10:28.859 -0400 11692 11692 I StackScroller: ADJUST STACK.TRANSLATION
2022-08-04 16:10:28.860 -0400  4197  4223 E EdmStorageProvider: Admin not in database, something went wrong
2022-08-04 16:10:28.864 -0400 11692 11692 I StackScroller: ADJUST STACK.TRANSLATION
2022-08-04 16:10:28.864 -0400 11692 11692 I StackScroller: ADJUST STACK.TRANSLATION
2022-08-04 16:10:28.865 -0400  4197  4223 E EdmStorageProvider: Admin not in database, something went wrong

Comme on peut le voir : il y a une colonne supplémentaire "-0400" avant l'ID du processus et la colonne de l'ID du fil de discussion.

0voto

pr0nin Points 353

Je ne connais pas de moyen direct d'obtenir l'ID du processus d'une application/activité lancée. Mais si vous avez un PC connecté au téléphone via USB, un moyen très simple serait d'utiliser frita-ps pour obtenir la liste complète des applications actives et de la filtrer par le nom du paquet connu pour obtenir l'ID du processus de l'application démarrée :

frida-ps -a -U

(liste de toutes les applications -a sur le téléphone connecté par USB -U ) de outils frida . Frida est un framework de rétro-ingénierie et de hooking basé sur Python qui peut être installé via pip install frida-tools . frida-ps n'est qu'un outil parmi d'autres de cette collection.

Il montre le nom du paquet de l'application, le nom affiché de l'application et l'ID du processus et fonctionne sur les appareils non rootés (aucune modification du serveur frida ou de l'application n'est nécessaire pour frida-ps).

Exemple de sortie tronquée d'un appareil Pixel 4a non rooté :

D:\>frida-ps -Ua
  PID  Name                   Identifier
-----  ---------------------  ---------------------------------------
24507  Android Auto           com.google.android.projection.gearhead
16334  Chrome                 com.android.chrome
24906  Duo                    com.google.android.apps.tachyon
20700  Einstellungen          com.android.settings
 2292  Gboard                 com.google.android.inputmethod.latin
 1727  Google                 com.google.android.googlequicksearchbox
22699  Google Play Store      com.android.vending
20585  Google Wallet          com.google.android.apps.walletnfcrel
24221  Maps                   com.google.android.apps.maps
19359  Pixel-Tipps            com.google.android.apps.tips
 2806  SIM-Toolkit            com.android.stk

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