LINUX.ORG.RU

[android][java] shell команда

 ,


0

0

Нужно включить раздел подкачки, делаю так:

final Runtime runtime = Runtime.getRuntime();
try {
runtime.exec("/system/bin/su -c \"/system/xbin/swapon /dev/block/mmcblk0p2\"");
}
catch (IOException e) {
e.printStackTrace();
}

su отрабатывает (на телефоне выводится запрос на получение рутовых привелегий), однако swap не включается. Если то же самое (su -c "swapon /dev/block/mmcblk0p2") написать в теминале самого телефона изи по adb shell, то все работает. В чем же здесь проблема?


>runtime.exec("/system/bin/su -c \"/system/xbin/swapon /dev/block/mmcblk0p2\"");

Что за "xbin" в команде swapon?

anonymous
()

Попробуй читать вывод (stdout,stderr) команды, может там что полезное пишется.

Lucky1 ★★★
()

ну в линаксе su не хочет пукаться с пайпом, т.е. ругается, могет su в андрозите тоже както выпендрпивается, попробуй сделать чтото простенькое что требует рутовых привелегий.

И какбе лучше юзать этод метод http://java.sun.com/javase/6/docs/api/java/lang/Runtime.html#exec%28java.lang.String[]%29 раз уж вызываешь команду с аргументами

wfrr ★★☆
()

> Что за "xbin" в команде swapon?
это в андроиде вместо /bin

> попробуй сделать чтото простенькое

похоже он ничего не делает. пробовал mkdir и reboot. В консоли работает из java приложения - нет.

> лучше юзать этод метод

public Process exec("ls -l"); еклипс подчеркивает exec и говорит что ошибка синтаксиса.

tr0ll
() автор топика
Ответ на: комментарий от tr0ll

public Process exec(«ls -l»); еклипс подчеркивает exec и говорит что ошибка синтаксиса.

Ты эта, клиника, в общем, анонимус тебе тупо написал тотже метод на который я дал ссылку, ты ввобще на яве первый раз пишешь?

wfrr ★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.