Script Bash para despejar vários processos em dispositivos Android

0

Eu criei três scripts bash para despejar vários processos que são executados no dispositivo Android. O primeiro script bash:

#!/bin/bash

echo "adb forward tcp:8888 tcp:8888"
adb forward tcp:8888 tcp:8888

exec $SHELL 

O segundo script bash:

#!/bin/bash

echo "acquire the process with mem tool"
adb shell "
/dev/examiner/mem 797 | /dev/examiner/nc -l -p 8888
"

exec $SHELL

O terceiro script:

#!/bin/bash

echo "dump the selected process"
nc 127.0.0.1 8888 > ~/work_folder/bin/797_surface_flinger.bin

exec $SHELL

Por exemplo, eu tenho 3 processos em execução: PID 797, PID 1025 e PID 2020 que eu quero despejar. Existe alguma idéia para melhorar o segundo e terceiro script sem alterar manualmente o número PID selecionado para despejar os outros processos selecionados?

    
por aph4nc 06.07.2015 / 18:36

1 resposta

0

Você pode fazer com que cada script aceite 2 parâmetros, a porta a ser usada e o pid a ser usado. Em seguida, execute-os com portas e pids diferentes. Por exemplo, se o primeiro script for chamado de script1 , você poderá executar

script1 8888 797
script1 8887 1025
script1 8886 2020

Aqui estão os scripts que usam dois parâmetros.

#!/bin/bash
port=${1?} pid=${2?}
echo "adb forward tcp:$port tcp:$port"
adb forward tcp:$port tcp:$port


#!/bin/bash
port=${1?} pid=${2?}
echo "acquire the process with mem tool"
adb shell "
/dev/examiner/mem $pid | /dev/examiner/nc -l -p $port
"


#!/bin/bash
port=${1?} pid=${2?}
echo "dump the selected process"
nc 127.0.0.1 $port > ~/work_folder/bin/${pid}_surface_flinger.bin

Eu não sei porque você tem exec $SHELL no final de cada script. Tem certeza de que precisa?

    
por meuh 06.07.2015 / 20:44