summaryrefslogtreecommitdiffstats
path: root/services/java/com
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2011-07-01 14:05:25 -0400
committerMike Lockwood <lockwood@android.com>2011-07-01 14:55:23 -0400
commitde296f64483713fdf164f3e8bf41dc12d1cff59e (patch)
tree19532eb4b1facfdcd1c24ffa4dd209a5552e7630 /services/java/com
parentfdc0c2984d05e32954608f46514c4cbe3a5a9424 (diff)
downloadframeworks_base-de296f64483713fdf164f3e8bf41dc12d1cff59e.zip
frameworks_base-de296f64483713fdf164f3e8bf41dc12d1cff59e.tar.gz
frameworks_base-de296f64483713fdf164f3e8bf41dc12d1cff59e.tar.bz2
UsbDeviceManager: Reset sys.usb.config if it is "none" at boot
This will allow us to recover if we crash while changing USB configurations Change-Id: I22ba9a1ff0a8bcbfd4a0f18af0c95a3b66b99060 Signed-off-by: Mike Lockwood <lockwood@android.com>
Diffstat (limited to 'services/java/com')
-rw-r--r--services/java/com/android/server/usb/UsbDeviceManager.java13
1 files changed, 11 insertions, 2 deletions
diff --git a/services/java/com/android/server/usb/UsbDeviceManager.java b/services/java/com/android/server/usb/UsbDeviceManager.java
index 6cd20f1..13a76b3 100644
--- a/services/java/com/android/server/usb/UsbDeviceManager.java
+++ b/services/java/com/android/server/usb/UsbDeviceManager.java
@@ -224,14 +224,22 @@ public class UsbDeviceManager {
private static final int NOTIFICATION_ADB = 4;
public UsbHandler() {
- // Read initial USB state
try {
+ // sanity check the sys.usb.config system property
+ // this may be necessary if we crashed while switching USB configurations
+ String config = SystemProperties.get("sys.usb.config", "none");
+ if (config.equals("none")) {
+ String persistConfig = SystemProperties.get("persist.sys.usb.config", "none");
+ Slog.w(TAG, "resetting config to persistent property: " + persistConfig);
+ SystemProperties.set("sys.usb.config", persistConfig);
+ }
+
+ // Read initial USB state
mCurrentFunctions = FileUtils.readTextFile(
new File(FUNCTIONS_PATH), 0, null).trim();
mDefaultFunctions = mCurrentFunctions;
String state = FileUtils.readTextFile(new File(STATE_PATH), 0, null).trim();
updateState(state);
-
mAdbEnabled = containsFunction(mCurrentFunctions, UsbManager.USB_FUNCTION_ADB);
// Upgrade step for previous versions that used persist.service.adb.enable
@@ -341,6 +349,7 @@ public class UsbDeviceManager {
}
private void setAdbEnabled(boolean enable) {
+ if (DEBUG) Slog.d(TAG, "setAdbEnabled: " + enable);
if (enable != mAdbEnabled) {
mAdbEnabled = enable;
String functions;