作者hyhjcjy (翊玥)
站内AndroidDev
标题[问题] 在app中执行ifconfig
时间Wed Dec 4 17:00:11 2013
android和linux新手,请教各位前辈,希望问题描述得正确:
我在板子上灌Android系统,用rndis module让板子与手机能以USB相连。
但是每次重插USB之後ip都会消失,要再重新设定一次ip,
也就是要在minicom中手动打:ifconfig usb0 x.x.x.x来对板子设定ip。
所以我在app当中写了一段程式码来自动设ip,当我开这个app时就会先帮我把ip设好,
然後执行其他的功能。
找了一些资料後写出下面的程式码,可以达到我的需要:
public void ifconfigUsb0IP(String strIP){
Process process = null;
DataOutputStream os = null;
try {
process = Runtime.getRuntime().exec("su");
os = new DataOutputStream(process.getOutputStream());
os.writeBytes("ifconfig usb0 "+strIP+"\n");
os.flush();
} catch (Exception e) {
e.getMessage();
}
}
可是我想让这个app不要使用到root权限。
所以我去版子的/system/bin里面把ifconfig档权限设为system system rwxrwxrwx
然後改写程式码为
public void ifconfigUsb0IP(String strIP){
Process process = null;
DataOutputStream os = null;
try {
process = Runtime.getRuntime().exec("ifconfig usb0 "+strIP);
} catch (Exception e) {
e.getMessage();
}
}
可是不work。
我试过几种方法改写都不成功,不晓得是一开始改ifconfig权限的想法就错了,
还是单纯是在Runtime.getRuntime().exec("ifconfig usb0 "+strIP);语法上的错误呢?
谢谢回覆:)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.61.240.28
1F:→ mshockwave:你要不要单纯写一个native程式或bash script再用termin 12/04 19:43
2F:→ mshockwave:al app之类的执行它 12/04 19:43
3F:→ mshockwave:感觉一个ifconfig指令就要用java写有点厚工 12/04 19:45
4F:→ hyhjcjy:噢噢,不是单纯为了ifconfig写app的,是app要工作前有这 12/05 09:14
5F:→ hyhjcjy:个需要,所以我顺便把它加进去而已:P 12/05 09:14
6F:→ hyhjcjy:我在process = Runtime.getRuntime().exec("ifconfig usb0 12/05 15:13
7F:→ hyhjcjy:这行之前先执行"su"让它得到root权限,仍没办法让这行指令 12/05 15:14
8F:→ hyhjcjy:发生作用。所以直接在exec()中写ifconfig ...是错误写法? 12/05 15:15
9F:→ KeySabre:你的app有拿到system身分吗 12/10 02:46