Add new ExternalVibratorService.

This lets services outside of the vibrator service (and outside of
system_server) take control of the vibrator hardware. We still apply
policy in vibrator service, however, and can ask them to mute their
operations so we can give more critical haptic feedback when necessary.

Bug: 111457573
Test: manual
Change-Id: Ib7d06aa5940790cac627499acb23e4f0bda1b035
diff --git a/Android.bp b/Android.bp
index d4a04cc..9584767 100644
--- a/Android.bp
+++ b/Android.bp
@@ -271,6 +271,7 @@
         "core/java/android/os/IThermalService.aidl",
         "core/java/android/os/IUpdateLock.aidl",
         "core/java/android/os/IUserManager.aidl",
+        ":libvibrator_aidl",
         "core/java/android/os/IVibratorService.aidl",
         "core/java/android/os/storage/IStorageManager.aidl",
         "core/java/android/os/storage/IStorageEventListener.aidl",
@@ -794,6 +795,14 @@
     ],
 }
 
+filegroup {
+    name: "libvibrator_aidl",
+    srcs: [
+        "core/java/android/os/IExternalVibrationController.aidl",
+        "core/java/android/os/IExternalVibratorService.aidl",
+    ],
+}
+
 java_library {
     name: "framework",
     defaults: ["framework-defaults"],