Запуск команд оболочки, хотя java-код на Android?

У меня есть приложение, которое должно использовать некоторые команды оболочки для копирования файла из SD карты в / system / media /. Для этого потребуется root, и я тестирую на корневом устройстве. Я использую runtimes для выполнения команд оболочки, но это не работает. Вот то, что у меня есть для моего времени автономной работы

public void RunAsRoot{String[] commands = {"sysrw", "rm /data/local/bootanimation.zip", "sysro"};{ Process p = Runtime.getRuntime().exec("su"); DataOutputStream os = new DataOutputStream(p.getOutputStream()); for (String tmpCmd : commands) { os.writeBytes(tmpCmd+"\n"); } os.writeBytes("exit\n"); os.flush(); } 

Но мой логарифм показывает, что двое из них не получают отказ

 07-30 03:14:11.112: WARN/su(3593): request rejected (10047->0 /system/bin/sh) 07-30 03:14:11.132: DEBUG/su(3592): 10047 com.bba.stormdroid executing 0 /system/bin/sh using shell /system/bin/sh : sh 07-30 03:14:11.152: WARN/su(3594): request rejected (0->0 /system/bin/sh) 07-30 03:14:11.182: WARN/su(3595): request rejected (0->0 /system/bin/sh) 07-30 03:14:11.202: WARN/su(3596): request rejected (0->0 /system/bin/sh) 07-30 03:14:11.242: DEBUG/su(3597): 10047 com.bba.stormdroid executing 0 /system/bin/sh using shell /system/bin/sh : sh 

Эти два выглядят как команды sysrw и sysro, но приложение все еще запрашивает разрешение root при запуске этого кода. Я новичок в работе с корневыми файлами, и я не могу понять, как заставить это работать.

Solutions Collecting From Web of "Запуск команд оболочки, хотя java-код на Android?"

Чтобы запустить корневые команды, вы должны использовать следующий формат:

  public void RunAsRoot(String[] cmds){ Process p = Runtime.getRuntime().exec("su"); DataOutputStream os = new DataOutputStream(p.getOutputStream()); for (String tmpCmd : cmds) { os.writeBytes(tmpCmd+"\n"); } os.writeBytes("exit\n"); os.flush(); } 

Где вы передаете массив строк, каждая строка – это команда, которая должна быть выполнена. Например:

 String[] commands = {"sysrw", "rm /data/local/bootanimation.zip", "sysro"};