Merge "Extend permission pregrant tracing utility" into sc-dev
This commit is contained in:
@@ -79,6 +79,9 @@ import java.util.Set;
|
||||
public final class PermissionManager {
|
||||
private static final String LOG_TAG = PermissionManager.class.getName();
|
||||
|
||||
/** @hide */
|
||||
public static final String LOG_TAG_TRACE_GRANTS = "PermissionGrantTrace";
|
||||
|
||||
/** @hide */
|
||||
public static final String KILL_APP_REASON_PERMISSIONS_REVOKED =
|
||||
"permissions revoked";
|
||||
@@ -103,6 +106,8 @@ public final class PermissionManager {
|
||||
* Note: Changing this won't do anything on its own - you should also change the filtering in
|
||||
* {@link #shouldTraceGrant}.
|
||||
*
|
||||
* See log output for tag {@link #LOG_TAG_TRACE_GRANTS}
|
||||
*
|
||||
* @hide
|
||||
*/
|
||||
public static final boolean DEBUG_TRACE_GRANTS = false;
|
||||
@@ -319,8 +324,10 @@ public final class PermissionManager {
|
||||
}
|
||||
|
||||
/** @hide */
|
||||
public static boolean shouldTraceGrant(String packageName, String permissionName, int userId) {
|
||||
public static boolean shouldTraceGrant(
|
||||
@NonNull String packageName, @NonNull String permissionName, int userId) {
|
||||
// To be modified when debugging
|
||||
// template: if ("".equals(packageName) && "".equals(permissionName)) return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -348,7 +355,8 @@ public final class PermissionManager {
|
||||
@NonNull String permissionName, @NonNull UserHandle user) {
|
||||
if (DEBUG_TRACE_GRANTS
|
||||
&& shouldTraceGrant(packageName, permissionName, user.getIdentifier())) {
|
||||
Log.i(LOG_TAG, "App " + mContext.getPackageName() + " is granting " + packageName + " "
|
||||
Log.i(LOG_TAG_TRACE_GRANTS, "App " + mContext.getPackageName() + " is granting "
|
||||
+ packageName + " "
|
||||
+ permissionName + " for user " + user.getIdentifier(), new RuntimeException());
|
||||
}
|
||||
try {
|
||||
|
||||
@@ -1729,6 +1729,14 @@ final class DefaultPermissionGrantPolicy {
|
||||
@Override
|
||||
public void grantPermission(@NonNull String permission, @NonNull PackageInfo pkg,
|
||||
@NonNull UserHandle user) {
|
||||
if (PermissionManager.DEBUG_TRACE_GRANTS
|
||||
&& PermissionManager.shouldTraceGrant(
|
||||
pkg.packageName, permission, user.getIdentifier())) {
|
||||
Log.i(PermissionManager.LOG_TAG_TRACE_GRANTS,
|
||||
"PregrantPolicy is granting " + pkg.packageName + " "
|
||||
+ permission + " for user " + user.getIdentifier(),
|
||||
new RuntimeException());
|
||||
}
|
||||
PermissionState state = getPermissionState(permission, pkg, user);
|
||||
state.initGranted();
|
||||
state.newGranted = true;
|
||||
|
||||
@@ -1338,7 +1338,7 @@ public class PermissionManagerService extends IPermissionManager.Stub {
|
||||
boolean overridePolicy, int callingUid, final int userId, PermissionCallback callback) {
|
||||
if (PermissionManager.DEBUG_TRACE_GRANTS
|
||||
&& PermissionManager.shouldTraceGrant(packageName, permName, userId)) {
|
||||
Log.i(TAG, "System is granting " + packageName + " "
|
||||
Log.i(PermissionManager.LOG_TAG_TRACE_GRANTS, "System is granting " + packageName + " "
|
||||
+ permName + " for user " + userId + " on behalf of uid " + callingUid
|
||||
+ " " + mPackageManagerInt.getNameForUid(callingUid),
|
||||
new RuntimeException());
|
||||
|
||||
Reference in New Issue
Block a user