什么有效:我有一个运行 TUN/TAP 服务的 ac 可执行文件,以及两个在终端中运行良好的 shell 脚本(用于配置“ip route”和“iptables”),都以 root 身份运行。
什么不起作用:我正在尝试创建一个 Android 应用程序以在按下按钮后运行 c 可执行文件和 shell 脚本。我最初这样做是为了让 onClick 使用 processBuilder 创建一个进程,如下所示:
final Button button1 = ...
...
public void onClick(View v) {
String ip_address = edIPAddress.getText().toString();
Process process;
try {
process = new ProcessBuilder()
.command("/system/bin/su", "-c", "/data/tuntapserv/armeabi/mytunserv " + ip_address)
.redirectErrorStream(true)
.start();
InputStream in = process.getInputStream();
OutputStream out = process.getOutputStream();
pOutput.append("TUN/TAP IS CONFIGURED!\n");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
据我所知,这应该可以正常工作,但实际上 mytunserv 会在随机一段时间后停止工作。mytunserv 会启动我的 …