diff options
author | Robin Lee <rgl@google.com> | 2015-06-19 18:11:59 -0700 |
---|---|---|
committer | Robin Lee <rgl@google.com> | 2015-06-22 11:11:13 -0700 |
commit | deee7735d81107380e8af5e35d4339e85530ee98 (patch) | |
tree | 6d6037ff4cb82ab7a253005126ab57aca2484cf1 /services/devicepolicy | |
parent | 1035833fc6bcbd970807720926d8b93957775dbe (diff) | |
download | frameworks_base-deee7735d81107380e8af5e35d4339e85530ee98.zip frameworks_base-deee7735d81107380e8af5e35d4339e85530ee98.tar.gz frameworks_base-deee7735d81107380e8af5e35d4339e85530ee98.tar.bz2 |
Let device owners handle onChoosePrivateKey
Bug: 21959745
Change-Id: Ifad3901015937d2ea700124bb5f61982cd580ad8
Diffstat (limited to 'services/devicepolicy')
-rw-r--r-- | services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index ea66a04..2cddcf7 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -3229,15 +3229,21 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { } final UserHandle caller = Binder.getCallingUserHandle(); - final ComponentName profileOwner = getProfileOwner(caller.getIdentifier()); - - if (profileOwner == null) { + // If there is a profile owner, redirect to that; otherwise query the device owner. + ComponentName aliasChooser = getProfileOwner(caller.getIdentifier()); + if (aliasChooser == null && caller.isOwner()) { + ActiveAdmin deviceOwnerAdmin = getDeviceOwnerAdmin(); + if (deviceOwnerAdmin != null) { + aliasChooser = deviceOwnerAdmin.info.getComponent(); + } + } + if (aliasChooser == null) { sendPrivateKeyAliasResponse(null, response); return; } Intent intent = new Intent(DeviceAdminReceiver.ACTION_CHOOSE_PRIVATE_KEY_ALIAS); - intent.setComponent(profileOwner); + intent.setComponent(aliasChooser); intent.putExtra(DeviceAdminReceiver.EXTRA_CHOOSE_PRIVATE_KEY_SENDER_UID, uid); intent.putExtra(DeviceAdminReceiver.EXTRA_CHOOSE_PRIVATE_KEY_URI, uri); intent.putExtra(DeviceAdminReceiver.EXTRA_CHOOSE_PRIVATE_KEY_ALIAS, alias); |