summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Justin Lannin <jlannin@google.com> 2025-03-21 13:32:18 -0700
committer Justin Lannin <jlannin@google.com> 2025-03-21 13:32:18 -0700
commit91c12d7e7154bb170f0a2baf806187789339326b (patch)
treef2dc604818d71a6923d23958d6f422e235b31c4b
parent84b998c85053c8d502fcfa1991524eab341ebb88 (diff)
AppIdPermissionUpgrade: Followup improvements to BODY_SENSORS sync.
Bug: 401614607 Test: Presubmits passing. Flag: EXEMPT bugfix Change-Id: I25f944b2e42164c7824c3ffca067881ba0b3538d
-rw-r--r--services/permission/java/com/android/server/permission/access/permission/AppIdPermissionUpgrade.kt22
1 files changed, 11 insertions, 11 deletions
diff --git a/services/permission/java/com/android/server/permission/access/permission/AppIdPermissionUpgrade.kt b/services/permission/java/com/android/server/permission/access/permission/AppIdPermissionUpgrade.kt
index 022b811d9ac8..bd63918e751b 100644
--- a/services/permission/java/com/android/server/permission/access/permission/AppIdPermissionUpgrade.kt
+++ b/services/permission/java/com/android/server/permission/access/permission/AppIdPermissionUpgrade.kt
@@ -295,10 +295,10 @@ class AppIdPermissionUpgrade(private val policy: AppIdPermissionPolicy) {
val isReadHeartRateRequested =
HealthPermissions.READ_HEART_RATE in androidPackage.requestedPermissions
var isBodySensorsGranted =
- isPermissionGranted(packageState, userId, Manifest.permission.BODY_SENSORS)
+ isRuntimePermissionGranted(packageState, userId, Manifest.permission.BODY_SENSORS)
if (isBodySensorsRequested && isReadHeartRateRequested) {
val isReadHeartRateGranted =
- isPermissionGranted(packageState, userId, HealthPermissions.READ_HEART_RATE)
+ isRuntimePermissionGranted(packageState, userId, HealthPermissions.READ_HEART_RATE)
if (isBodySensorsGranted != isReadHeartRateGranted) {
if (isBodySensorsGranted) {
if (
@@ -319,7 +319,11 @@ class AppIdPermissionUpgrade(private val policy: AppIdPermissionPolicy) {
// Then check to ensure we haven't put the background/foreground permissions out of sync.
var isBodySensorsBackgroundGranted =
- isPermissionGranted(packageState, userId, Manifest.permission.BODY_SENSORS_BACKGROUND)
+ isRuntimePermissionGranted(
+ packageState,
+ userId,
+ Manifest.permission.BODY_SENSORS_BACKGROUND,
+ )
// Background permission should not be granted without the foreground permission.
if (!isBodySensorsGranted && isBodySensorsBackgroundGranted) {
if (
@@ -340,7 +344,7 @@ class AppIdPermissionUpgrade(private val policy: AppIdPermissionPolicy) {
HealthPermissions.READ_HEALTH_DATA_IN_BACKGROUND in androidPackage.requestedPermissions
if (isBodySensorsBackgroundRequested && isReadHealthDataInBackgroundRequested) {
val isReadHealthDataInBackgroundGranted =
- isPermissionGranted(
+ isRuntimePermissionGranted(
packageState,
userId,
HealthPermissions.READ_HEALTH_DATA_IN_BACKGROUND,
@@ -364,7 +368,7 @@ class AppIdPermissionUpgrade(private val policy: AppIdPermissionPolicy) {
}
}
- private fun GetStateScope.isPermissionGranted(
+ private fun GetStateScope.isRuntimePermissionGranted(
packageState: PackageState,
userId: Int,
permissionName: String,
@@ -425,18 +429,14 @@ class AppIdPermissionUpgrade(private val policy: AppIdPermissionPolicy) {
"Revoking runtime permission for package: ${packageState.packageName}, " +
"permission: $permissionName, userId: $userId",
)
- val permission = newState.systemState.permissions[permissionName]!!
- if (packageState.getUserStateOrDefault(userId).isInstantApp && !permission.isInstant) {
- return false
- }
val appId = packageState.appId
var flags = with(policy) { getPermissionFlags(appId, userId, permissionName) }
if (flags.hasAnyBit(MASK_SYSTEM_OR_POLICY_FIXED)) {
Slog.v(
LOG_TAG,
- "Not allowed to revoke $permissionName to package ${packageState.packageName} " +
- "for user $userId",
+ "Cannot revoke fixed runtime permission from package: " +
+ "${packageState.packageName}, permission: $permissionName, userId: $userId",
)
return false
}