Сценарий Bash для выполнения команды в корне в ADB Shell

Я пытаюсь вывести разделы устройств на базе Android с netcat. Я создал 3 сценария удара для поддержки процесса. Я испытываю затруднения на втором чтобы к dumpt определенный раздел через netcat. На командной строке я раньше вводил следующие команды:

  1. оболочка adb
  2. su
  3. (на корне) dd, если =/dev/block/mmcblk0 |/sdcard/nc-l-p 8888

На основе команд выше, я попытался сделать сценарий удара с деталью ниже:

   #!/bin/bash
   adb shell "su
   dd if=/dev/block/mmcblk0 | /dev/examiner/nc -l -p 8888"

Но результатом является текстовый файл с нулевым размером. Я попытался изменить кавычку для идентификации переменной, но результатом было все еще то же.

Заранее спасибо.

0
задан 27 August 2015 в 14:50

1 ответ

#!/bin/bash
adb shell "su
dd if=/dev/block/mmcblk0 | /dev/examiner/nc -l -p 8888"

проблема состоит в том, что этот путь канал выполняется в непривилегированном adb оболочка, а не в корневой оболочке, порожденной su; это приводит к каналу, выполняемому без полномочий пользователя root и в 0-lenght файл (вероятно, из-за if команда, не удающаяся считать блочное устройство без полномочий пользователя root).

Выполнение команда непосредственно в корневую оболочку, порожденную su при помощи su -c опция, которая позволяет выполнять команду непосредственно в порожденную оболочку:

#!/bin/bash
adb shell "su -c 'dd if=/dev/block/mmcblk0 | /dev/examiner/nc -l -p 8888'"
1
ответ дан 1 October 2019 в 03:01

Другие вопросы по тегам:

Похожие вопросы: