2

我正在尝试添加一些规则来使用 iptables 过滤进出设备(Xoom WiFi)的网络流量。iptables 命令位于运行 android 3.0.1 的 xoom 设备中的 /system/bin/iptables。我正在使用 adb shell 添加规则。但是我似乎无法通过 android 应用程序做同样的事情。

与苏

( su -c command)。Xoom 已经扎根。并且 iptables 已被授予超级用户应用程序的 su 权限(最新版本,最新的 su 二进制文件):

iptables

07-18 09:00:32.990: DEBUG/su(17539): 10054 com.iptables 使用 shell /system/bin/sh 执行 0 /system/bin/iptables : sh 07-18 09:00:33.010: WARN/su (17546): 请求被拒绝 (0->0 /system/bin/iptables)

chown

07-18 09:02:21.380: WARN/su(17594): 请求被拒绝 (0->0 /system/bin/chmod)

没有苏

iptables

没有输出。什么都没发生。不添加规则。

chown

没有输出。按预期工作!?!。

我如何运行 iptables 命令:

runCommand(new String[] { "su", "-c", "/system/bin/iptables", "-F" });
            runCommand(new String[] { "su", "-c", "/system/bin/iptables", "-A", "OUTPUT", "-d", "184.72.45.145", "-j", "ACCEPT" });

运行命令的方法:

public static String runCommand(String[] ars) {
    try {
        Process p = Runtime.getRuntime().exec(ars);
        BufferedReader bufferedReader = new BufferedReader(
                new InputStreamReader(p.getInputStream()));

        StringBuffer buffer = new StringBuffer();
        String sCurrentLine;
        while ((sCurrentLine = bufferedReader.readLine()) != null) {
            buffer.append(sCurrentLine);
        }
        return buffer.toString();
    } catch (IOException e) {
        e.printStackTrace();
        return "ERROR";
    }
}

有任何想法吗?我正在撞墙。任何帮助高度赞赏。谢谢!

4

0 回答 0