Android 10 Firewall blacklist 设置范例
Background
Android 10中系统NMS中带有防火墙接口。
在这里举一个设置黑名单的例子
public void setblacklist (int uid,boolean enabled) {
try {
if (isFirewallEnabled()){
Log.d(TAG, "##setFirewallEnabled false ");
setFirewallEnabled(false);
}
} catch (Exception e) {
Log.e(TAG, "setFirewallEnabled Exception e:" + Log.getStackTraceString(e));
}
try {
if (enabled)
{
if(uid > 0) {
Log.w(TAG, "##setFirewallUidRule FIREWALL_RULE_ALLOW" );
setFirewallUidRule(FIREWALL_CHAIN_NONE, uid, FIREWALL_WHITELIST); //reset uid rule
setFirewallUidRule(FIREWALL_CHAIN_NONE, uid, FIREWALL_RULE_ALLOW); //allow
}
}
else{
if(uid > 0) {
Log.w(TAG, "##setFirewallUidRule FIREWALL_RULE_DENY" );
setFirewallUidRule(FIREWALL_CHAIN_NONE, uid, FIREWALL_WHITELIST); //reset uid rule
setFirewallUidMmsRule(FIREWALL_CHAIN_NONE, uid, FIREWALL_RULE_DENY); //deny
}
}
} catch (Exception e) {
Log.e(TAG, "setFirewallUidRule Exception e:" + Log.getStackTraceString(e));
}
}
总结
这个函数的作用为将app通过uid设黑名单 禁用了app的联网功能
可作为安全中心的Framework 底层实现