Android Runtime.getRuntime().exec()调用命令问题

SDYYY_FAN 2016-09-19 08:40:35
try {
String cmd5="dmesg";
Process process = Runtime.getRuntime().exec(cmd5);
Log.i(TAG,"cmd dmesg success---------------");
InputStream in1 = process.getInputStream();
BufferedReader reader1 = new BufferedReader(new InputStreamReader(in1));
String line1;
Log.i(TAG,"cat value---------------"+reader1.readLine());
}
in1.close();
} catch (IOException ex) {

addr.setText("error");
}

直接用adb调用是没问题的,为何apk调用dmesg命令时,获取的返回值为空,是不是要加什么权限,还是我调用的方法不对,请大神指教
...全文
912 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
SDYYY_FAN 2016-09-20
  • 打赏
  • 举报
回复
使用 InputStream in1 = process.getErrorStream(); LOG: cat value---------------klogctl: Operation not permitted klogctl: Operation not permitted 是权限问题吗?
SDYYY_FAN 2016-09-20
  • 打赏
  • 举报
回复
引用 2 楼 Arnold9009 的回复:
有些命令只有system app才能拿到结果的
是的,但是我在AndoridManifest.xml文件中加了android:sharedUserId="android.uid.system, 这样apk就有system权限了,可惜还是不行 问题也解决了,用了root软件 root了一下,就能使用了,看来system权限还是不够的
Arnold9009 2016-09-20
  • 打赏
  • 举报
回复 1
有些命令只有system app才能拿到结果的

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧