summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Grafov <pgrafov@google.com>2021-04-21 15:48:45 +0100
committerPavel Grafov <pgrafov@google.com>2021-04-21 15:48:45 +0100
commit67f11e65cab3bcccacd059be9635700096716466 (patch)
tree0c808acfe5f047d76d76a9ad3b185c8e41b26e3c
parent952b75ea3f537768da4a104a50b1d8ab56486c13 (diff)
Make sure DPC knows if revoke fails
Bug: 183098396 Test: atest MixedDeviceOwnerTest#testKeyManagement Change-Id: I89b51a1fb4be3b53eb46a7c194924b5255cd262b
-rw-r--r--keystore/java/android/security/IKeyChainService.aidl3
-rw-r--r--services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java3
2 files changed, 3 insertions, 3 deletions
diff --git a/keystore/java/android/security/IKeyChainService.aidl b/keystore/java/android/security/IKeyChainService.aidl
index 091f5795784f..6d3d84c75518 100644
--- a/keystore/java/android/security/IKeyChainService.aidl
+++ b/keystore/java/android/security/IKeyChainService.aidl
@@ -66,7 +66,8 @@ interface IKeyChainService {
boolean isCredentialManagementApp(String packageName);
// APIs used by KeyChainActivity
- void setGrant(int uid, String alias, boolean value);
+ // setGrant may fail with value=false when ungrant operation fails in KeyStore.
+ boolean setGrant(int uid, String alias, boolean value);
boolean hasGrant(int uid, String alias);
// API used by Wifi
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index 20c56fb30ec2..8678d9d50087 100644
--- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -5657,8 +5657,7 @@ public class DevicePolicyManagerService extends BaseIDevicePolicyManager {
try (KeyChainConnection keyChainConnection =
KeyChain.bindAsUser(mContext, userHandle)) {
IKeyChainService keyChain = keyChainConnection.getService();
- keyChain.setGrant(granteeUid, alias, hasGrant);
- return true;
+ return keyChain.setGrant(granteeUid, alias, hasGrant);
} catch (RemoteException e) {
Slogf.e(LOG_TAG, "Setting grant for package.", e);
return false;