From bc0a94055c77b6739ffa908aae9189fdeadb83f4 Mon Sep 17 00:00:00 2001 From: Daichi Hirono Date: Thu, 3 Dec 2015 16:57:12 +0900 Subject: [PATCH] Grant USB device permission for android.media UID always. The UID is used by MtpDocumentsProvider that is a system component and needs to access MTP devices. BUG=25983848 Change-Id: Iaa20a849cb9e7a86bde6c5bf8abbb15e65ced6c3 --- .../java/com/android/server/usb/UsbSettingsManager.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/services/usb/java/com/android/server/usb/UsbSettingsManager.java b/services/usb/java/com/android/server/usb/UsbSettingsManager.java index 154cbd30d836e..4786d11fb4b40 100644 --- a/services/usb/java/com/android/server/usb/UsbSettingsManager.java +++ b/services/usb/java/com/android/server/usb/UsbSettingsManager.java @@ -984,7 +984,14 @@ class UsbSettingsManager { public boolean hasPermission(UsbDevice device) { synchronized (mLock) { int uid = Binder.getCallingUid(); - if (uid == Process.SYSTEM_UID || mDisablePermissionDialogs) { + int androidMediaUid; + try { + androidMediaUid = mPackageManager.getApplicationInfo("com.android.mtp", 0).uid; + } catch (NameNotFoundException e) { + androidMediaUid = -1; + } + if (uid == Process.SYSTEM_UID || UserHandle.getAppId(uid) == androidMediaUid || + mDisablePermissionDialogs) { return true; } SparseBooleanArray uidList = mDevicePermissionMap.get(device.getDeviceName());