From beacf8d64c237346ea431a267c5d413e814234b5 Mon Sep 17 00:00:00 2001 From: Lorenzo Colitti Date: Tue, 10 Jun 2014 14:51:30 +0900 Subject: [PATCH] Don't enable Ethernet on the emulator. Don't start the Ethernet service on the emulator because it interferes with qemu's SLIRP emulation, which uses IPv4 over eth0. Bug: 15341003 Change-Id: I4041a17b19a4861cae4fbf47ab5e05b007385e19 --- .../java/com/android/server/SystemServer.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/services/java/com/android/server/SystemServer.java b/services/java/com/android/server/SystemServer.java index 2aa1220929e9e..e52e2205ffb5c 100644 --- a/services/java/com/android/server/SystemServer.java +++ b/services/java/com/android/server/SystemServer.java @@ -349,6 +349,7 @@ public final class SystemServer { boolean disableSystemUI = SystemProperties.getBoolean("config.disable_systemui", false); boolean disableNonCoreServices = SystemProperties.getBoolean("config.disable_noncore", false); boolean disableNetwork = SystemProperties.getBoolean("config.disable_network", false); + boolean isEmulator = SystemProperties.get("ro.kernel.qemu").equals("1"); try { Slog.i(TAG, "Telephony Registry"); @@ -461,7 +462,7 @@ public final class SystemServer { // Skip Bluetooth if we have an emulator kernel // TODO: Use a more reliable check to see if this product should // support Bluetooth - see bug 988521 - if (SystemProperties.get("ro.kernel.qemu").equals("1")) { + if (isEmulator) { Slog.i(TAG, "No Bluetooh Service (emulator)"); } else if (mFactoryTestMode == FactoryTest.FACTORY_TEST_LOW_LEVEL) { Slog.i(TAG, "No Bluetooth Service (factory test)"); @@ -662,10 +663,17 @@ public final class SystemServer { reportWtf("starting Wi-Fi Scanning Service", e); } - try { - mSystemServiceManager.startService(ETHERNET_SERVICE_CLASS); - } catch (Throwable e) { - reportWtf("starting Ethernet Service", e); + if (!isEmulator) { + try { + mSystemServiceManager.startService(ETHERNET_SERVICE_CLASS); + } catch (Throwable e) { + reportWtf("starting Ethernet Service", e); + } + } else { + // Don't start the Ethernet service on the emulator because + // it interferes with qemu's SLIRP emulation, which uses + // IPv4 over eth0. http://b/15341003 . + Slog.i(TAG, "Not starting Ethernet service (emulator)"); } try {