Простите, я не программист ядра Linux. Это мой первый раз, когда я пишу код в Linux, так что держись со мной.
Итак, я прочитал тонны постов по этой теме, и у меня возникли проблемы с выяснением того, что происходит с моим кодом. По сути, я пытаюсь создать приложение Profiles. Устройство рутировано и содержит BusyBox. Я написал скрипт linux, который меняет разделы / data и / cache в зависимости от пользователя, который входит в систему.
Когда я выполняю этот скрипт из ADB, он работает отлично. Я подумал, что реализовать его в приложении будет довольно просто.
# sp логин логин пароль
Android переинициализируется с новым профилем и все хорошо. Вот что у меня в Android:
Log.v("Profiles", "sp login " + user + " " + password);
Process process = Runtime.getRuntime().exec("sp login " + user + " " + password);
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
int read;
char[] buffer = new char[4096];
StringBuffer output = new StringBuffer();
while ((read = reader.read(buffer)) > 0) {
output.append(buffer, 0, read);
}
reader.close();
process.waitFor();
Log.v("Profiles", output.toString());
Единственный выход, который регистрируется, - это мое "эхо" в самом скрипте. Я не вижу результатов от команд, выполненных в этом сценарии. Например, при запуске в ADB выводятся все команды монтирования и разные вещи, которые я делаю. Ничего из этого не выводится в выходной строке.
Есть предложения?