Запуск команд оболочки, хотя 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 при запуске этого кода. Я новичок в работе с корневыми файлами, и я не могу понять, как заставить это работать.

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

  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"}; 
  • math.random, только генерируя 0?
  • Как преобразовать целое число цвета в шестнадцатеричную строку в Android?
  • Рассчитать количество будних дней между двумя датами в Java
  • Нечетная ситуация для «не может ссылаться на это до того, как конструктор супертипа был вызван»
  • как отображать контакты в списке в Android для Android api 11+
  • Android + MySQL с помощью com.mysql.jdbc.Driver
  • Добавление Admob в libgdx
  • java.lang.ClassNotFoundException при работе в IntelliJ IDEA
  • Разделение на Java всегда приводит к нулю (0)?
  • Android Thread для таймера
  • Как один интерфейс может использоваться для различных фоновых задач андроида?
  • Давайте будем гением компьютера.