Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android应用程序中不带root的ifconfig设置_Java_Android_Linux_Ip - Fatal编程技术网

Java android应用程序中不带root的ifconfig设置

Java android应用程序中不带root的ifconfig设置,java,android,linux,ip,Java,Android,Linux,Ip,我有一个Android板,我使用rndis模块通过USB将该板连接到手机 要设置板的ip,我需要使用以下命令 minicom中的ifconfig usb0 x.x.x.x,并在每次重新插入USB时重置ip 因此,我想在我的应用程序中为ip自动设置编写一个代码。 一旦应用程序启动,将设置板的ip,应用程序随后可以执行其他工作 经过一些研究,ip设置的目标通过以下代码实现: public void ifconfigUsb0IP(String strIP){ Process

我有一个Android板,我使用rndis模块通过USB将该板连接到手机

要设置板的ip,我需要使用以下命令 minicom中的ifconfig usb0 x.x.x.x,并在每次重新插入USB时重置ip

因此,我想在我的应用程序中为ip自动设置编写一个代码。 一旦应用程序启动,将设置板的ip,应用程序随后可以执行其他工作

经过一些研究,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();
      }
}

但我不希望应用程序具有root权限。 因此,我将/system/bin中的ifconfig文件

系统系统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();
      }
}

但是ip设置不再起作用了

我尝试了一些方法来编写
Runtime.getRuntime().exec
命令,但是没有一种方法可以工作


我不知道这是否是语法错误,或者更改ifconfig的权限只是一个错误的想法?

您现在可以访问
ifconfig
工具,但它是使用您的应用权限执行的,这可能不足以完成它需要做的事。谢谢您的回答!但我不太明白。你能给我解释更多细节吗?谢谢:)请将
ifconfig
视为执行其他命令的脚本。如果你执行它,基本上是你执行所有这些命令。如果其中一个命令需要root访问
ifconfig
,则整个命令将失败。对流程的输出和错误流进行评估,如中所示,并查看它是否向您显示了它不工作的原因。我编写类似这样的内容来检查:
process=Runtime.getRuntime().exec(“su”)
process=Runtime.getRuntime().exec(“ifconfig usb0”+strIP)仍然无法工作。所以这似乎不是特权问题?这不起作用,因为第二个进程是一个单独的进程,不在
su
上下文中运行。而且
su
不是永久许可。这个过程是理所当然的。