#!/bin/bash
adb shell "su
dd if=/dev/block/mmcblk0 | /dev/examiner/nc -l -p 8888"
O problema é que desta forma o pipe é executado no shell adb
não privilegiado, e não no shell raiz gerado por su
; isso faz com que o pipe seja executado sem privilégios de root e com o arquivo de tamanho 0 (provavelmente porque o comando if
não consegue ler um dispositivo de bloco sem privilégios de root).
Execute o comando diretamente no shell raiz gerada por su
usando a opção su
, que permite executar um comando diretamente no shell gerado:
#!/bin/bash
adb shell "su -c 'dd if=/dev/block/mmcblk0 | /dev/examiner/nc -l -p 8888'"