经过命令行控制防火墙来实现的app
限制 uid为1001的app访问wifi的脚本为ui
#!/system/bin/sh
命令行
service iptables start接口
iptables -t filter -F OUTPUT进程
iptables -t filter -A OUTPUT -o tiwlan+ -m owner --uid-owner 1001 -j REJECT || exitip
iptables -t filter -A OUTPUT -o wlan+ -m owner --uid-owner 1001 -j REJECT || exitit
iptables -t filter -A OUTPUT -o eth+ -m owner --uid-owner 1001 -j REJECT || exittable
exit扩展
---------------------配置
-t table
这个选项指定命令要操做的匹配包的表。若是内核被配置为自动加载模块,这时若模块没有加载,(系统)将尝试(为该表)加载适合的模块。这些表以下:filter,这是默认的表,包含了内建的链INPUT(处理进入的包)、FORWARD(处理经过的包)和OUTPUT(处理本地生成的包)
-F -flush
清空所选链。这等于把全部规则一个个的删除。
-A -append
在所选择的链末添加一条或更多规则。当源(地址)或者/与 目的(地址)转换为多个地址时,这条规则会加到全部可能的地址(组合)后面。
-o --out-interface [!][name]
-o --输出接口[名称]
这是包经由该接口送出的可选的出口名称,包经过该口输出(在链FORWARD、OUTPUT和POSTROUTING中送出的包)那么将匹配全部任意接口。
--uid-owner userid
若是给出有效的user id,那么匹配它的进程产生的包。
-j 目标跳转
指定规则的目标;也就是说,若是包匹配应当作什么。目标能够是用户自定义链(不是这条规则所在的),某个会当即决定包的命运的专用内建目标,或者一个扩展(参见下面的EXTENSIONS)。若是规则的这个选项被忽略,那么匹配的过程不会对包产生影响,不过规则的计数器会增长。