如何在所有网络共享数据上禁用互联网

时间:2016-08-22 15:05:54

标签: java android ethernet tethering android-firmware

我在托管网页的Android设备上有一个应用程序。如果我通过其android热点连接到运行此设备的设备,我可以使用默认的IP查看页面。

此页面从互联网提供数据。因此Android设备需要访问互联网。但是,我不希望连接到设备热点的用户能够访问互联网。我想知道在android热点和它的传出数据连接之间切断数据桥接的最佳方法是什么。 (我目前正在使用以太网。)

我更喜欢一种解决方案,我可以编辑固件本身的源文件,因为这是不可逆转的。我完全控制了源和root。

提前致谢。

1 个答案:

答案 0 :(得分:1)

所以我得到了一些建议,看看安装在android 4.2.2中的iptables。但是,只有拥有root权限才能使用此解决方案。

谢天谢地,它显示了这个:

Chain natctrl_FORWARD (1 references)
pkts bytes target     prot opt in     out     source               destination
0     0 natctrl_tether_counters  all  --  eth0   wlan0   0.0.0.0/0            0.0.0.0/0           [goto]  state RELATED,ESTABLISHED
0     0 DROP       all  --  wlan0  eth0    0.0.0.0/0            0.0.0.0/0            state INVALID
0     0 natctrl_tether_counters  all  --  wlan0  eth0    0.0.0.0/0            0.0.0.0/0           [goto]
0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0

这条链将数据从以太网传递到wifi。因此,如果我在命令行中运行以下命令:

iptables -I natctrl_FORWARD 1 -j DROP

它只是将DROP置于顶部并抛弃所有流量。

因此,在应用程序中,您可以使用以下命令运行命令行脚本:

Runtime.getRuntime().exec(new String[]{"su", "-c", "iptables -I natctrl_FORWARD 1 -j DROP"});