читать cpuinfo_cur_freq с правами суперпользователя

я пытаюсь прочитать файл «cpuinfo_cur_freq» для получения текущей рабочей частоты моего рутированного Galaxy SII. Я использовал некоторые фрагменты кода, подобные этому

    final Runtime runtime = Runtime.getRuntime();
    try {
        runtime.exec("su"); //or whatever command.
    }

    catch (IOException e) { 
        e.printStackTrace(); 
    }

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

W/System.err(5295): java.io.FileNotFoundException: /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_cur_freq: ошибка открытия: EACCES (отказано в доступе)

Не могли бы вы помочь мне ?


person giorgio.gottardi    schedule 14.10.2013    source источник


Ответы (1)


Даже на рутированных телефонах команда «su» не предоставит права суперпользователя приложению (и даже если оно работает в оболочке adb).

Единственный обходной путь, который я знаю (потратив несколько дней на эту проблему), — это скомпилировать собственный образ Android (где вам нужно изменить код реализации команды su) и прошить его на свой телефон.

Если вы это сделаете, имейте в виду, что любое приложение на вашем телефоне может получить права su, просто выполнив приведенный выше код.

person Mr.Radar    schedule 14.10.2013