Merge "Implement permission revoke with reason" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
cee666eba9
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user