經過命令行控制防火牆來實現的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)。若是規則的這個選項被忽略,那麼匹配的過程不會對包產生影響,不過規則的計數器會增長。