From 7f2d25e03dfc8ac6e2a1668f471f66d5b620c146 Mon Sep 17 00:00:00 2001 From: Nate Myren Date: Tue, 23 May 2023 16:17:45 +0000 Subject: DO NOT MERGE Revert "On upgrade to U, grant RMVUS to apps granted RMI/V" This reverts commit 3bfc9d4737154f754afe5a580b07a6aaed30cc2f. Reason for revert: b/283303329 Change-Id: Id1bbff981b1ed4e535fb4382d1b0d710909ccc4c --- .../service/RuntimePermissionsUpgradeController.kt | 57 ++++++---------------- 1 file changed, 16 insertions(+), 41 deletions(-) (limited to 'PermissionController/src/com') diff --git a/PermissionController/src/com/android/permissioncontroller/permission/service/RuntimePermissionsUpgradeController.kt b/PermissionController/src/com/android/permissioncontroller/permission/service/RuntimePermissionsUpgradeController.kt index 43b79a7f8..97f817cff 100644 --- a/PermissionController/src/com/android/permissioncontroller/permission/service/RuntimePermissionsUpgradeController.kt +++ b/PermissionController/src/com/android/permissioncontroller/permission/service/RuntimePermissionsUpgradeController.kt @@ -42,7 +42,6 @@ import com.android.permissioncontroller.permission.model.livedatatypes.LightPerm import com.android.permissioncontroller.permission.utils.IPC import com.android.permissioncontroller.permission.utils.KotlinUtils.grantBackgroundRuntimePermissions import com.android.permissioncontroller.permission.utils.KotlinUtils.grantForegroundRuntimePermissions -import com.android.permissioncontroller.permission.utils.PermissionMapping import com.android.permissioncontroller.permission.utils.PermissionMapping.getPlatformPermissionNamesOfGroup import com.android.permissioncontroller.permission.utils.PermissionMapping.getRuntimePlatformPermissionNames import com.android.permissioncontroller.permission.utils.application @@ -56,9 +55,7 @@ internal object RuntimePermissionsUpgradeController { private val LOG_TAG = RuntimePermissionsUpgradeController::class.java.simpleName // The latest version of the runtime permissions database - private val LATEST_VERSION = if (SdkLevel.isAtLeastU()) { - 11 - } else if (SdkLevel.isAtLeastT()) { + private val LATEST_VERSION = if (SdkLevel.isAtLeastT()) { 10 } else { 9 @@ -137,7 +134,6 @@ internal object RuntimePermissionsUpgradeController { val needBackgroundAppPermGroups = sdkUpgradedFromP && currentVersion <= 6 val needAccessMediaAppPermGroups = !isNewUser && currentVersion <= 7 val needGrantedExternalStorage = currentVersion <= 9 && SdkLevel.isAtLeastT() - val needGrantedReadMediaVisual = currentVersion <= 10 && SdkLevel.isAtLeastU() val isDeviceUpgrading = context.packageManager.isDeviceUpgrading // All data needed by this method. @@ -160,17 +156,24 @@ internal object RuntimePermissionsUpgradeController { private val pkgInfoProvider = UserPackageInfosLiveData[myUserHandle()] /** Provides all {@link LightAppPermGroup} this upgrade needs */ - private var permGroupProviders: MutableSet? = null + private var permGroupProviders: MutableList? = null /** {@link #permGroupProviders} that already provided a result */ private val permGroupProvidersDone = mutableSetOf() init { // First step: Load packages + perm infos + // TODO ntmyren: remove once b/154796729 is fixed + Log.i("RuntimePermissions", "observing UserPackageInfoLiveData for " + + "${myUserHandle().identifier} in RuntimePermissionsUpgradeController") addSource(pkgInfoProvider) { pkgInfos -> if (pkgInfos != null) { removeSource(pkgInfoProvider) + // TODO ntmyren: remove once b/154796729 is fixed + Log.i("RuntimePermissions", "observing " + + "PreinstalledUserPackageInfoLiveData for ${myUserHandle().identifier}" + + " in RuntimePermissionsUpgradeController") addSource(preinstalledPkgInfoProvider) { preinstalledPkgInfos -> if (preinstalledPkgInfos != null) { removeSource(preinstalledPkgInfoProvider) @@ -200,16 +203,15 @@ internal object RuntimePermissionsUpgradeController { if (permGroupProviders == null && pkgInfoProvider.value != null) { // Second step: Trigger load of app-perm-groups - permGroupProviders = mutableSetOf() + permGroupProviders = mutableListOf() // Only load app-perm-groups needed for this upgrade if (needBackgroundAppPermGroups || needAccessMediaAppPermGroups || - needGrantedExternalStorage || needGrantedReadMediaVisual) { + needGrantedExternalStorage) { for ((pkgName, _, requestedPerms, requestedPermFlags) in pkgInfoProvider.value!!) { var requestsAccessMediaLocation = false var hasGrantedExternalStorage = false - var hasGrantedReadMediaVisual = false for ((perm, flags) in requestedPerms.zip(requestedPermFlags)) { if (needBackgroundAppPermGroups && @@ -218,22 +220,17 @@ internal object RuntimePermissionsUpgradeController { permission_group.LOCATION, myUserHandle()]) } - if (needAccessMediaAppPermGroups || needGrantedExternalStorage || - needGrantedReadMediaVisual) { + if (needAccessMediaAppPermGroups || needGrantedExternalStorage) { if (needAccessMediaAppPermGroups && perm == permission.ACCESS_MEDIA_LOCATION) { requestsAccessMediaLocation = true } - val isGranted = - flags and PackageInfo.REQUESTED_PERMISSION_GRANTED != 0 - if (perm == permission.READ_EXTERNAL_STORAGE && isGranted) { + if (perm == permission.READ_EXTERNAL_STORAGE && + flags and PackageInfo.REQUESTED_PERMISSION_GRANTED + != 0) { hasGrantedExternalStorage = true } - if (PermissionMapping.getGroupOfPlatformPermission(perm) - == permission_group.READ_MEDIA_VISUAL && isGranted) { - hasGrantedReadMediaVisual = true - } } } @@ -258,10 +255,6 @@ internal object RuntimePermissionsUpgradeController { accessMediaLocationPermGroup, myUserHandle()]) } } - if (hasGrantedReadMediaVisual && needGrantedReadMediaVisual) { - permGroupProviders!!.add(LightAppPermGroupLiveData[pkgName, - permission_group.READ_MEDIA_VISUAL, myUserHandle()]) - } } } @@ -543,24 +536,6 @@ internal object RuntimePermissionsUpgradeController { currentVersion = 10 } - if (currentVersion == 10 && SdkLevel.isAtLeastU()) { - // On U, if the app is granted READ_MEDIA_VISUAL, expand the grant to - // READ_MEDIA_VISUAL_USER_SELECTED - if (isDeviceUpgrading && !isNewUser) { - Log.i(LOG_TAG, "Grandfathering READ_MEDIA_VISUAL_USER_SELECTED to apps already " + - "granted visual permissions") - val visualAppPermGroups = storageAndMediaAppPermGroups.filter { - it.packageInfo.targetSdkVersion >= Build.VERSION_CODES.TIRAMISU && - it.permGroupInfo.name == permission_group.READ_MEDIA_VISUAL && - it.isGranted && it.isUserSet - } - visualAppPermGroups.forEach { - grants.add(Grant(false, it)) - } - } - currentVersion = 11 - } - // XXX: Add new upgrade steps above this point. return Triple(currentVersion, exemptions, grants) @@ -616,7 +591,7 @@ internal object RuntimePermissionsUpgradeController { private val isBackground: Boolean, /** Group to be granted */ private val group: LightAppPermGroup, - /** Which of the permissions in the group should be granted */ + /** Which of th permissions in the group should be granted */ private val permissions: List = group.permissions.keys.toList() ) { /** -- cgit v1.2.3