iptables 规则显示在 android 的 textView 中;

Posted

技术标签:

【中文标题】iptables 规则显示在 android 的 textView 中;【英文标题】:iptables Rules show in textView in android; 【发布时间】:2012-12-02 12:58:14 【问题描述】:

我想显示我在 textView 中创建的规则,使用此代码;

.......................

                  public void show(View btn) throws IOException

                 Show(tv);
                   


        public final void Show(TextView tv) throws IOException
            Process Q =Runtime.getRuntime().exec("su -c iptables -L INPUT 1 -n -v --line-numbers ");


             String pingResult="";
            BufferedReader in = new BufferedReader(new
                    InputStreamReader(Q.getInputStream()));
                    String inputLine;

                    while ((inputLine = in.readLine()) != null) 

                           tv.setText(pingResult+="\n"+inputLine+"\n");

                    
                    in.close();
                                         
                                

问题是它告诉我授予了超级用户权限,但表格没有出现在 TextView 中,即使我使用了 BufferReader .....帮助?

【问题讨论】:

【参考方案1】:

有了这个代码部分,我会做同样的事情,但会列出一个目录并读取输入。尝试使用此代码更改 getRuntime().exec 命令。

private String[] GetAppFiles() throws IOException
    
        int BUFF_LEN =2048;
        Process p = Runtime.getRuntime().exec(new String[]"su", "-c", "system/bin/sh");
        DataOutputStream stdin = new DataOutputStream(p.getOutputStream());
        //from here all commands are executed with su permissions
        stdin.writeBytes("ls " + CurrentApkPath + "\n"); // \n executes the command
        InputStream stdout = p.getInputStream();
        byte[] buffer = new byte[BUFF_LEN];
        int read;
        String out = new String();
        //read method will wait forever if there is nothing in the stream
        //so we need to read it in another way than while((read=stdout.read(buffer))>0)
        while(true)
            read = stdout.read(buffer);
            out += new String(buffer, 0, read);
            if(read<BUFF_LEN)
                //we have read everything
                break;
            
        

希望对你有帮助。

【讨论】:

以上是关于iptables 规则显示在 android 的 textView 中;的主要内容,如果未能解决你的问题,请参考以下文章

查看防火墙规则

iptables 删除规则

7.13

linux

linux下IPTABLES配置详解

如何用iptables实现NAT