В ручную выполняю следующие команды:
adb shell
cd /data/data/myapp
sqlite3 my.db "SELECT ......" > /sdcard/myfile.txt
adb pull /sdcard/myfile.txt C:\tmp\myfile.txt
Как это выполнить с помощью батника или C#?
Уточню вопрос. Как сделать батник или запустить процесс в C# я знаю.
Здесь не могу решить вопрос как выполнить SQL запрос в shell. Пробовал записать в одну строку adb shell "su -c 'cd data/data/myapp sqlite3 my.db "SELECT ....." > /sdcard/myfile.txt'"
Получаю permission denied, не пойму почему такой ответ. Пробовал экранировать кавычки в SQL запросе, не помогло. Пока гуглю, но ответа не нашел.
Решил задачу так. Сделал в линуксе sh-файл с текстом "cd /data/data/myapp sqlite3 my.db "SELECT ......" > /sdcard/myfile.txt". И запустил его
process.StartInfo.FileName = @"adb.exe";
process.StartInfo.Arguments = "shell sh /mnt/sdcard/myscript.sh";
Если у кого-то есть решение без костылей создания sh-файла, буду признателен.
А так тему можно закрывать.
adb shell
cd /data/data/myapp
sqlite3 my.db "SELECT ......" > /sdcard/myfile.txt
adb pull /sdcard/myfile.txt C:\tmp\myfile.txt
Как это выполнить с помощью батника или C#?
Уточню вопрос. Как сделать батник или запустить процесс в C# я знаю.
Здесь не могу решить вопрос как выполнить SQL запрос в shell. Пробовал записать в одну строку adb shell "su -c 'cd data/data/myapp sqlite3 my.db "SELECT ....." > /sdcard/myfile.txt'"
Получаю permission denied, не пойму почему такой ответ. Пробовал экранировать кавычки в SQL запросе, не помогло. Пока гуглю, но ответа не нашел.
Решил задачу так. Сделал в линуксе sh-файл с текстом "cd /data/data/myapp sqlite3 my.db "SELECT ......" > /sdcard/myfile.txt". И запустил его
process.StartInfo.FileName = @"adb.exe";
process.StartInfo.Arguments = "shell sh /mnt/sdcard/myscript.sh";
Если у кого-то есть решение без костылей создания sh-файла, буду признателен.
А так тему можно закрывать.
Последнее редактирование: