Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 14c9afbe authored by Eugene Susla's avatar Eugene Susla Committed by Android (Google) Code Review
Browse files

Merge "Extend permission pregrant tracing utility" into sc-dev

parents 4af392fe 20550021
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -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 {
+8 −0
Original line number Diff line number Diff line
@@ -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;
+1 −1
Original line number Diff line number Diff line
@@ -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());