请教一个在android下执行ifconfig命令的问题

李狗蛋52635 2012-07-31 03:46:35
大家好

最近小弟想在android里,运行ifconfig lo命令,得到输出的信息,主要用的是Runtime.getRuntime().exec()这个方法,通过读取流得到输出。

尝试了好多次,结果都是空的,于是我在adb shell里使用ifconfig lo命令,发现是有输出值的。

我的问题是:
1.为什么shell里有输出,但我用自己的方法得不到呢?大大们有什么方法吗?
2.我的execRootCmd方法中,执行到r.exec("exit");这行时,会报无权限的异常,这是为嘛尼?

Thx in advance -v-

主要使用的方法如下:


// execute cmd
protected static Vector<String> execRootCmd(String paramString)
{
Vector<String> localVector = new Vector<String>();

DataInputStream dis = null;
Runtime r = Runtime.getRuntime();
try
{
r.exec("su"); // get root

StringBuilder sb = new StringBuilder();
Process p = r.exec(paramString);
InputStream input = p.getInputStream();
dis = new DataInputStream(input);

String content = null;
while ((content = dis.readLine()) != null)
{
sb.append(content).append("\n");
}
// r.exec("exit");

Log.i("UERY", "sb = " + sb.toString());
localVector.add(sb.toString());
}
catch (IOException e)
{
e.printStackTrace();
}
finally
{
if (dis != null)
{
try
{
dis.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}
}
return localVector;
}
...全文
2510 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jh309 2013-09-17
  • 打赏
  • 举报
回复
不知道这个问题你最后是怎么解决的呢?我现在也遇到了,情况跟楼主类似
Chiclaim 2012-08-03
  • 打赏
  • 举报
回复
可能是你的命令写错了.我以前也碰到这些问题,我是输出日志,我上次是多谢了adb三个字母,
在这就是权限问题,希望能帮住你.
李狗蛋52635 2012-08-03
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

可能是你的命令写错了.我以前也碰到这些问题,我是输出日志,我上次是多谢了adb三个字母,
在这就是权限问题,希望能帮住你.
[/Quote]

命令应该是写对了,我在shell里运行是可以设置的,很大可能性是你所说的权限问题,要运行linux命令,android的su权限可能还是不够的。
[Quote=引用 6 楼 的回复:]

Android有个专门的命令好像叫NetCfg
[/Quote]

netcfg可以用于查看,但真正设置还是要用到ifconfig的吧?
CyberLogix 2012-08-02
  • 打赏
  • 举报
回复
Android有个专门的命令好像叫NetCfg
李狗蛋52635 2012-08-02
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

Android中在命令行如何设置IP?

有研究过的吗,解答一下,
帮顶!
[/Quote]

谢谢楼上,隔天再小顶。
李狗蛋52635 2012-08-01
  • 打赏
  • 举报
回复
隔天小顶
ngf318 2012-08-01
  • 打赏
  • 举报
回复
Android中在命令行如何设置IP?

有研究过的吗,解答一下,
帮顶!
李狗蛋52635 2012-07-31
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

基于源码开发,可以编译的话:
1、在Android.mk中增加 LOCAL_CERTIFICATE := platform;
2、在AndroidManifest.xml中增加 androidSharedUserId=”android.uid.system”

增加系统权限试试
[/Quote]

谢谢哥们,增加系统权限以后,就可以输出内容了。

还有一个问题,为什么用ifconfig eth0有内容输出,用ifconfig eth0 192.168.22.56这样设置IP确设置不了呢,设置之前我执行了su,全程没有报错的说,谢谢。
ngf318 2012-07-31
  • 打赏
  • 举报
回复
基于源码开发,可以编译的话:
1、在Android.mk中增加 LOCAL_CERTIFICATE := platform;
2、在AndroidManifest.xml中增加 androidSharedUserId=”android.uid.system”

增加系统权限试试

80,362

社区成员

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

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