summaryrefslogtreecommitdiffstats
path: root/services/devicepolicy
diff options
context:
space:
mode:
authorRobin Lee <rgl@google.com>2015-06-19 18:11:59 -0700
committerRobin Lee <rgl@google.com>2015-06-22 11:11:13 -0700
commitdeee7735d81107380e8af5e35d4339e85530ee98 (patch)
tree6d6037ff4cb82ab7a253005126ab57aca2484cf1 /services/devicepolicy
parent1035833fc6bcbd970807720926d8b93957775dbe (diff)
downloadframeworks_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.java14
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);