Move unsolicited vold events to Binder.
Create IVoldListener and move most unsolicited vold events over to
this new interface. The remaining events will be routed through
method-specific listeners instead of a global one.
Move to upstream DISALLOW_COPY_AND_ASSIGN macro.
Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.DirectBootHostTest
Test: cts-tradefed run commandAndExit cts-dev -m CtsAppSecurityHostTestCases -t android.appsecurity.cts.AdoptableHostTest
Test: cts-tradefed run commandAndExit cts-dev -m CtsOsTestCases -t android.os.storage.cts.StorageManagerTest
Bug: 13758960
Change-Id: Ib9293487db2d525a76b9b9c2e9ac18d98601c6cf
diff --git a/binder/android/os/IVold.aidl b/binder/android/os/IVold.aidl
index e8a8f2a..0a05e6e 100644
--- a/binder/android/os/IVold.aidl
+++ b/binder/android/os/IVold.aidl
@@ -16,8 +16,12 @@
package android.os;
+import android.os.IVoldListener;
+
/** {@hide} */
interface IVold {
+ void setListener(IVoldListener listener);
+
void reset();
void shutdown();
void mountAll();
@@ -116,19 +120,19 @@
const int REMOUNT_MODE_READ = 2;
const int REMOUNT_MODE_WRITE = 3;
- const int STATE_UNMOUNTED = 0;
- const int STATE_CHECKING = 1;
- const int STATE_MOUNTED = 2;
- const int STATE_MOUNTED_READ_ONLY = 3;
- const int STATE_FORMATTING = 4;
- const int STATE_EJECTING = 5;
- const int STATE_UNMOUNTABLE = 6;
- const int STATE_REMOVED = 7;
- const int STATE_BAD_REMOVAL = 8;
+ const int VOLUME_STATE_UNMOUNTED = 0;
+ const int VOLUME_STATE_CHECKING = 1;
+ const int VOLUME_STATE_MOUNTED = 2;
+ const int VOLUME_STATE_MOUNTED_READ_ONLY = 3;
+ const int VOLUME_STATE_FORMATTING = 4;
+ const int VOLUME_STATE_EJECTING = 5;
+ const int VOLUME_STATE_UNMOUNTABLE = 6;
+ const int VOLUME_STATE_REMOVED = 7;
+ const int VOLUME_STATE_BAD_REMOVAL = 8;
- const int TYPE_PUBLIC = 0;
- const int TYPE_PRIVATE = 1;
- const int TYPE_EMULATED = 2;
- const int TYPE_ASEC = 3;
- const int TYPE_OBB = 4;
+ const int VOLUME_TYPE_PUBLIC = 0;
+ const int VOLUME_TYPE_PRIVATE = 1;
+ const int VOLUME_TYPE_EMULATED = 2;
+ const int VOLUME_TYPE_ASEC = 3;
+ const int VOLUME_TYPE_OBB = 4;
}
diff --git a/binder/android/os/IVoldListener.aidl b/binder/android/os/IVoldListener.aidl
new file mode 100644
index 0000000..0dcfc04
--- /dev/null
+++ b/binder/android/os/IVoldListener.aidl
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.os;
+
+/** {@hide} */
+oneway interface IVoldListener {
+ void onDiskCreated(@utf8InCpp String diskId, int flags);
+ void onDiskScanned(@utf8InCpp String diskId);
+ void onDiskMetadataChanged(@utf8InCpp String diskId,
+ long sizeBytes, @utf8InCpp String label, @utf8InCpp String sysPath);
+ void onDiskDestroyed(@utf8InCpp String diskId);
+
+ void onVolumeCreated(@utf8InCpp String volId,
+ int type, @utf8InCpp String diskId, @utf8InCpp String partGuid);
+ void onVolumeStateChanged(@utf8InCpp String volId, int state);
+ void onVolumeMetadataChanged(@utf8InCpp String volId,
+ @utf8InCpp String fsType, @utf8InCpp String fsUuid, @utf8InCpp String fsLabel);
+ void onVolumePathChanged(@utf8InCpp String volId,
+ @utf8InCpp String path);
+ void onVolumeInternalPathChanged(@utf8InCpp String volId,
+ @utf8InCpp String internalPath);
+ void onVolumeDestroyed(@utf8InCpp String volId);
+}