Add separate permission and group for access to the MTP USB driver

Since the "usb" group and ACCESS_USB permission will be used by regular apps
to access USB devices in host mode, we need a separate permission for the
device side MTP driver.

Change-Id: Id03f7c4f3d2712c489b4b74cf17a72a182084501
Signed-off-by: Mike Lockwood <lockwood@android.com>
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index aa5be76..1d43442 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -470,6 +470,15 @@
         android:label="@string/permlab_accessUsb"
         android:description="@string/permdesc_accessUsb" />
 
+    <!-- Allows an application to access the MTP USB kernel driver.
+         For use only by the device side MTP implementation.
+         @hide -->
+    <permission android:name="android.permission.ACCESS_MTP"
+        android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
+        android:protectionLevel="signatureOrSystem"
+        android:label="@string/permlab_accessMtp"
+        android:description="@string/permdesc_accessMtp" />
+
     <!-- Allows access to hardware peripherals.  Intended only for hardware testing -->
     <permission android:name="android.permission.HARDWARE_TEST"
         android:permissionGroup="android.permission-group.HARDWARE_CONTROLS"
diff --git a/core/res/res/values/strings.xml b/core/res/res/values/strings.xml
index 7c6dbe3..d005ed9 100755
--- a/core/res/res/values/strings.xml
+++ b/core/res/res/values/strings.xml
@@ -1030,6 +1030,11 @@
     <string name="permdesc_accessUsb">Allows the application to access USB devices.</string>
 
     <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+    <string name="permlab_accessMtp">implement MTP protocol</string>
+    <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
+    <string name="permdesc_accessMtp">Allows access to the kernel MTP driver to implement the MTP USB protocol.</string>
+
+    <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permlab_hardware_test">test hardware</string>
     <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. -->
     <string name="permdesc_hardware_test">Allows the application to control
diff --git a/data/etc/platform.xml b/data/etc/platform.xml
index f458576..8555be0 100644
--- a/data/etc/platform.xml
+++ b/data/etc/platform.xml
@@ -66,6 +66,10 @@
         <group gid="usb" />
     </permission>
 
+    <permission name="android.permission.ACCESS_MTP" >
+        <group gid="mtp" />
+    </permission>
+
     <!-- The group that /cache belongs to, linked to the permission
          set on the applications that can access /cache -->
     <permission name="android.permission.ACCESS_CACHE_FILESYSTEM" >