Loading api/system-current.txt +4 −2 Original line number Diff line number Diff line Loading @@ -1644,6 +1644,8 @@ package android.content.pm { 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_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 INSTALL_FAILED_ALREADY_EXISTS = -1; // 0xffffffff field public static final int INSTALL_FAILED_CONFLICTING_PROVIDER = -13; // 0xfffffff3 Loading Loading @@ -1689,7 +1691,7 @@ package android.content.pm { field public static final int INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_UNDEFINED = 0; // 0x0 field public static final int INTENT_FILTER_VERIFICATION_FAILURE = -1; // 0xffffffff field public static final int INTENT_FILTER_VERIFICATION_SUCCESS = 1; // 0x1 field public static final int MASK_PERMISSION_FLAGS = 255; // 0xff field @Deprecated public static final int MASK_PERMISSION_FLAGS = 255; // 0xff field public static final int MATCH_ANY_USER = 4194304; // 0x400000 field public static final int MATCH_FACTORY_ONLY = 2097152; // 0x200000 field public static final int MATCH_INSTANT = 8388608; // 0x800000 Loading @@ -1707,7 +1709,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}) @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}) @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 { Loading core/java/android/content/pm/PackageManager.java +35 −1 Original line number Diff line number Diff line Loading @@ -3047,13 +3047,43 @@ public abstract class PackageManager { public static final int FLAG_PERMISSION_REVOKE_WHEN_REQUESTED = 1 << 7; /** * Mask for all permission flags. * 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 present in Android P * * @deprecated This constant does not contain useful information and should never have been * exposed. When checking permission flags always flag each flag explicitly and ignore all * flags that do not matter for this particular code. * * @hide */ @Deprecated @SystemApi public static final int MASK_PERMISSION_FLAGS = 0xFF; /** * Mask for all permission flags. * * @hide */ public static final int MASK_PERMISSION_FLAGS_ALL = 0x3FF; /** * Injected activity in app that forwards user to setting activity of that app. * Loading Loading @@ -3761,6 +3791,8 @@ public abstract class PackageManager { FLAG_PERMISSION_REVOKE_ON_UPGRADE, FLAG_PERMISSION_SYSTEM_FIXED, FLAG_PERMISSION_GRANTED_BY_DEFAULT, FLAG_PERMISSION_USER_SENSITIVE_WHEN_GRANTED, FLAG_PERMISSION_USER_SENSITIVE_WHEN_DENIED, /* FLAG_PERMISSION_REVOKE_WHEN_REQUESED */ Loading Loading @@ -6548,6 +6580,8 @@ public abstract class PackageManager { case FLAG_PERMISSION_USER_FIXED: return "USER_FIXED"; case FLAG_PERMISSION_REVIEW_REQUIRED: return "REVIEW_REQUIRED"; case FLAG_PERMISSION_REVOKE_WHEN_REQUESTED: return "REVOKE_WHEN_REQUESTED"; case FLAG_PERMISSION_USER_SENSITIVE_WHEN_GRANTED: return "USER_SENSITIVE_WHEN_GRANTED"; case FLAG_PERMISSION_USER_SENSITIVE_WHEN_DENIED: return "USER_SENSITIVE_WHEN_DENIED"; default: return Integer.toString(flag); } } Loading services/core/java/com/android/server/pm/Settings.java +6 −6 Original line number Diff line number Diff line Loading @@ -979,7 +979,7 @@ public final class Settings { // Try to revoke as an install permission which is for all users. // The package is gone - no need to keep flags for applying policy. permissionsState.updatePermissionFlags(bp, userId, PackageManager.MASK_PERMISSION_FLAGS, 0); PackageManager.MASK_PERMISSION_FLAGS_ALL, 0); if (permissionsState.revokeInstallPermission(bp) == PermissionsState.PERMISSION_OPERATION_SUCCESS_GIDS_CHANGED) { Loading Loading @@ -2165,7 +2165,7 @@ public final class Settings { XmlUtils.skipCurrentTag(parser); } else { permissionsState.updatePermissionFlags(bp, UserHandle.USER_ALL, PackageManager.MASK_PERMISSION_FLAGS, flags); PackageManager.MASK_PERMISSION_FLAGS_ALL, flags); } } else { if (permissionsState.revokeInstallPermission(bp) == Loading @@ -2174,7 +2174,7 @@ public final class Settings { XmlUtils.skipCurrentTag(parser); } else { permissionsState.updatePermissionFlags(bp, UserHandle.USER_ALL, PackageManager.MASK_PERMISSION_FLAGS, flags); PackageManager.MASK_PERMISSION_FLAGS_ALL, flags); } } } else { Loading Loading @@ -5240,7 +5240,7 @@ public final class Settings { if (bp != null) { permissionsState.revokeRuntimePermission(bp, userId); permissionsState.updatePermissionFlags(bp, userId, PackageManager.MASK_PERMISSION_FLAGS, 0); PackageManager.MASK_PERMISSION_FLAGS_ALL, 0); } } } Loading Loading @@ -5354,10 +5354,10 @@ public final class Settings { if (granted) { permissionsState.grantRuntimePermission(bp, userId); permissionsState.updatePermissionFlags(bp, userId, PackageManager.MASK_PERMISSION_FLAGS, flags); PackageManager.MASK_PERMISSION_FLAGS_ALL, flags); } else { permissionsState.updatePermissionFlags(bp, userId, PackageManager.MASK_PERMISSION_FLAGS, flags); PackageManager.MASK_PERMISSION_FLAGS_ALL, flags); } } break; Loading services/core/java/com/android/server/pm/permission/PermissionManagerService.java +8 −8 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ import static android.content.pm.PackageManager.FLAG_PERMISSION_REVOKE_WHEN_REQU import static android.content.pm.PackageManager.FLAG_PERMISSION_SYSTEM_FIXED; import static android.content.pm.PackageManager.FLAG_PERMISSION_USER_FIXED; import static android.content.pm.PackageManager.FLAG_PERMISSION_USER_SET; import static android.content.pm.PackageManager.MASK_PERMISSION_FLAGS; import static android.content.pm.PackageManager.MASK_PERMISSION_FLAGS_ALL; import static android.os.Trace.TRACE_TAG_PACKAGE_MANAGER; import static android.os.UserHandle.getAppId; import static android.os.UserHandle.getUid; Loading Loading @@ -980,7 +980,7 @@ public class PermissionManagerService { // Revoke the runtime permission and clear the flags. origPermissions.revokeRuntimePermission(bp, userId); origPermissions.updatePermissionFlags(bp, userId, PackageManager.MASK_PERMISSION_FLAGS, 0); PackageManager.MASK_PERMISSION_FLAGS_ALL, 0); // If we revoked a permission permission, we have to write. updatedUserIds = ArrayUtils.appendInt( updatedUserIds, userId); Loading Loading @@ -1043,7 +1043,7 @@ public class PermissionManagerService { } permissionsState.updatePermissionFlags(bp, userId, MASK_PERMISSION_FLAGS, flags); MASK_PERMISSION_FLAGS_ALL, flags); } } break; Loading @@ -1058,7 +1058,7 @@ public class PermissionManagerService { if (origPermissions.revokeInstallPermission(bp) != PERMISSION_OPERATION_FAILURE) { origPermissions.updatePermissionFlags(bp, UserHandle.USER_ALL, PackageManager.MASK_PERMISSION_FLAGS, 0); MASK_PERMISSION_FLAGS_ALL, 0); changedInstallPermission = true; } Loading Loading @@ -1094,7 +1094,7 @@ public class PermissionManagerService { } permissionsState.updatePermissionFlags(bp, userId, MASK_PERMISSION_FLAGS, flags); MASK_PERMISSION_FLAGS_ALL, flags); } } break; Loading @@ -1114,7 +1114,7 @@ public class PermissionManagerService { PERMISSION_OPERATION_FAILURE) { // Also drop the permission flags. permissionsState.updatePermissionFlags(bp, UserHandle.USER_ALL, PackageManager.MASK_PERMISSION_FLAGS, 0); MASK_PERMISSION_FLAGS_ALL, 0); changedInstallPermission = true; Slog.i(TAG, "Un-granting permission " + perm + " from package " + pkg.packageName Loading Loading @@ -2180,7 +2180,7 @@ public class PermissionManagerService { if (bp != null) { permissionsState.revokeInstallPermission(bp); permissionsState.updatePermissionFlags(bp, UserHandle.USER_ALL, PackageManager.MASK_PERMISSION_FLAGS, 0); MASK_PERMISSION_FLAGS_ALL, 0); } } } Loading @@ -2199,7 +2199,7 @@ public class PermissionManagerService { if (bp != null) { permissionsState.revokeRuntimePermission(bp, userId); permissionsState.updatePermissionFlags(bp, userId, PackageManager.MASK_PERMISSION_FLAGS, 0); MASK_PERMISSION_FLAGS_ALL, 0); runtimePermissionChangedUserIds = ArrayUtils.appendInt( runtimePermissionChangedUserIds, userId); } Loading services/core/java/com/android/server/role/RoleManagerService.java +1 −1 Original line number Diff line number Diff line Loading @@ -255,7 +255,7 @@ public class RoleManagerService extends SystemService implements RoleUserState.C } }); try { result.get(5, TimeUnit.SECONDS); result.get(30, TimeUnit.SECONDS); userState.setPackagesHash(packagesHash); } catch (InterruptedException | ExecutionException | TimeoutException e) { Slog.e(LOG_TAG, "Failed to grant defaults for user " + userId, e); Loading Loading
api/system-current.txt +4 −2 Original line number Diff line number Diff line Loading @@ -1644,6 +1644,8 @@ package android.content.pm { 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_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 INSTALL_FAILED_ALREADY_EXISTS = -1; // 0xffffffff field public static final int INSTALL_FAILED_CONFLICTING_PROVIDER = -13; // 0xfffffff3 Loading Loading @@ -1689,7 +1691,7 @@ package android.content.pm { field public static final int INTENT_FILTER_DOMAIN_VERIFICATION_STATUS_UNDEFINED = 0; // 0x0 field public static final int INTENT_FILTER_VERIFICATION_FAILURE = -1; // 0xffffffff field public static final int INTENT_FILTER_VERIFICATION_SUCCESS = 1; // 0x1 field public static final int MASK_PERMISSION_FLAGS = 255; // 0xff field @Deprecated public static final int MASK_PERMISSION_FLAGS = 255; // 0xff field public static final int MATCH_ANY_USER = 4194304; // 0x400000 field public static final int MATCH_FACTORY_ONLY = 2097152; // 0x200000 field public static final int MATCH_INSTANT = 8388608; // 0x800000 Loading @@ -1707,7 +1709,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}) @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}) @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 { Loading
core/java/android/content/pm/PackageManager.java +35 −1 Original line number Diff line number Diff line Loading @@ -3047,13 +3047,43 @@ public abstract class PackageManager { public static final int FLAG_PERMISSION_REVOKE_WHEN_REQUESTED = 1 << 7; /** * Mask for all permission flags. * 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 present in Android P * * @deprecated This constant does not contain useful information and should never have been * exposed. When checking permission flags always flag each flag explicitly and ignore all * flags that do not matter for this particular code. * * @hide */ @Deprecated @SystemApi public static final int MASK_PERMISSION_FLAGS = 0xFF; /** * Mask for all permission flags. * * @hide */ public static final int MASK_PERMISSION_FLAGS_ALL = 0x3FF; /** * Injected activity in app that forwards user to setting activity of that app. * Loading Loading @@ -3761,6 +3791,8 @@ public abstract class PackageManager { FLAG_PERMISSION_REVOKE_ON_UPGRADE, FLAG_PERMISSION_SYSTEM_FIXED, FLAG_PERMISSION_GRANTED_BY_DEFAULT, FLAG_PERMISSION_USER_SENSITIVE_WHEN_GRANTED, FLAG_PERMISSION_USER_SENSITIVE_WHEN_DENIED, /* FLAG_PERMISSION_REVOKE_WHEN_REQUESED */ Loading Loading @@ -6548,6 +6580,8 @@ public abstract class PackageManager { case FLAG_PERMISSION_USER_FIXED: return "USER_FIXED"; case FLAG_PERMISSION_REVIEW_REQUIRED: return "REVIEW_REQUIRED"; case FLAG_PERMISSION_REVOKE_WHEN_REQUESTED: return "REVOKE_WHEN_REQUESTED"; case FLAG_PERMISSION_USER_SENSITIVE_WHEN_GRANTED: return "USER_SENSITIVE_WHEN_GRANTED"; case FLAG_PERMISSION_USER_SENSITIVE_WHEN_DENIED: return "USER_SENSITIVE_WHEN_DENIED"; default: return Integer.toString(flag); } } Loading
services/core/java/com/android/server/pm/Settings.java +6 −6 Original line number Diff line number Diff line Loading @@ -979,7 +979,7 @@ public final class Settings { // Try to revoke as an install permission which is for all users. // The package is gone - no need to keep flags for applying policy. permissionsState.updatePermissionFlags(bp, userId, PackageManager.MASK_PERMISSION_FLAGS, 0); PackageManager.MASK_PERMISSION_FLAGS_ALL, 0); if (permissionsState.revokeInstallPermission(bp) == PermissionsState.PERMISSION_OPERATION_SUCCESS_GIDS_CHANGED) { Loading Loading @@ -2165,7 +2165,7 @@ public final class Settings { XmlUtils.skipCurrentTag(parser); } else { permissionsState.updatePermissionFlags(bp, UserHandle.USER_ALL, PackageManager.MASK_PERMISSION_FLAGS, flags); PackageManager.MASK_PERMISSION_FLAGS_ALL, flags); } } else { if (permissionsState.revokeInstallPermission(bp) == Loading @@ -2174,7 +2174,7 @@ public final class Settings { XmlUtils.skipCurrentTag(parser); } else { permissionsState.updatePermissionFlags(bp, UserHandle.USER_ALL, PackageManager.MASK_PERMISSION_FLAGS, flags); PackageManager.MASK_PERMISSION_FLAGS_ALL, flags); } } } else { Loading Loading @@ -5240,7 +5240,7 @@ public final class Settings { if (bp != null) { permissionsState.revokeRuntimePermission(bp, userId); permissionsState.updatePermissionFlags(bp, userId, PackageManager.MASK_PERMISSION_FLAGS, 0); PackageManager.MASK_PERMISSION_FLAGS_ALL, 0); } } } Loading Loading @@ -5354,10 +5354,10 @@ public final class Settings { if (granted) { permissionsState.grantRuntimePermission(bp, userId); permissionsState.updatePermissionFlags(bp, userId, PackageManager.MASK_PERMISSION_FLAGS, flags); PackageManager.MASK_PERMISSION_FLAGS_ALL, flags); } else { permissionsState.updatePermissionFlags(bp, userId, PackageManager.MASK_PERMISSION_FLAGS, flags); PackageManager.MASK_PERMISSION_FLAGS_ALL, flags); } } break; Loading
services/core/java/com/android/server/pm/permission/PermissionManagerService.java +8 −8 Original line number Diff line number Diff line Loading @@ -32,7 +32,7 @@ import static android.content.pm.PackageManager.FLAG_PERMISSION_REVOKE_WHEN_REQU import static android.content.pm.PackageManager.FLAG_PERMISSION_SYSTEM_FIXED; import static android.content.pm.PackageManager.FLAG_PERMISSION_USER_FIXED; import static android.content.pm.PackageManager.FLAG_PERMISSION_USER_SET; import static android.content.pm.PackageManager.MASK_PERMISSION_FLAGS; import static android.content.pm.PackageManager.MASK_PERMISSION_FLAGS_ALL; import static android.os.Trace.TRACE_TAG_PACKAGE_MANAGER; import static android.os.UserHandle.getAppId; import static android.os.UserHandle.getUid; Loading Loading @@ -980,7 +980,7 @@ public class PermissionManagerService { // Revoke the runtime permission and clear the flags. origPermissions.revokeRuntimePermission(bp, userId); origPermissions.updatePermissionFlags(bp, userId, PackageManager.MASK_PERMISSION_FLAGS, 0); PackageManager.MASK_PERMISSION_FLAGS_ALL, 0); // If we revoked a permission permission, we have to write. updatedUserIds = ArrayUtils.appendInt( updatedUserIds, userId); Loading Loading @@ -1043,7 +1043,7 @@ public class PermissionManagerService { } permissionsState.updatePermissionFlags(bp, userId, MASK_PERMISSION_FLAGS, flags); MASK_PERMISSION_FLAGS_ALL, flags); } } break; Loading @@ -1058,7 +1058,7 @@ public class PermissionManagerService { if (origPermissions.revokeInstallPermission(bp) != PERMISSION_OPERATION_FAILURE) { origPermissions.updatePermissionFlags(bp, UserHandle.USER_ALL, PackageManager.MASK_PERMISSION_FLAGS, 0); MASK_PERMISSION_FLAGS_ALL, 0); changedInstallPermission = true; } Loading Loading @@ -1094,7 +1094,7 @@ public class PermissionManagerService { } permissionsState.updatePermissionFlags(bp, userId, MASK_PERMISSION_FLAGS, flags); MASK_PERMISSION_FLAGS_ALL, flags); } } break; Loading @@ -1114,7 +1114,7 @@ public class PermissionManagerService { PERMISSION_OPERATION_FAILURE) { // Also drop the permission flags. permissionsState.updatePermissionFlags(bp, UserHandle.USER_ALL, PackageManager.MASK_PERMISSION_FLAGS, 0); MASK_PERMISSION_FLAGS_ALL, 0); changedInstallPermission = true; Slog.i(TAG, "Un-granting permission " + perm + " from package " + pkg.packageName Loading Loading @@ -2180,7 +2180,7 @@ public class PermissionManagerService { if (bp != null) { permissionsState.revokeInstallPermission(bp); permissionsState.updatePermissionFlags(bp, UserHandle.USER_ALL, PackageManager.MASK_PERMISSION_FLAGS, 0); MASK_PERMISSION_FLAGS_ALL, 0); } } } Loading @@ -2199,7 +2199,7 @@ public class PermissionManagerService { if (bp != null) { permissionsState.revokeRuntimePermission(bp, userId); permissionsState.updatePermissionFlags(bp, userId, PackageManager.MASK_PERMISSION_FLAGS, 0); MASK_PERMISSION_FLAGS_ALL, 0); runtimePermissionChangedUserIds = ArrayUtils.appendInt( runtimePermissionChangedUserIds, userId); } Loading
services/core/java/com/android/server/role/RoleManagerService.java +1 −1 Original line number Diff line number Diff line Loading @@ -255,7 +255,7 @@ public class RoleManagerService extends SystemService implements RoleUserState.C } }); try { result.get(5, TimeUnit.SECONDS); result.get(30, TimeUnit.SECONDS); userState.setPackagesHash(packagesHash); } catch (InterruptedException | ExecutionException | TimeoutException e) { Slog.e(LOG_TAG, "Failed to grant defaults for user " + userId, e); Loading