0 votos

iniciar apk desde la consola -> obtener el id del proceso

Tengo algunas salidas de logcat guardadas como archivo txt. Necesito analizarlos buscando sólo las entradas que corresponden a mi aplicación. Sin embargo, siempre me lleva bastante tiempo encontrar el ID exacto de mi proceso para poder filtrarlo.

¿Hay alguna forma de obtener el ID del proceso automáticamente al iniciar el apk a través de adb?

Esta es la línea de mi script que inicia la aplicación en un dispositivo

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

Un poco más de contexto:
Mi script instala e inicia un apk en un dispositivo Android. El script se ejecuta en una plataforma en la nube para pruebas de dispositivos (Kobiton) que probablemente utiliza Appium para ejecutar apks en una caja de arena en dispositivos reales. Después de ejecutar la aplicación para un el servidor Kobiton devuelve la salida logcat como un archivo txt.

Este es el aspecto de esta salida:

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

Como se puede ver: tiene una columna adicional "-0400" antes de la columna del ID del proceso y del ID del hilo

0voto

pr0nin Puntos 353

No conozco una forma directa de obtener el ID del proceso de una aplicación/actividad iniciada. Pero si usted tiene un PC conectado al teléfono a través de USB una manera muy fácil sería utilizar frita-ps para obtener la lista completa de aplicaciones activas y el filtro por el nombre del paquete conocido para obtener el ID de proceso de la aplicación iniciada:

frida-ps -a -U

(lista de todas las aplicaciones -a en el teléfono conectado por USB -U ) de herramientas frida . Frida es un framework de ingeniería inversa y hooking basado en Python que se puede instalar a través de pip install frida-tools . frida-ps es sólo una herramienta de esta colección.

Muestra el nombre del paquete de la aplicación, el nombre de la pantalla de la aplicación y el ID del proceso, y funciona en dispositivos no rooteados (no se requiere frida-server o modificación de la aplicación para frida-ps).

Ejemplo truncado de salida de un dispositivo Pixel 4a no rooteado:

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

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X