| Index: tools/telemetry/telemetry/core/forwarders/android_forwarder.py
|
| diff --git a/tools/telemetry/telemetry/core/forwarders/android_forwarder.py b/tools/telemetry/telemetry/core/forwarders/android_forwarder.py
|
| index a82c0bcd0ee38e561859c94c94c7b94a398816a7..ccfc286a5daea5e912b2b5bfe17692ab30c4cbb9 100644
|
| --- a/tools/telemetry/telemetry/core/forwarders/android_forwarder.py
|
| +++ b/tools/telemetry/telemetry/core/forwarders/android_forwarder.py
|
| @@ -153,7 +153,8 @@ class AndroidRndisConfigurator(object):
|
|
|
| _RNDIS_DEVICE = '/sys/class/android_usb/android0'
|
| _NETWORK_INTERFACES = '/etc/network/interfaces'
|
| - _TELEMETRY_MARKER = '# Added by Telemetry for RNDIS forwarding #'
|
| + _INTERFACES_INCLUDE = 'source /etc/network/interfaces.d/*.conf'
|
| + _TELEMETRY_INTERFACE_FILE = '/etc/network/interfaces.d/telemetry-{}.conf'
|
|
|
| def __init__(self, adb):
|
| is_root_enabled = adb.Adb().EnableAdbRoot()
|
| @@ -343,19 +344,32 @@ doit &
|
| return candidate
|
|
|
| orig_interfaces = open(self._NETWORK_INTERFACES, 'r').read()
|
| - if self._TELEMETRY_MARKER not in orig_interfaces:
|
| + if self._INTERFACES_INCLUDE not in orig_interfaces:
|
| interfaces = '\n'.join([
|
| orig_interfaces,
|
| '',
|
| - self._TELEMETRY_MARKER,
|
| + '# Added by Telemetry.',
|
| + self._INTERFACES_INCLUDE])
|
| + self._WriteProtectedFile(self._NETWORK_INTERFACES, interfaces)
|
| + interface_conf_file = self._TELEMETRY_INTERFACE_FILE.format(host_iface)
|
| + if not os.path.exists(interface_conf_file):
|
| + interface_conf_dir = os.path.dirname(interface_conf_file)
|
| + if not interface_conf_dir:
|
| + subprocess.call(['sudo', '/bin/mkdir', interface_conf_dir])
|
| + subprocess.call(['sudo', '/bin/chmod', '755', interface_conf_dir])
|
| + interface_conf = '\n'.join([
|
| + '# Added by Telemetry for RNDIS forwarding.',
|
| 'auto %s' % host_iface,
|
| 'iface %s inet static' % host_iface,
|
| ' address 192.168.123.1',
|
| ' netmask 255.255.255.0',
|
| ])
|
| - subprocess.call(['sudo', 'stop', 'network-manager'])
|
| - self._WriteProtectedFile(self._NETWORK_INTERFACES, interfaces)
|
| + self._WriteProtectedFile(interface_conf_file, interface_conf)
|
| subprocess.check_call(['sudo', '/etc/init.d/networking', 'restart'])
|
| + if 'stop/waiting' not in subprocess.check_output(
|
| + ['status', 'network-manager']):
|
| + logging.info('Stopping network-manager...')
|
| + subprocess.call(['sudo', 'stop', 'network-manager'])
|
|
|
| def HasHostAddress():
|
| _, host_address = self._GetHostAddresses(host_iface)
|
|
|