【发布时间】:2015-09-06 09:49:40
【问题描述】:
我已经为 ROOT android 设备构建了一个应用程序。它是开源的,源代码是here。 我的问题是,当代码尝试读取文件“/sys/block/mmcblk0/queue/scheduler”时,我收到此错误
06-20 16:17:10.190: W/System.err(7458): java.io.FileNotFoundException: /sys/block/mmcblk0/queue/scheduler: open failed: EACCES (Permission denied)
这只发生在 cyanogenmod 操作系统中,我也尝试过使用 carbon 操作系统并且工作正常! 请注意,即使通过 adb 更改权限,我也无法读取文件。
当我以 root 身份通过 adb shell 连接到我的设备并点击以下命令时
cat /sys/block/mmcblk0/queue/调度器
我得到这个输出
noop deadline [row] cfq
清单
...
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.VIBRATE" />
<uses-permission android:name="android.permission.ACCESS_SUPERUSER" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!--These permissions needed for ads-->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
...
读取内容文件的函数
public static String getStringOfFile(String file) {
String cpuFreq = "";
RandomAccessFile reader;
try {
reader = new RandomAccessFile(file, "r");
cpuFreq = reader.readLine();
reader.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return cpuFreq;
}
【问题讨论】:
标签: android permissions cyanogenmod