最近在学习Android frameworks的源码,看到一篇配置iptable的文章比较感兴趣,原文链接https://www.jianshu.com/p/d4b9a599b9da
博主在追INetd的时候,直接追到了system/netd/server/NetdNativeService.cpp
我尝试着看源码跟一下,INetd.FIREWALL_ALLOWLIST和INetd.FIREWALL_DENYLIST都是导入的静态变量
// \frameworks\base\services\core\java\com\android\server\NetworkManagementService.java
package com.android.server;
import static android.net.INetd.FIREWALL_ALLOWLIST;
import static android.net.INetd.FIREWALL_DENYLIST;
......
@Override
public void setFirewallEnabled(boolean enabled) {
enforceSystemUid();
try {
mNetdService.firewallSetFirewallType(
enabled ? INetd.FIREWALL_ALLOWLIST : INetd.FIREWALL_DENYLIST);
mFirewallEnabled = enabled;
} catch (RemoteException | ServiceSpecificException e) {
throw new IllegalStateException(e);
}
}