From 7f3047e6b6613e35f99fa505d4c9f1b99cf27c60 Mon Sep 17 00:00:00 2001 From: Badhri Jagan Sridharan Date: Wed, 24 May 2017 12:42:50 -0700 Subject: Enable MTP or ADB when default functions are enabled Clients (viz. Tethering) use UsbManager@setCurrentFunction(null, ..) to make the device switch to default functions. While in OemMode, this gets set to the last enabled functions list. Instead, enable MTP or ADB depending on whether ADB is enabled or not. This is the expected behavior for normal boot as well. Bug: 37491031 Test: Verified that the device falls back to either mtp or adb while in OemOverride mode. Change-Id: I1c26d1d0ee3c015b597d40771cd765b783cd91bb --- services/usb/java/com/android/server/usb/UsbDeviceManager.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'services/usb/java') diff --git a/services/usb/java/com/android/server/usb/UsbDeviceManager.java b/services/usb/java/com/android/server/usb/UsbDeviceManager.java index 6dfd08570b18..7de2010121c8 100644 --- a/services/usb/java/com/android/server/usb/UsbDeviceManager.java +++ b/services/usb/java/com/android/server/usb/UsbDeviceManager.java @@ -1240,10 +1240,13 @@ public class UsbDeviceManager { private String getDefaultFunctions() { String func = SystemProperties.get(getPersistProp(true), UsbManager.USB_FUNCTION_NONE); - if (UsbManager.USB_FUNCTION_NONE.equals(func)) { - func = UsbManager.USB_FUNCTION_MTP; + // if ADB is enabled, reset functions to ADB + // else enable MTP as usual. + if (UsbManager.containsFunction(func, UsbManager.USB_FUNCTION_ADB)) { + return UsbManager.USB_FUNCTION_ADB; + } else { + return UsbManager.USB_FUNCTION_MTP; } - return func; } public void dump(IndentingPrintWriter pw) { -- cgit v1.2.3-59-g8ed1b