Страница 1 из 1

Получаем ROOT права

Добавлено: 02 апр 2012, 17:30
SKR
Недавно начал делать свою первую программку, и сначала пытался сделать функцию посредством ROOT, но отказался от этой затеи. Про ROOT нашел информацию только на иностранном языке, и то очень мало, пришлось разобрать ни в чем не повинное приложение Battery Calibration :)

Ниже приведенный код выполняет любую команду, требующую ROOT права.

Код: Выделить всё

private boolean superuser(String paramString)
  {
    boolean i = true;
    String[] arrayOfString = new String[3];
    arrayOfString[0] = "su";
    arrayOfString[1] = "-c";
    arrayOfString[2] = paramString;
    try
    {
      int j = Runtime.getRuntime().exec(arrayOfString).waitFor();
      if (j != 0)
        i = false;
      return i;
    }
    catch (IOException localIOException)
    {
      while (true)
        i = false;
    }
    catch (InterruptedException localInterruptedException)
    {
      while (true)
        i = false;
    }
  }
Запускается функция с помощью этой строки:

Код: Выделить всё

superuser(<ваша команда>)
Функция возвращает true, если команда выполнена успешно, иначе - false

Вместо <ваша команда> вписывайте вашу команду, например:

Код: Выделить всё

if (superuser("rm " + myMain.this.statpath))
              alertok.show();
В данном случае с помощью команды rm удаляется файл, указанный в myMain.this.statpath

P.S. вопрос к админу сайта:
Возможно ли с помощью ROOT осуществить установку приложений в обход Package Installer?

Re: Получаем ROOT права

Добавлено: 04 апр 2012, 09:55
damager82
Так просто? А это баг или фича?
SKR писал(а):Возможно ли с помощью ROOT осуществить установку приложений в обход Package Installer?
Я пока вожусь только с разработкой приложений, а с установками в обход и root-ами не сталкивался, ничего не могу сказать.

Re: Получаем ROOT права

Добавлено: 05 апр 2012, 15:04
SKR
damager82 писал(а):Так просто? А это баг или фича?.
Вроде нет, как я понял:
Класс java.lang.Runtime имеет статический метод getRuntime(), который возвращает текущее выполнение Java-среды. Это единственный способ получить ссылку на объект во время выполнения. С его помощью, вы можете запускать внешние программы, вызвав метод exec().

Re: Получаем ROOT права

Добавлено: 14 июл 2016, 13:23
progger
а что делать если код в приложении
Runtime.getRuntime().totalMemory() вылетает с ошибкой java.lang.NullPointerException т.е. Runtime.getRuntime() возвращает нулевой указатель, как будто нет прав?
девайс заводской и не рутованый - может в этом дело?
пробовал добавлять <uses-permission android:name="android.permission.ACCESS_SUPERUSER" />
не помогает