aboutsummaryrefslogtreecommitdiffstats
path: root/ddms/libs/ddmlib
diff options
context:
space:
mode:
authorPierre Zurek <pierrezurek@gmail.com>2010-09-30 21:35:11 +0200
committerPierre Zurek <pierrezurek@gmail.com>2011-01-12 00:03:35 +0100
commitff0b9891ab1650c6d06509ad4ae202c77e202cc3 (patch)
tree4ed7627281df1f17d2ff547c62d2a6a8d387ccde /ddms/libs/ddmlib
parentc2c5bf104f24205ee46c2d1415f2d9c4991d1ed4 (diff)
downloadsdk-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.java12
-rw-r--r--ddms/libs/ddmlib/src/com/android/ddmlib/DdmPreferences.java36
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() {