如何在Android堆栈中强制执行“限制后台数据”?

时间:2014-09-16 17:13:41

标签: android android-networking

有谁知道Android堆栈中的哪个位置"限制背景数据"设置是强制执行的以及如何强制执行? (即,在后台运行时,后台的应用程序不允许使用手机数据网络 - WIFI不受影响。)

非常感谢,

1 个答案:

答案 0 :(得分:0)

Android在任何Linux机器上使用iptables规则限制对某些用户的数据访问(Android上每个用户下载的应用程序都在其自己的唯一用户ID下运行)。

如果您希望删除应用的限制,可以从root shell中删除该规则。

iptables -F penalty_box -j REJECT

或在较新的设备上,如下所示:

iptables -F bw_penalty_box -j REJECT

然而,在重新启动时,Android会自动将规则强制执行到iptables。为防止出现这种情况,您需要从&#34; /data/system/netpolicy.xml &#34;中删除<uid-policy ...>。全局限制后台数据设置可以通过设置&#34; restrictBackgroundData &#34;来删除。属于&#34; false&#34;在<policy-list ...>节点上。

netpolicy.xml 更改外,您必须重新启动才能使更改生效。

注意:任何这些操作都可能需要以 root 运行。