Initial support for reading the enrollment metadata

- Defines schema for enrollment apps to publish metadata for the search
  keyphrase. This metadata consists of an ID, a user visible keyphrase,
  and the target package to handle the keyphrase, when it triggers.
- Reads the metadata and populates the KeyphraseInfo object for access via
  the VoiceInteractionService
- Adds permission and intent action for the enrollment app.
  The enrollment app needs to be a system app protected with the
  MANAGE_VOICE_KEYPHRASES permission and the activity performing the
  enrollment needs to handle the ACTION_MANAGE_VOICE_KEYPHRASES
- The keyphrase info currently stores an ID - that's for internal
  bookkeeping only, a keyphrase text - that's used by the public APIs,
  and a list of supported locales, which isn't exposed but is used while
  indicating if hardware hotword is available for a particular keyphrase
  in a language or not.

Change-Id: Ibe6c52a5a3eecfd74c4a8382713a35eb88d38df9
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index 9e5068f..44c41b82 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -2070,6 +2070,14 @@
         android:description="@string/permdesc_bindVoiceInteraction"
         android:protectionLevel="signature" />
 
+    <!-- Must be required by hotword enrollment application,
+         to ensure that only the system can interact with it.
+         @hide <p>Not for use by third-party applications.</p> -->
+    <permission android:name="android.permission.MANAGE_VOICE_KEYPHRASES"
+        android:label="@string/permlab_manageVoiceKeyphrases"
+        android:description="@string/permdesc_manageVoiceKeyphrases"
+        android:protectionLevel="signature|system" />
+
     <!-- Must be required by a {@link com.android.media.remotedisplay.RemoteDisplayProvider},
          to ensure that only the system can bind to it.
          @hide -->