summaryrefslogtreecommitdiff
path: root/core/java/android/app/ApplicationPackageManager.java
diff options
context:
space:
mode:
authorEvan Severson <evanseverson@google.com>2020-06-22 16:45:03 -0700
committerEvan Severson <evanseverson@google.com>2020-06-24 10:03:54 -0700
commitaacd48b0bc45d2d840fdd8820c5eb1cc95ecc31c (patch)
treef5b400792f54d01f4a4909a92558fdb7bc181812 /core/java/android/app/ApplicationPackageManager.java
parentdab5588e84d6ff95b6514493d897f450672c9c0e (diff)
Implement permission revoke with reason
The reason is passed to app exit info so a given app can get more information about why their app was killed in the event of permission revoke. Test: atest RevokePermissionTest ActivityManagerAppExitInfoTest#testPermissionChangeWithReason Fixes: 159659620 Change-Id: Id711667eb2c1579ecb2a1b83a62af3cc7862d5f6
Diffstat (limited to 'core/java/android/app/ApplicationPackageManager.java')
-rw-r--r--core/java/android/app/ApplicationPackageManager.java17
1 files changed, 9 insertions, 8 deletions
diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java
index 6f8233d5de9b..c9031b711657 100644
--- a/core/java/android/app/ApplicationPackageManager.java
+++ b/core/java/android/app/ApplicationPackageManager.java
@@ -763,26 +763,27 @@ public class ApplicationPackageManager extends PackageManager {
@Override
public void revokeRuntimePermission(String packageName, String permName, UserHandle user) {
+ revokeRuntimePermission(packageName, permName, user, null);
+ }
+
+ @Override
+ public void revokeRuntimePermission(String packageName, String permName, UserHandle user,
+ String reason) {
if (DEBUG_TRACE_PERMISSION_UPDATES
&& shouldTraceGrant(packageName, permName, user.getIdentifier())) {
Log.i(TAG, "App " + mContext.getPackageName() + " is revoking " + packageName + " "
- + permName + " for user " + user.getIdentifier(), new RuntimeException());
+ + permName + " for user " + user.getIdentifier() + " with reason " + reason,
+ new RuntimeException());
}
try {
mPermissionManager
- .revokeRuntimePermission(packageName, permName, user.getIdentifier());
+ .revokeRuntimePermission(packageName, permName, user.getIdentifier(), reason);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
}
@Override
- public void revokeRuntimePermission(String packageName, String permName, UserHandle user,
- String reason) {
- // TODO evanseverson: impl
- }
-
- @Override
public int getPermissionFlags(String permName, String packageName, UserHandle user) {
try {
return mPermissionManager