2

iptablesを使用してデバイス(Xoom WiFi)との間のネットワークトラフィックをフィルタリングするためのルールを追加しようとしています。iptablesコマンドは、android3.0.1を実行しているxoomデバイスの/system / bin/iptablesにあります。私はadbシェルを使用してルールを追加します。しかし、私はアンドロイドアプリを通して同じことをすることができないようです。

SUで

su -c command)。Xoomは根付いています。また、iptablesには、スーパーユーザーアプリ(最新バージョン、最新のsuバイナリ)によるsu権限が付与されています。

iptables

07-18 09:00:32.990:DEBUG / su(17539):10054com.iptablesがシェル/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:警告/ su(17594):リクエストが拒否されました(0-> 0 / system / bin / chmod)

SUなし

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