Remove dependency on system binaries for network

Change the way networking in the emulator works by moving away from
using iptables for NAT. Instead create a bridge in the router namespace
so that all packets coming from the regular namespace will be
automatically bridged/switched to the host network. This removes the
need for dhcpserver and ipv6proxy because DHCP requests will now
correctly traverse the router namespace to the host network so no
additional server is needed to forward those DHCP requests. Similarly
the ipv6proxy is no longer needed because all NDP traffic used to
configure IPv6 addresses will now also be bridged to the host network.

This change still requires the 'ip' command but switches to using ip
from the vendor partition. The 'iptables' command could not be made
available to vendors because it uses a lock file on the system
partition.

Note that this change breaks WiFi Direct because all network interfaces
in a bridge need to have the same MTU. The wifi interface in the router
namespace had a smaller MTU to allow for injection with headers to be
within the MTU bound on the wifi monitor interface. Because of this
breakage this change should be accompanied by the change that rewrite
WiFi Direct functionality.

Test: run GtsSecurityHostTestCases com.google.android.security.gts.SELinuxHostTest#testNoExemptionsForVendorExecutingCore
BUG: 120612311

Change-Id: Ie9ac9c2cc404f4337b8b080510a7496541d84d15
Merged-In: Ie9ac9c2cc404f4337b8b080510a7496541d84d15
75 files changed