From 30a2d638c0fa8e48bc27494b22ae6e49c231809a Mon Sep 17 00:00:00 2001 From: "Philip P. Moltmann" Date: Tue, 29 Nov 2016 14:25:59 -0800 Subject: [PATCH 1/2] Allow the shell to set USB functions. Bug: 25596495 Test: Issed a shell command and saw it handled correctly Change-Id: I4472464a1c7ed100cb257dbad83d1d8cfef88fc6 --- packages/Shell/AndroidManifest.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/Shell/AndroidManifest.xml b/packages/Shell/AndroidManifest.xml index 227d0e944e6ea..4f7a826e8fee0 100644 --- a/packages/Shell/AndroidManifest.xml +++ b/packages/Shell/AndroidManifest.xml @@ -41,6 +41,7 @@ + From ca1663a093b43e0d1211017adeb77a8ecd53b9f2 Mon Sep 17 00:00:00 2001 From: Jerry Zhang Date: Wed, 15 Feb 2017 14:15:30 -0800 Subject: [PATCH 2/2] Add data unlock argument to set function command. This allows automated switches into file transfer mode, which makes automated Mtp testing possible. Test: adb shell svc setFunction mtp true Bug: 25596495 Change-Id: I67be58853b002789dc22b75d82af9eb6cfb7a361 --- cmds/svc/src/com/android/commands/svc/UsbCommand.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/cmds/svc/src/com/android/commands/svc/UsbCommand.java b/cmds/svc/src/com/android/commands/svc/UsbCommand.java index 4dcb05e4f85da..adbe9d0156261 100644 --- a/cmds/svc/src/com/android/commands/svc/UsbCommand.java +++ b/cmds/svc/src/com/android/commands/svc/UsbCommand.java @@ -36,8 +36,8 @@ public class UsbCommand extends Svc.Command { public String longHelp() { return shortHelp() + "\n" + "\n" - + "usage: svc usb setFunction [function]\n" - + " Set the current usb function.\n\n" + + "usage: svc usb setFunction [function] [usbDataUnlocked=false]\n" + + " Set the current usb function and optionally the data lock state.\n\n" + " svc usb getFunction\n" + " Gets the list of currently enabled functions\n"; } @@ -49,8 +49,12 @@ public class UsbCommand extends Svc.Command { if ("setFunction".equals(args[1])) { IUsbManager usbMgr = IUsbManager.Stub.asInterface(ServiceManager.getService( Context.USB_SERVICE)); + boolean unlockData = false; + if (args.length >= 4) { + unlockData = Boolean.valueOf(args[3]); + } try { - usbMgr.setCurrentFunction((args.length >=3 ? args[2] : null), false); + usbMgr.setCurrentFunction((args.length >=3 ? args[2] : null), unlockData); } catch (RemoteException e) { System.err.println("Error communicating with UsbManager: " + e); }