Android: как прочитать содержимое файла wpa_supplicant.conf на рутированном устройстве?
У меня есть следующая функция, которая должна возвращать содержимое файла wpa_supplicant.conf.
Я попытался прочитать файл таким образом:
public static String readTextFile() {
aBuffer = "";
try
{
Runtime.getRuntime().exec("su");
Runtime.getRuntime().exec("chmod +x /data/misc/wifi/wpa_supplicant.conf");
File path= Environment.getDataDirectory();
File myFile = new File("/data/misc/wifi/wpa_supplicant.conf");
FileInputStream fIn = new FileInputStream(myFile);
BufferedReader myReader = new BufferedReader(
new InputStreamReader(fIn));
String aDataRow = "";
aBuffer = "";
while ((aDataRow = myReader.readLine()) != null) {
aBuffer += aDataRow + "\n";
}
myReader.close();
}
catch (Exception e)
{
Logger.e("Cannot read the file");
Logger.e(e.getMessage());
}
return aBuffer;
}
И я добавил в файл манифеста тоже:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
Но когда я пытаюсь прочитать содержимое файла, помещенного в:
/data/misc/wifi/wpa_supplicant.conf
Я всегда получаю следующее исключение:
/data/misc/wifi/wpa_supplicant.conf: open failed: EACCES (Permission denied)
Должен ли я использовать вместо inputStream Выходной stred команды оболочки? Fxp:
tail /data/misc/wifi/wpa_supplicant.conf
Как я могу решить эту проблему, пожалуйста?
Большое спасибо за любые советы.
1 ответ
Есть ли причина, по которой вы пытаетесь сделать это, написав заявление?
Вы выполняете su, но эта команда повышает привилегии в оболочке, экземпляры которой вы не создаете. Вам придется запустить код AS root. Прочитайте файл обычно в этот момент.