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

Commit 7794d109 authored by Eugene Susla's avatar Eugene Susla
Browse files

Introduce permission flag for whitelisting permission from auto-revoke

This will be the flag set for granted permissions when we want to exempt
it from automatic revocation.

Test: lint/presubmit
Bug: 146513245
Change-Id: I21b6ecb62726643de635d0d5197f7f889a2ab87a
parent 99e390e9
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -2203,6 +2203,8 @@ package android.content.pm {
    field public static final String FEATURE_TELEPHONY_CARRIERLOCK = "android.hardware.telephony.carrierlock";
    field public static final int FLAGS_PERMISSION_RESERVED_PERMISSIONCONTROLLER = -268435456; // 0xf0000000
    field public static final int FLAG_PERMISSION_APPLY_RESTRICTION = 16384; // 0x4000
    field public static final int FLAG_PERMISSION_DONT_AUTO_REVOKE = 131072; // 0x20000
    field public static final int FLAG_PERMISSION_DONT_AUTO_REVOKE_USER_SET = 262144; // 0x40000
    field public static final int FLAG_PERMISSION_GRANTED_BY_DEFAULT = 32; // 0x20
    field public static final int FLAG_PERMISSION_GRANTED_BY_ROLE = 32768; // 0x8000
    field public static final int FLAG_PERMISSION_ONE_TIME = 65536; // 0x10000
@@ -2286,7 +2288,7 @@ package android.content.pm {
    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, android.content.pm.PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_GRANTED, android.content.pm.PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_DENIED, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_UPGRADE_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_INSTALLER_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_APPLY_RESTRICTION, android.content.pm.PackageManager.FLAG_PERMISSION_GRANTED_BY_ROLE, android.content.pm.PackageManager.FLAG_PERMISSION_REVOKED_COMPAT, android.content.pm.PackageManager.FLAG_PERMISSION_ONE_TIME}) @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, android.content.pm.PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_DENIED, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_UPGRADE_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_SYSTEM_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_RESTRICTION_INSTALLER_EXEMPT, android.content.pm.PackageManager.FLAG_PERMISSION_APPLY_RESTRICTION, android.content.pm.PackageManager.FLAG_PERMISSION_GRANTED_BY_ROLE, android.content.pm.PackageManager.FLAG_PERMISSION_REVOKED_COMPAT, android.content.pm.PackageManager.FLAG_PERMISSION_ONE_TIME, android.content.pm.PackageManager.FLAG_PERMISSION_DONT_AUTO_REVOKE}) @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 {
+23 −2
Original line number Diff line number Diff line
@@ -3344,6 +3344,22 @@ public abstract class PackageManager {
    @SystemApi
    public static final int FLAG_PERMISSION_ONE_TIME = 1 << 16;

    /**
     * Permission flag: The permission is whitelisted to not be auto-revoked when app goes unused.
     *
     * @hide
     */
    @SystemApi
    public static final int FLAG_PERMISSION_DONT_AUTO_REVOKE = 1 << 17;

    /**
     * Permission flag: Whether {@link #FLAG_PERMISSION_DONT_AUTO_REVOKE} state was set by user.
     *
     * @hide
     */
    @SystemApi
    public static final int FLAG_PERMISSION_DONT_AUTO_REVOKE_USER_SET = 1 << 18;

    /**
     * Permission flags: Reserved for use by the permission controller.
     *
@@ -3395,7 +3411,9 @@ public abstract class PackageManager {
            | FLAG_PERMISSION_APPLY_RESTRICTION
            | FLAG_PERMISSION_GRANTED_BY_ROLE
            | FLAG_PERMISSION_REVOKED_COMPAT
            | FLAG_PERMISSION_ONE_TIME;
            | FLAG_PERMISSION_ONE_TIME
            | FLAG_PERMISSION_DONT_AUTO_REVOKE
            | FLAG_PERMISSION_DONT_AUTO_REVOKE_USER_SET;

    /**
     * Injected activity in app that forwards user to setting activity of that app.
@@ -4218,7 +4236,8 @@ public abstract class PackageManager {
            FLAG_PERMISSION_APPLY_RESTRICTION,
            FLAG_PERMISSION_GRANTED_BY_ROLE,
            FLAG_PERMISSION_REVOKED_COMPAT,
            FLAG_PERMISSION_ONE_TIME
            FLAG_PERMISSION_ONE_TIME,
            FLAG_PERMISSION_DONT_AUTO_REVOKE
    })
    @Retention(RetentionPolicy.SOURCE)
    public @interface PermissionFlags {}
@@ -7354,6 +7373,8 @@ public abstract class PackageManager {
            case FLAG_PERMISSION_GRANTED_BY_ROLE: return "GRANTED_BY_ROLE";
            case FLAG_PERMISSION_REVOKED_COMPAT: return "REVOKED_COMPAT";
            case FLAG_PERMISSION_ONE_TIME: return "ONE_TIME";
            case FLAG_PERMISSION_DONT_AUTO_REVOKE: return "DONT_AUTO_REVOKE";
            case FLAG_PERMISSION_DONT_AUTO_REVOKE_USER_SET: return "DONT_AUTO_REVOKE_USER_SET";
            default: return Integer.toString(flag);
        }
    }