diff options
author | Pierre Zurek <pierrezurek@gmail.com> | 2010-09-30 21:35:11 +0200 |
---|---|---|
committer | Pierre Zurek <pierrezurek@gmail.com> | 2011-01-12 00:03:35 +0100 |
commit | ff0b9891ab1650c6d06509ad4ae202c77e202cc3 (patch) | |
tree | 4ed7627281df1f17d2ff547c62d2a6a8d387ccde /ddms/libs/ddmlib | |
parent | c2c5bf104f24205ee46c2d1415f2d9c4991d1ed4 (diff) | |
download | sdk-ff0b9891ab1650c6d06509ad4ae202c77e202cc3.zip sdk-ff0b9891ab1650c6d06509ad4ae202c77e202cc3.tar.gz sdk-ff0b9891ab1650c6d06509ad4ae202c77e202cc3.tar.bz2 |
Allow the user to set the ADBHOST variable.
With those changes the ADBHOST variable can be
directly set in the Preferences of DDMS and Eclipse,
so that the user can reset adb from inside those
two programs.
Change-Id: I94b24744e8daa3b3b2fe5a3db39203b39cb093ac
Diffstat (limited to 'ddms/libs/ddmlib')
-rw-r--r-- | ddms/libs/ddmlib/src/com/android/ddmlib/AndroidDebugBridge.java | 12 | ||||
-rw-r--r-- | ddms/libs/ddmlib/src/com/android/ddmlib/DdmPreferences.java | 36 |
2 files changed, 47 insertions, 1 deletions
diff --git a/ddms/libs/ddmlib/src/com/android/ddmlib/AndroidDebugBridge.java b/ddms/libs/ddmlib/src/com/android/ddmlib/AndroidDebugBridge.java index 30bbada..e965ccd 100644 --- a/ddms/libs/ddmlib/src/com/android/ddmlib/AndroidDebugBridge.java +++ b/ddms/libs/ddmlib/src/com/android/ddmlib/AndroidDebugBridge.java @@ -27,6 +27,7 @@ import java.net.InetSocketAddress; import java.net.UnknownHostException; import java.security.InvalidParameterException; import java.util.ArrayList; +import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -899,7 +900,16 @@ public final class AndroidDebugBridge { Log.d(DDMS, String.format("Launching '%1$s %2$s' to ensure ADB is running.", //$NON-NLS-1$ mAdbOsLocation, command[1])); - proc = Runtime.getRuntime().exec(command); + ProcessBuilder processBuilder = new ProcessBuilder(command); + if (DdmPreferences.getUseAdbHost()) { + String adbHostValue = DdmPreferences.getAdbHostValue(); + if (adbHostValue != null && adbHostValue.length() > 0) { + //TODO : check that the String is a valid IP address + Map<String, String> env = processBuilder.environment(); + env.put("ADBHOST", adbHostValue); + } + } + proc = processBuilder.start(); ArrayList<String> errorOutput = new ArrayList<String>(); ArrayList<String> stdOutput = new ArrayList<String>(); diff --git a/ddms/libs/ddmlib/src/com/android/ddmlib/DdmPreferences.java b/ddms/libs/ddmlib/src/com/android/ddmlib/DdmPreferences.java index 8044ab1..51561c3 100644 --- a/ddms/libs/ddmlib/src/com/android/ddmlib/DdmPreferences.java +++ b/ddms/libs/ddmlib/src/com/android/ddmlib/DdmPreferences.java @@ -42,6 +42,9 @@ public final class DdmPreferences { public final static LogLevel DEFAULT_LOG_LEVEL = LogLevel.ERROR; /** Default timeout values for adb connection (milliseconds) */ public static final int DEFAULT_TIMEOUT = 5000; // standard delay, in ms + /** Default values for the use of the ADBHOST environment variable. */ + public final static boolean DEFAULT_USE_ADBHOST = false; + public final static String DEFAULT_ADBHOST_VALUE = "127.0.0.1"; private static boolean sThreadUpdate = DEFAULT_INITIAL_THREAD_UPDATE; private static boolean sInitialHeapUpdate = DEFAULT_INITIAL_HEAP_UPDATE; @@ -51,6 +54,9 @@ public final class DdmPreferences { private static LogLevel sLogLevel = DEFAULT_LOG_LEVEL; private static int sTimeOut = DEFAULT_TIMEOUT; + private static boolean sUseAdbHost = DEFAULT_USE_ADBHOST; + private static String sAdbHostValue = DEFAULT_ADBHOST_VALUE; + /** * Returns the initial {@link Client} flag for thread updates. * @see #setInitialThreadUpdate(boolean) @@ -158,6 +164,36 @@ public final class DdmPreferences { } /** + * Returns a boolean indicating that the user uses or not the variable ADBHOST. + */ + public static boolean getUseAdbHost() { + return sUseAdbHost; + } + + /** + * Sets the value of the boolean indicating that the user uses or not the variable ADBHOST. + * @param useAdbHost true if the user uses ADBHOST + */ + public static void setUseAdbHost(boolean useAdbHost) { + sUseAdbHost = useAdbHost; + } + + /** + * Returns the value of the ADBHOST variable set by the user. + */ + public static String getAdbHostValue() { + return sAdbHostValue; + } + + /** + * Sets the value of the ADBHOST variable. + * @param adbHostValue + */ + public static void setAdbHostValue(String adbHostValue) { + sAdbHostValue = adbHostValue; + } + + /** * Non accessible constructor. */ private DdmPreferences() { |