Move "volume" commands over to Binder.

Keep the old socket-based commands intact for awhile so we can
rapidly disable this change using the ENABLE_BINDER feature flag.

Define constants in AIDL to keep Java and C++ in sync.

Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.ExternalStorageHostTest
Test: cts-tradefed run commandAndExit cts-dev --abi armeabi-v7a -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.AdoptableHostTest
Bug: 13758960
Change-Id: Ie0d917c921b0b826e6bdf55a5d678b247ef352a6
diff --git a/core/java/android/os/storage/VolumeInfo.java b/core/java/android/os/storage/VolumeInfo.java
index a21e05e..b8353d7 100644
--- a/core/java/android/os/storage/VolumeInfo.java
+++ b/core/java/android/os/storage/VolumeInfo.java
@@ -23,6 +23,7 @@
 import android.content.res.Resources;
 import android.net.Uri;
 import android.os.Environment;
+import android.os.IVold;
 import android.os.Parcel;
 import android.os.Parcelable;
 import android.os.UserHandle;
@@ -75,24 +76,24 @@
     /** Real volume representing internal emulated storage */
     public static final String ID_EMULATED_INTERNAL = "emulated";
 
-    public static final int TYPE_PUBLIC = 0;
-    public static final int TYPE_PRIVATE = 1;
-    public static final int TYPE_EMULATED = 2;
-    public static final int TYPE_ASEC = 3;
-    public static final int TYPE_OBB = 4;
+    public static final int TYPE_PUBLIC = IVold.TYPE_PUBLIC;
+    public static final int TYPE_PRIVATE = IVold.TYPE_PRIVATE;
+    public static final int TYPE_EMULATED = IVold.TYPE_EMULATED;
+    public static final int TYPE_ASEC = IVold.TYPE_ASEC;
+    public static final int TYPE_OBB = IVold.TYPE_OBB;
 
-    public static final int STATE_UNMOUNTED = 0;
-    public static final int STATE_CHECKING = 1;
-    public static final int STATE_MOUNTED = 2;
-    public static final int STATE_MOUNTED_READ_ONLY = 3;
-    public static final int STATE_FORMATTING = 4;
-    public static final int STATE_EJECTING = 5;
-    public static final int STATE_UNMOUNTABLE = 6;
-    public static final int STATE_REMOVED = 7;
-    public static final int STATE_BAD_REMOVAL = 8;
+    public static final int STATE_UNMOUNTED = IVold.STATE_UNMOUNTED;
+    public static final int STATE_CHECKING = IVold.STATE_CHECKING;
+    public static final int STATE_MOUNTED = IVold.STATE_MOUNTED;
+    public static final int STATE_MOUNTED_READ_ONLY = IVold.STATE_MOUNTED_READ_ONLY;
+    public static final int STATE_FORMATTING = IVold.STATE_FORMATTING;
+    public static final int STATE_EJECTING = IVold.STATE_EJECTING;
+    public static final int STATE_UNMOUNTABLE = IVold.STATE_UNMOUNTABLE;
+    public static final int STATE_REMOVED = IVold.STATE_REMOVED;
+    public static final int STATE_BAD_REMOVAL = IVold.STATE_BAD_REMOVAL;
 
-    public static final int MOUNT_FLAG_PRIMARY = 1 << 0;
-    public static final int MOUNT_FLAG_VISIBLE = 1 << 1;
+    public static final int MOUNT_FLAG_PRIMARY = IVold.MOUNT_FLAG_PRIMARY;
+    public static final int MOUNT_FLAG_VISIBLE = IVold.MOUNT_FLAG_VISIBLE;
 
     private static SparseArray<String> sStateToEnvironment = new SparseArray<>();
     private static ArrayMap<String, String> sEnvironmentToBroadcast = new ArrayMap<>();
diff --git a/core/java/com/android/internal/os/Zygote.java b/core/java/com/android/internal/os/Zygote.java
index a9350db..4e4b5b8 100644
--- a/core/java/com/android/internal/os/Zygote.java
+++ b/core/java/com/android/internal/os/Zygote.java
@@ -16,14 +16,12 @@
 
 package com.android.internal.os;
 
-
+import android.os.IVold;
 import android.os.Trace;
-import dalvik.system.ZygoteHooks;
 import android.system.ErrnoException;
 import android.system.Os;
 
-import java.lang.reflect.InvocationTargetException;
-import java.lang.reflect.Method;
+import dalvik.system.ZygoteHooks;
 
 /** @hide */
 public final class Zygote {
@@ -52,13 +50,13 @@
     public static final int DEBUG_JAVA_DEBUGGABLE = 1 << 8;
 
     /** No external storage should be mounted. */
-    public static final int MOUNT_EXTERNAL_NONE = 0;
+    public static final int MOUNT_EXTERNAL_NONE = IVold.REMOUNT_MODE_NONE;
     /** Default external storage should be mounted. */
-    public static final int MOUNT_EXTERNAL_DEFAULT = 1;
+    public static final int MOUNT_EXTERNAL_DEFAULT = IVold.REMOUNT_MODE_DEFAULT;
     /** Read-only external storage should be mounted. */
-    public static final int MOUNT_EXTERNAL_READ = 2;
+    public static final int MOUNT_EXTERNAL_READ = IVold.REMOUNT_MODE_READ;
     /** Read-write external storage should be mounted. */
-    public static final int MOUNT_EXTERNAL_WRITE = 3;
+    public static final int MOUNT_EXTERNAL_WRITE = IVold.REMOUNT_MODE_WRITE;
 
     private static final ZygoteHooks VM_HOOKS = new ZygoteHooks();