diff options
| author | Evan Severson <evanseverson@google.com> | 2020-06-22 16:45:03 -0700 |
|---|---|---|
| committer | Evan Severson <evanseverson@google.com> | 2020-06-24 10:03:54 -0700 |
| commit | aacd48b0bc45d2d840fdd8820c5eb1cc95ecc31c (patch) | |
| tree | f5b400792f54d01f4a4909a92558fdb7bc181812 /core/java/android/app/ApplicationPackageManager.java | |
| parent | dab5588e84d6ff95b6514493d897f450672c9c0e (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.java | 17 |
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 |
