Android:如何读取root设备上wpa_supplicant.conf文件的内容?

时间:2015-09-08 12:10:26

标签: android root wpa-supplicant

我有以下函数应该返回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)

我应该使用而不是使用shell命令的inputStream输出stred吗? Fxp:

tail /data/misc/wifi/wpa_supplicant.conf

我该如何解决这个问题?

非常感谢您的任何建议。

1 个答案:

答案 0 :(得分:-1)

您是否有理由通过编写应用程序来实现此目的?

你正在做su,但是这个命令提升了你没有实例化的shell中的权限..你必须运行AS root代码。此时正常读取文件。