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/Android.mk b/Android.mk
index 49d58c2..1fc560c 100644
--- a/Android.mk
+++ b/Android.mk
@@ -37,6 +37,7 @@
 	EncryptInplace.cpp \
 	MetadataCrypt.cpp \
 	binder/android/os/IVold.aidl \
+	binder/android/os/IVoldListener.aidl \
 	VoldNativeService.cpp \
 
 common_c_includes := \
@@ -109,6 +110,8 @@
 LOCAL_CONLYFLAGS := $(vold_conlyflags)
 LOCAL_REQUIRED_MODULES := $(required_modules)
 
+LOCAL_AIDL_INCLUDES := $(LOCAL_PATH)/binder
+
 include $(BUILD_STATIC_LIBRARY)
 
 include $(CLEAR_VARS)