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

Commit 21fc69e8 authored by Eugene Susla's avatar Eugene Susla Committed by Philip P. Moltmann
Browse files

Introduce and populate PackageManager.FLAG_PERMISSION_USER_VISIBLE

Bug: 124317989
Test: adb shell dumpsys package com.google.android.apps.messaging
and ensure permissions without flag GRANTED_BY_DEFAULT have flag USER_VISIBLE
Change-Id: Ie3129a87a4391cb5a52ccda1b84fa46585850432
parent 3e3019b3
Loading
Loading
Loading
Loading
+3 −1
Original line number Original line Diff line number Diff line
@@ -1642,6 +1642,8 @@ package android.content.pm {
    field public static final int FLAG_PERMISSION_REVOKE_ON_UPGRADE = 8; // 0x8
    field public static final int FLAG_PERMISSION_REVOKE_ON_UPGRADE = 8; // 0x8
    field public static final int FLAG_PERMISSION_SYSTEM_FIXED = 16; // 0x10
    field public static final int FLAG_PERMISSION_SYSTEM_FIXED = 16; // 0x10
    field public static final int FLAG_PERMISSION_USER_FIXED = 2; // 0x2
    field public static final int FLAG_PERMISSION_USER_FIXED = 2; // 0x2
    field public static final int FLAG_PERMISSION_USER_SENSITIVE_WHEN_DENIED = 512; // 0x200
    field public static final int FLAG_PERMISSION_USER_SENSITIVE_WHEN_GRANTED = 256; // 0x100
    field public static final int FLAG_PERMISSION_USER_SET = 1; // 0x1
    field public static final int FLAG_PERMISSION_USER_SET = 1; // 0x1
    field public static final int INSTALL_FAILED_ALREADY_EXISTS = -1; // 0xffffffff
    field public static final int INSTALL_FAILED_ALREADY_EXISTS = -1; // 0xffffffff
    field public static final int INSTALL_FAILED_CONFLICTING_PROVIDER = -13; // 0xfffffff3
    field public static final int INSTALL_FAILED_CONFLICTING_PROVIDER = -13; // 0xfffffff3
@@ -1705,7 +1707,7 @@ package android.content.pm {
    method public void onPermissionsChanged(int);
    method public void onPermissionsChanged(int);
  }
  }
  @IntDef(prefix={"FLAG_PERMISSION_"}, value={android.content.pm.PackageManager.FLAG_PERMISSION_USER_SET, android.content.pm.PackageManager.FLAG_PERMISSION_USER_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_POLICY_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_REVOKE_ON_UPGRADE, android.content.pm.PackageManager.FLAG_PERMISSION_SYSTEM_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface PackageManager.PermissionFlags {
  @IntDef(prefix={"FLAG_PERMISSION_"}, value={android.content.pm.PackageManager.FLAG_PERMISSION_USER_SET, android.content.pm.PackageManager.FLAG_PERMISSION_USER_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_POLICY_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_REVOKE_ON_UPGRADE, android.content.pm.PackageManager.FLAG_PERMISSION_SYSTEM_FIXED, android.content.pm.PackageManager.FLAG_PERMISSION_GRANTED_BY_DEFAULT, android.content.pm.PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_GRANTED}) @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) public static @interface PackageManager.PermissionFlags {
  }
  }
  public class PermissionGroupInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable {
  public class PermissionGroupInfo extends android.content.pm.PackageItemInfo implements android.os.Parcelable {
+20 −0
Original line number Original line Diff line number Diff line
@@ -3040,6 +3040,24 @@ public abstract class PackageManager {
    @TestApi
    @TestApi
    public static final int FLAG_PERMISSION_REVOKE_WHEN_REQUESTED =  1 << 7;
    public static final int FLAG_PERMISSION_REVOKE_WHEN_REQUESTED =  1 << 7;


    /**
     * Permission flag: The permission's usage should be made highly visible to the user
     * when granted.
     *
     * @hide
     */
    @SystemApi
    public static final int FLAG_PERMISSION_USER_SENSITIVE_WHEN_GRANTED =  1 << 8;

    /**
     * Permission flag: The permission's usage should be made highly visible to the user
     * when denied.
     *
     * @hide
     */
    @SystemApi
    public static final int FLAG_PERMISSION_USER_SENSITIVE_WHEN_DENIED =  1 << 9;

    /**
    /**
     * Mask for all permission flags.
     * Mask for all permission flags.
     *
     *
@@ -3755,6 +3773,7 @@ public abstract class PackageManager {
            FLAG_PERMISSION_REVOKE_ON_UPGRADE,
            FLAG_PERMISSION_REVOKE_ON_UPGRADE,
            FLAG_PERMISSION_SYSTEM_FIXED,
            FLAG_PERMISSION_SYSTEM_FIXED,
            FLAG_PERMISSION_GRANTED_BY_DEFAULT,
            FLAG_PERMISSION_GRANTED_BY_DEFAULT,
            FLAG_PERMISSION_USER_SENSITIVE_WHEN_GRANTED,
            /*
            /*
            FLAG_PERMISSION_REVOKE_WHEN_REQUESED
            FLAG_PERMISSION_REVOKE_WHEN_REQUESED
            */
            */
@@ -6542,6 +6561,7 @@ public abstract class PackageManager {
            case FLAG_PERMISSION_USER_FIXED: return "USER_FIXED";
            case FLAG_PERMISSION_USER_FIXED: return "USER_FIXED";
            case FLAG_PERMISSION_REVIEW_REQUIRED: return "REVIEW_REQUIRED";
            case FLAG_PERMISSION_REVIEW_REQUIRED: return "REVIEW_REQUIRED";
            case FLAG_PERMISSION_REVOKE_WHEN_REQUESTED: return "REVOKE_WHEN_REQUESTED";
            case FLAG_PERMISSION_REVOKE_WHEN_REQUESTED: return "REVOKE_WHEN_REQUESTED";
            case FLAG_PERMISSION_USER_SENSITIVE_WHEN_GRANTED: return "USER_SENSITIVE";
            default: return Integer.toString(flag);
            default: return Integer.toString(flag);
        }
        }
    }
    }
+1 −1
Original line number Original line Diff line number Diff line
@@ -255,7 +255,7 @@ public class RoleManagerService extends SystemService implements RoleUserState.C
                        }
                        }
                    });
                    });
            try {
            try {
                result.get(5, TimeUnit.SECONDS);
                result.get(30, TimeUnit.SECONDS);
                userState.setPackagesHash(packagesHash);
                userState.setPackagesHash(packagesHash);
            } catch (InterruptedException | ExecutionException | TimeoutException e) {
            } catch (InterruptedException | ExecutionException | TimeoutException e) {
                Slog.e(LOG_TAG, "Failed to grant defaults for user " + userId, e);
                Slog.e(LOG_TAG, "Failed to grant defaults for user " + userId, e);