From dd519fac9b79f36a27909149a90fce4321ed1c20 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Fri, 2 Dec 2011 14:11:21 -0800 Subject: Move native vold calls to varargs. Uses argument escaping inside NativeDaemonConnector, using varargs to separate boundaries. Bug: 5472606 Change-Id: Ie107a90df7e2b3bd3eaaf04c8367248ab40136f4 --- services/java/com/android/server/MountService.java | 201 ++++++++------------- 1 file changed, 75 insertions(+), 126 deletions(-) diff --git a/services/java/com/android/server/MountService.java b/services/java/com/android/server/MountService.java index 022b13a33bea..1dd6bca9e3b7 100644 --- a/services/java/com/android/server/MountService.java +++ b/services/java/com/android/server/MountService.java @@ -20,6 +20,7 @@ import com.android.internal.app.IMediaContainerService; import com.android.internal.util.XmlUtils; import com.android.server.am.ActivityManagerService; import com.android.server.pm.PackageManagerService; +import com.android.server.NativeDaemonConnector.Command; import android.Manifest; import android.content.BroadcastReceiver; @@ -564,8 +565,7 @@ class MountService extends IMountService.Stub } try { - mConnector.doCommand(String.format( - "volume %sshare %s %s", (enable ? "" : "un"), path, method)); + mConnector.execute("volume", enable ? "share" : "unshare", path, method); } catch (NativeDaemonConnectorException e) { Slog.e(TAG, "Failed to share/unshare", e); } @@ -633,8 +633,9 @@ class MountService extends IMountService.Stub * Determine media state and UMS detection status */ try { - String[] vols = mConnector.doListCommand( - "volume list", VoldResponseCode.VolumeListResult); + final String[] vols = NativeDaemonEvent.filterMessageList( + mConnector.executeForList("volume", "list"), + VoldResponseCode.VolumeListResult); for (String volstr : vols) { String[] tok = volstr.split(" "); // FMT: