Я пытаюсь вывести разделы устройств на базе Android с netcat. Я создал 3 сценария удара для поддержки процесса. Я испытываю затруднения на втором чтобы к dumpt определенный раздел через netcat. На командной строке я раньше вводил следующие команды:
На основе команд выше, я попытался сделать сценарий удара с деталью ниже:
#!/bin/bash
adb shell "su
dd if=/dev/block/mmcblk0 | /dev/examiner/nc -l -p 8888"
Но результатом является текстовый файл с нулевым размером. Я попытался изменить кавычку для идентификации переменной, но результатом было все еще то же.
Заранее спасибо.
#!/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'"