Merge "Implement permission revoke with reason" into rvc-dev

This commit is contained in:
Evan Severson
2020-06-24 23:02:46 +00:00
committed by Android (Google) Code Review
8 changed files with 62 additions and 36 deletions

View File

@@ -763,23 +763,24 @@ public class ApplicationPackageManager extends PackageManager {
@Override
public void revokeRuntimePermission(String packageName, String permName, UserHandle user) {
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());
}
try {
mPermissionManager
.revokeRuntimePermission(packageName, permName, user.getIdentifier());
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
revokeRuntimePermission(packageName, permName, user, null);
}
@Override
public void revokeRuntimePermission(String packageName, String permName, UserHandle user,
String reason) {
// TODO evanseverson: impl
if (DEBUG_TRACE_PERMISSION_UPDATES
&& shouldTraceGrant(packageName, permName, user.getIdentifier())) {
Log.i(TAG, "App " + mContext.getPackageName() + " is revoking " + packageName + " "
+ permName + " for user " + user.getIdentifier() + " with reason " + reason,
new RuntimeException());
}
try {
mPermissionManager
.revokeRuntimePermission(packageName, permName, user.getIdentifier(), reason);
} catch (RemoteException e) {
throw e.rethrowFromSystemServer();
}
}
@Override

View File

@@ -677,4 +677,10 @@ interface IActivityManager {
* Return whether the app freezer is supported (true) or not (false) by this system.
*/
boolean isAppFreezerSupported();
/**
* Kills uid with the reason of permission change.
*/
void killUidForPermissionChange(int appId, int userId, String reason);
}

View File

@@ -294,7 +294,7 @@ public final class UiAutomationConnection extends IUiAutomationConnection.Stub {
}
final long identity = Binder.clearCallingIdentity();
try {
mPermissionManager.revokeRuntimePermission(packageName, permission, userId);
mPermissionManager.revokeRuntimePermission(packageName, permission, userId, null);
} finally {
Binder.restoreCallingIdentity(identity);
}

View File

@@ -71,7 +71,7 @@ interface IPermissionManager {
void grantRuntimePermission(String packageName, String permName, int userId);
void revokeRuntimePermission(String packageName, String permName, int userId);
void revokeRuntimePermission(String packageName, String permName, int userId, String reason);
void resetRuntimePermissions();